:root{--c-bg:#fff;--c-surface:#fff;--c-surface-alt:#f9f9f9;--c-surface-frame:#fafafa;--c-surface-muted:#f5f5f5;--c-surface-selected:#eee;--c-surface-sunken:#e0e0e0;--c-surface-scrim:#00000059;--c-disabled:#bbb;--c-border-subtle:#eee;--c-border-soft:#ddd;--c-border:#ccc;--c-border-strong:#999;--c-border-frame:#aaa;--c-text:#000;--c-text-strong:#333;--c-text-secondary:#555;--c-text-muted:#666;--c-text-soft:#777;--c-text-hint:#888;--c-on-accent:#fff;--c-accent-primary:#1565c0;--c-accent-success:#2e7d32;--c-accent-danger:#c62828;--c-danger:#e53935;--c-danger-dark:#b71c1c;--c-accent-warning:#ef6c00;--c-warning-dark:#e65100;--c-accent-info:#3949ab;--c-accent-neutral:#757575;--c-accent-material:#6d4c41;--c-gold:#b8860b;--c-success-soft-bg:#e8f5e9;--c-danger-soft-bg:#fdecea;--c-info-soft-bg:#eef2ff;--c-warning-soft-bg:#fff3e0;--c-chat-global:#1565c0;--c-chat-trade:#ef6c00;--c-chat-local:#2e7d32;--c-chat-gm:#6a1b9a;--c-chat-admin:#ad1457;--c-chat-whisper:#00838f;--c-chat-system:#757575;--c-chat-stub-player:#06c;--c-item-weapon:#c62828;--c-item-armor:#1565c0;--c-item-consumable:#2e7d32;--c-item-material:#6d4c41;--c-item-misc:#757575;--c-trade-pending:#757575;--c-trade-active:#1565c0;--c-trade-locked:#ef6c00;--c-trade-completed:#2e7d32;--c-trade-cancelled:#c62828;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:"Cascadia Mono", Consolas, "Courier New", monospace;--fs-xs:.7em;--fs-sm:.8em;--fs-md:.85em;--fs-lg:1.1em;--sp-2:2px;--sp-3:3px;--sp-4:4px;--sp-5:5px;--sp-6:6px;--sp-8:8px;--sp-10:10px;--sp-15:15px;--sp-20:20px;--r-sm:3px;--r-md:4px;--r-lg:5px;--r-xl:6px;--r-pill:10px;--shadow-popover:0 2px 6px #00000026;--shadow-tooltip:0 2px 8px #00000040;--shadow-toast:0 2px 10px #00000040;--shadow-modal:0 6px 24px #00000059;--panel-bg:var(--c-surface);--panel-bg-image:none;--panel-bg-size:cover;--panel-bg-position:center;--panel-border:1px solid var(--c-border-soft);--panel-radius:var(--r-lg);--panel-padding:var(--sp-15);--panel-shadow:none;--panel-title-bg:transparent;--panel-title-border:1px solid var(--c-border-subtle);--panel-title-padding:0 0 var(--sp-8);--panel-title-fg:var(--c-text);--btn-bg:var(--c-surface-muted);--btn-bg-hover:var(--c-surface-selected);--btn-fg:var(--c-text);--btn-border:1px solid var(--c-border);--btn-radius:var(--r-sm);--btn-padding:var(--sp-5) var(--sp-10);--btn-font-weight:normal;--btn-primary-bg:var(--c-accent-primary);--btn-primary-fg:var(--c-on-accent);--btn-success-bg:var(--c-accent-success);--btn-success-fg:var(--c-on-accent);--btn-danger-bg:var(--c-danger);--btn-danger-fg:var(--c-on-accent);--input-bg:var(--c-surface);--input-fg:var(--c-text);--input-border:1px solid var(--c-border);--input-radius:var(--r-sm);--input-padding:var(--sp-5);--z-hud:1;--z-popover:1000;--z-toast:1500;--z-modal:1600;--z-tooltip:2000;--z-editor:4000}[data-theme=dark]{--c-bg:#121212;--c-surface:#1e1e1e;--c-surface-alt:#242424;--c-surface-frame:#1a1a1a;--c-surface-muted:#2a2a2a;--c-surface-selected:#333;--c-surface-sunken:#2e2e2e;--c-disabled:#555;--c-border-subtle:#2f2f2f;--c-border-soft:#3a3a3a;--c-border:#4a4a4a;--c-border-strong:#6a6a6a;--c-border-frame:#5a5a5a;--c-text:#e8e8e8;--c-text-strong:#dcdcdc;--c-text-secondary:silver;--c-text-muted:#a8a8a8;--c-text-soft:#9a9a9a;--c-text-hint:#8c8c8c;--c-on-accent:#fff}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-ui);margin:0;font-size:16px;line-height:1.4}button{font:inherit;color:inherit}input,select,textarea{font:inherit;color:var(--input-fg)}hr{border:none;border-top:1px solid var(--c-border-subtle);margin:var(--sp-8) 0}:focus-visible{outline:2px solid var(--c-accent-primary);outline-offset:1px}.rpg-panel{height:100%;min-height:0;padding:var(--panel-padding);background-color:var(--panel-bg);background-image:var(--panel-bg-image);background-position:var(--panel-bg-position);background-size:var(--panel-bg-size);border:var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);background-repeat:no-repeat;flex-direction:column;display:flex}.rpg-panel--flush{padding:0}.rpg-panel__title{justify-content:space-between;align-items:center;gap:var(--sp-8);margin:0 0 var(--sp-10);padding:var(--panel-title-padding);background:var(--panel-title-bg);border-bottom:var(--panel-title-border);flex-wrap:wrap;display:flex}.rpg-panel__title-text{color:var(--panel-title-fg);font-size:var(--fs-lg);margin:0}.rpg-panel__actions{align-items:center;gap:var(--sp-8);flex-wrap:wrap;display:flex}.rpg-panel__body{flex:1;min-height:0;overflow:auto}.rpg-panel__media{object-fit:cover;border-radius:var(--panel-radius);width:100%;height:100%;min-height:0;display:block}.rpg-panel__placeholder{background:var(--c-surface-sunken);width:100%;height:100%;min-height:120px;color:var(--c-text-muted);border-radius:var(--panel-radius);font-size:var(--fs-sm);justify-content:center;align-items:center;display:flex}.rpg-btn{padding:var(--btn-padding);background:var(--btn-bg);color:var(--btn-fg);border:var(--btn-border);border-radius:var(--btn-radius);font-weight:var(--btn-font-weight);cursor:pointer}.rpg-btn:hover:not(:disabled){background:var(--btn-bg-hover)}.rpg-btn:disabled{cursor:not-allowed;opacity:.6}.rpg-btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:#0000}.rpg-btn--success{background:var(--btn-success-bg);color:var(--btn-success-fg);border-color:#0000}.rpg-btn--danger{background:var(--btn-danger-bg);color:var(--btn-danger-fg);border-color:#0000}.rpg-btn--primary:hover:not(:disabled),.rpg-btn--success:hover:not(:disabled),.rpg-btn--danger:hover:not(:disabled){filter:brightness(1.08)}.rpg-input{padding:var(--input-padding);background:var(--input-bg);color:var(--input-fg);border:var(--input-border);border-radius:var(--input-radius)}
