.content-container{display:flex;width:100%;padding:var(--spacing-lg) 0}.left-area{width:var(--sidebar-width);margin:0 var(--spacing-lg)}.middle-area{width:var(--central-width)}.right-area{width:var(--sidebar-width);margin:0 var(--spacing-lg)}html[data-view-mode=compact] .content-container{padding:var(--spacing-md)}html[data-view-mode=compact] .middle-area,html[data-view-mode=compact] .middle-area--solo{width:100%;max-width:100%}.news-feed{max-height:80vh;overflow-y:auto}.news-article{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px dashed var(--color-border)}.news-article:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.news-article h3{color:var(--color-primary);margin-top:0;margin-bottom:var(--spacing-sm);font-size:var(--font-size-lg)}.news-date{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.news-article{cursor:pointer;transition:background-color .3s ease}.news-article:hover{background-color:color-mix(in srgb,var(--color-primary),transparent 90%)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);background-color:color-mix(in srgb,var(--color-background),transparent 35%);z-index:var(--z-index-modal-backdrop)}.modal-content{width:min(900px,92vw);max-height:90vh;background-color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-index-modal);display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:var(--font-size-xl)}.close-button{background-color:transparent;color:var(--color-text-primary);border:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-sm);margin-left:0}.close-button:hover{background-color:color-mix(in srgb,var(--color-primary),transparent 90%)}.modal-body{padding:var(--spacing-lg);overflow:auto}.modal-footer{display:flex;justify-content:flex-end;padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.article-content{color:var(--color-text-primary)}.article-content p{margin:0 0 var(--spacing-md)}.article-content h1,.article-content h2,.article-content h3{color:var(--color-primary);margin:var(--spacing-lg) 0 var(--spacing-sm)}.article-content ul,.article-content ol{margin:0 0 var(--spacing-md);padding-left:var(--spacing-xl)}.article-content code{font-family:var(--font-family-mono);font-size:.95em;background-color:color-mix(in srgb,var(--color-background),transparent 70%);padding:0 var(--spacing-xs);border-radius:var(--border-radius-sm)}.article-content pre{margin:0 0 var(--spacing-md);padding:var(--spacing-md);overflow:auto;background-color:color-mix(in srgb,var(--color-background),transparent 70%);border:1px solid var(--color-border);border-radius:var(--border-radius-sm)}.article-content pre code{background-color:transparent;padding:0}.article-content blockquote{margin:0 0 var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-left:3px solid var(--color-border);color:var(--color-text-secondary)}.article-content a{color:var(--color-primary)}.murmurs-feed{max-height:50vh;overflow:hidden}.murmurs-feed.is-scrollable{overflow-y:auto}.murmur-item{padding:var(--spacing-sm);border-bottom:1px dashed var(--color-border)}.murmur-item:last-child{border-bottom:none}.murmur-item:hover{background-color:color-mix(in srgb,var(--color-primary),transparent 90%)}.murmur-meta{display:flex;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.murmur-message{color:var(--color-text);word-break:break-word}.room-carousel{padding:var(--spacing-md)}.room-carousel__viewport{position:relative;width:100%;aspect-ratio:1 / 1;border:1px solid var(--color-border);border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--shadow-md);background-color:var(--color-background-lighter)}.room-carousel__track{display:flex;width:100%;height:100%;transition:transform .65s cubic-bezier(.22,1,.36,1);will-change:transform}.room-carousel__slide{position:relative;flex:0 0 100%;height:100%;background-color:var(--color-secondary)}.room-carousel__image{width:100%;height:100%;object-fit:cover;display:block;position:absolute;z-index:1}.room-carousel__image-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);color:var(--color-text-secondary);background-color:var(--color-secondary)}.room-carousel__overlay{position:absolute;left:0;right:0;bottom:0;padding:var(--spacing-sm) var(--spacing-md);background-color:color-mix(in srgb,var(--color-background),transparent 35%);border-top:1px solid var(--color-border);display:flex;align-items:baseline;justify-content:space-between;flex-direction:column;gap:var(--spacing-md)}.room-carousel__name{color:var(--color-text-primary);font-size:var(--font-size-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-carousel__hint{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.room-carousel__placeholder{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.main-content-area{display:flex;flex-direction:column;align-items:center;width:100%;height:calc(100% - var(--header-height))}html[data-view-mode=compact] .main-content-area{height:100%}.language-switcher{display:flex;align-items:center}.language-select{background-color:var(--color-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--spacing-sm);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.language-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 50%)}.language-switcher--list{width:100%}.language-switcher-list{display:flex;flex-direction:column;gap:6px}.language-option-button{width:100%;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid transparent;background:color-mix(in srgb,var(--color-secondary) 70%,transparent);color:var(--color-text-primary);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.language-option-button:hover{background:color-mix(in srgb,var(--color-secondary) 55%,transparent)}.language-option-button.is-active{border-color:color-mix(in srgb,var(--color-primary) 70%,transparent);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-secondary))}.theme-switcher{display:flex;align-items:center;gap:var(--spacing-sm)}.theme-switcher label{font-weight:700;color:var(--color-text-primary)}.theme-select{background-color:var(--color-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);padding:var(--spacing-sm);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.theme-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 50%)}.theme-switcher--list{width:100%}.theme-switcher-list{display:flex;flex-direction:column;gap:6px}.theme-option-button{width:100%;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid transparent;background:color-mix(in srgb,var(--color-secondary) 70%,transparent);color:var(--color-text-primary);font-family:var(--font-family-primary);font-size:var(--font-size-sm)}.theme-option-button:hover{background:color-mix(in srgb,var(--color-secondary) 55%,transparent)}.theme-option-button.is-active{border-color:color-mix(in srgb,var(--color-primary) 70%,transparent);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-secondary))}.top-nav-bar{background-color:var(--color-secondary);display:flex;flex-direction:row;height:var(--header-height);box-shadow:0 2px 8px #00000059;z-index:10}.top-nav-bar--overlay{position:fixed;top:0;left:0;right:0;transform:translateY(-110%);transition:transform .18s ease;z-index:50}.top-nav-bar--overlay.is-open{transform:translateY(0)}.top-nav-launcher{position:fixed;top:-12px;left:50%;transform:translate(-50%);width:40px;height:40px;border-radius:10px;padding:0;margin:0;background:transparent;color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center;z-index:60;cursor:ns-resize}.top-nav-launcher:hover:after{opacity:.9}.top-nav-launcher:hover{background-color:transparent}.brand-container{display:flex;align-items:center}.nav-links{flex-grow:1;display:flex;align-items:center;justify-content:center}@media(max-width:1024px){.all-links{display:none}}@media(max-width:1024px){.all-links.is-open{display:flex;position:absolute;left:0;right:0;top:var(--header-height);justify-content:center;background:var(--color-secondary);border-bottom:1px solid var(--color-border);padding:var(--spacing-md);box-shadow:0 6px 18px #00000059;z-index:11}}.menu-toggle{display:none}@media(max-width:1024px){.menu-toggle{display:block;background:none;border:none;font-size:var(--font-size-lg);color:var(--color-text-primary);cursor:pointer;padding:var(--spacing-sm) var(--spacing-md)}}.user-actions{display:flex;align-items:center;padding:0 var(--spacing-xl)}.compact-actions{display:flex;align-items:center;gap:8px}.icon-button{width:38px;height:38px;padding:0;margin:0;border-radius:10px;border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-secondary) 80%,transparent);color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:color-mix(in srgb,var(--color-secondary) 60%,transparent)}.compact-action{position:relative}.compact-popover{position:absolute;top:calc(100% + 6px);left:0;right:auto;min-width:180px;max-width:calc(100vw - 16px);padding:10px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-secondary);box-shadow:0 10px 26px #00000059;z-index:70}html[data-view-mode=compact] .user-actions{padding:0 var(--spacing-md)}.nav-links ul{list-style:none;padding:0;margin:0;display:flex;gap:var(--spacing-xl)}.nav-links a{color:var(--color-text-primary);text-decoration:none;font-weight:700;transition:color .3s ease}.nav-links a:hover{color:var(--color-primary)}@media(max-width:1024px){.brand-name{display:none}}.welcome-banner{display:flex;flex-direction:column;margin:var(--spacing-md);color:var(--color-primary)}.creatures-container{width:100%;max-width:980px;padding:0 var(--spacing-md)}.creature-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-md)}.creature-item{border:1px solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md);background:var(--color-secondary);display:flex;flex-direction:column;gap:var(--spacing-sm)}.creature-item__main{display:flex;flex-direction:column;gap:var(--spacing-xs)}.creature-item__header{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.creature-item__name{margin:0;flex-shrink:0}.creature-item__mode-badge{display:inline-block;padding:2px 8px;border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.creature-item__mode-badge--singleplayer{background-color:#3b82f6;color:#fff}.creature-item__mode-badge--multiplayer{background-color:#10b981;color:#fff}.creature-item__meta{margin:0;opacity:.9}.creature-item__play{margin-left:0}.actions-container{width:100%;max-width:980px;padding:var(--spacing-md);display:flex;justify-content:flex-end}html[data-view-mode=compact] .welcome-banner{margin:var(--spacing-sm)}html[data-view-mode=compact] .creature-list--compact{grid-template-columns:1fr;gap:10px}html[data-view-mode=compact] .creature-item--compact{flex-direction:row;align-items:center;justify-content:space-between;padding:10px}html[data-view-mode=compact] .creature-item__main{display:flex;flex-direction:column;gap:2px;min-width:0}html[data-view-mode=compact] .creature-item__header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}html[data-view-mode=compact] .creature-item__name{font-size:var(--font-size-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}html[data-view-mode=compact] .creature-item__mode-badge{padding:1px 6px;font-size:10px;flex-shrink:0}html[data-view-mode=compact] .creature-item__meta{font-size:var(--font-size-xs);opacity:.85}html[data-view-mode=compact] .creature-item__play--compact{padding:8px 12px;margin-left:0}.inline-alert{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm, .5rem);border-radius:var(--border-radius-md, 6px);padding:var(--spacing-sm, .5rem) var(--spacing-md, .75rem);border:1px solid var(--color-border);font-size:var(--font-size-sm, .95rem);background:var(--color-secondary);color:var(--color-text-primary)}.inline-alert__content{display:flex;flex-direction:column;gap:var(--spacing-xs, .25rem)}.inline-alert__title{font-weight:600}.inline-alert__message{line-height:1.4}.inline-alert__actions{display:flex;align-items:center;gap:var(--spacing-sm, .5rem)}.inline-alert__cta{border:1px solid currentColor;background:transparent;color:inherit;padding:var(--spacing-xs, .25rem) var(--spacing-sm, .5rem);border-radius:var(--border-radius-sm, 4px);cursor:pointer;font-size:var(--font-size-xs, .85rem)}.inline-alert__cta--solid{background:var(--color-background);color:var(--color-text-primary)}.inline-alert__dismiss{background:transparent;border:none;font-size:var(--font-size-md, 1rem);cursor:pointer;color:inherit}.inline-alert--info{color:var(--color-info);border-color:var(--color-info);background:var(--color-background-lighter)}.inline-alert--success{color:var(--color-success);border-color:var(--color-success);background:var(--color-background-lighter)}.inline-alert--warning{color:var(--color-warning);border-color:var(--color-warning);background:var(--color-background-lighter)}.inline-alert--error{color:var(--color-error);border-color:var(--color-error);background:var(--color-background-lighter)}.register-form{display:flex;flex-direction:column;gap:var(--spacing-md);background-color:var(--color-secondary);border:1px solid var(--color-border);padding:var(--spacing-lg);border-radius:var(--border-radius-md)}.register-form button{margin-top:var(--spacing-lg)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md);background-color:var(--color-secondary);border:1px solid var(--color-border);padding:var(--spacing-lg);border-radius:var(--border-radius-md)}.login-form button{margin-top:var(--spacing-lg)}.create-character-form{display:flex;flex-direction:column;gap:var(--spacing-md);background-color:var(--color-secondary);border:1px solid var(--color-border);padding:var(--spacing-lg);border-radius:var(--border-radius-md)}.create-character-form button{margin-top:var(--spacing-lg)}.game-mode-selector{margin-bottom:var(--spacing-md)}.radio-group{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.radio-option{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--border-radius-md);cursor:pointer;transition:all .2s ease}.radio-option:hover{border-color:var(--color-primary);background-color:var(--color-background-lighter)}.radio-option input[type=radio]{margin-top:2px;cursor:pointer}.radio-option input[type=radio]:checked+.radio-content{color:var(--color-primary)}.radio-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.radio-content strong{font-size:var(--font-size-md);color:var(--color-text-primary)}.radio-content p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.loading-screen{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--color-background);z-index:9999}.loading-screen__content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg, 1rem)}.loading-screen__spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:loading-screen-spin .8s linear infinite}@keyframes loading-screen-spin{to{transform:rotate(360deg)}}.loading-screen__message{color:var(--color-text-primary);font-size:var(--font-size-md, 1rem);margin:0}.game-session-alert{margin-bottom:1rem}.session-top-bar{display:flex;justify-content:space-between;align-items:center;background-color:var(--color-secondary);border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-size:var(--font-size-sm);height:var(--header-height);min-height:var(--header-height);width:calc(100% - (2 * var(--spacing-md)));z-index:1;padding:0 var(--spacing-md)}.session-top-bar-left{align-items:center;display:flex;gap:var(--spacing-sm);position:relative}.creature-effects{display:flex;align-items:center;gap:6px;flex-wrap:wrap}html[data-view-mode=compact] .creature-effects--floating{position:absolute;left:0;top:calc(100% + 6px);z-index:1150;max-width:min(92vw,520px);padding:6px 8px;border-radius:12px;background:color-mix(in srgb,var(--color-secondary) 88%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);box-shadow:0 10px 22px #00000047}.creature-effect-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--color-accent-bg) 16%,transparent);border:1px solid color-mix(in srgb,var(--color-accent-bg) 35%,var(--color-border) 65%);color:var(--color-text-primary);font-size:12px;line-height:1.4}.session-top-bar-middle{display:flex;flex-grow:1;align-items:center;justify-content:center}.session-top-bar-compact-time{font-weight:600;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.session-top-bar-right{display:flex;align-items:center;justify-content:flex-end;gap:12px}.quit-button--ghost{background:transparent;color:var(--color-danger-bg);border:1px solid var(--color-danger-bg)}.quit-button--icon{width:40px;height:36px;padding:0;margin-left:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px}.quit-indicator{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--color-danger-bg);border-radius:8px;background:color-mix(in srgb,var(--color-danger-bg) 12%,transparent);color:var(--color-danger-text);box-shadow:0 0 0 1px color-mix(in srgb,var(--color-danger-bg) 20%,transparent)}.quit-indicator__pulse{width:12px;height:12px;border-radius:50%;background:var(--color-danger-bg);box-shadow:0 0 color-mix(in srgb,var(--color-danger-bg) 60%,transparent);animation:quitPulse 1.6s infinite;will-change:transform}.quit-indicator__label{font-weight:600;letter-spacing:.2px}@keyframes quitPulse{0%{transform:translateZ(0) scale(.9);box-shadow:0 0 color-mix(in srgb,var(--color-danger-bg) 60%,transparent)}70%{transform:translateZ(0) scale(1.1);box-shadow:0 0 0 10px color-mix(in srgb,var(--color-danger-bg) 0%,transparent)}to{transform:translateZ(0) scale(1);box-shadow:0 0 color-mix(in srgb,var(--color-danger-bg) 0%,transparent)}}.interactive{color:var(--color-primary);white-space:nowrap;border-radius:var(--border-radius-sm);padding:2px 6px;margin:0 2px;cursor:pointer;display:inline-block;font-weight:700;text-shadow:var(--interactive-text-shadow);transition:all .2s ease;-webkit-user-select:text;user-select:text}.interactive:hover{filter:brightness(1.3);text-shadow:var(--interactive-text-shadow);transform:translateZ(0) scale(1.05);will-change:transform}.interactive[data-type=item]{background-color:var(--color-interactive-item);border:1px solid var(--color-interactive-item-border)}.interactive[data-type=creature]{background-color:var(--color-interactive-creature);border:1px solid var(--color-interactive-creature-border)}.interactive[data-type=resourceGenerator]{background-color:var(--color-interactive-resource);border:1px solid var(--color-interactive-resource-border)}.interactive[data-type=room]{background-color:var(--color-interactive-room);border:1px solid var(--color-interactive-room-border)}.interactive[data-type=roomType]{background-color:var(--color-interactive-roomType);border:1px solid var(--color-interactive-roomType-border)}.interactive[data-type=portal]{background-color:var(--color-interactive-portal);border:1px solid var(--color-interactive-portal-border)}.interactive[data-type=skill]{background-color:var(--color-interactive-skill);border:1px solid var(--color-interactive-skill-border)}.interactive[data-type=exit]{background-color:var(--color-interactive-exit);border:1px solid var(--color-interactive-exit-border)}.interactive[data-type=scenery]{background-color:var(--color-interactive-scenery);border:1px solid var(--color-interactive-scenery-border)}.interactive[data-type=bodyPart]{background-color:var(--color-interactive-body);border:1px solid var(--color-interactive-body-border)}.interactive[data-type=lore]{background-color:var(--color-interactive-lore);border:1px solid var(--color-interactive-lore-border)}.interactive[data-type=recipe]{background-color:var(--color-interactive-recipe);border:1px solid var(--color-interactive-recipe-border)}.interactive[data-type=creatureProperty],.interactive[data-type=area]{background-color:var(--color-interactive-other);border:1px solid var(--color-interactive-other-border)}.interactive[data-type=door]{background-color:var(--color-interactive-door);border:1px solid var(--color-interactive-door-border)}.interactive[data-type=roomEffect],.interactive[data-type=creatureEffect]{background-color:var(--color-interactive-effectTemplate);border:1px solid var(--color-interactive-effectTemplate-border)}.interactive[data-type=weatherTemplate]{background-color:var(--color-interactive-weatherTemplate);border:1px solid var(--color-interactive-weatherTemplate-border)}.interactive[data-type=other]{background-color:var(--color-interactive-other);border:1px solid var(--color-interactive-other-border)}.typewriter-piece{display:inline-block;opacity:0;animation:interactiveTextFade .25s ease forwards}.typewriter-char{white-space:pre}.typewriter-element{display:inline-flex}@keyframes interactiveTextFade{0%{opacity:0;transform:translate3d(0,.2rem,0)}to{opacity:1;transform:translateZ(0)}}.context-menu{position:fixed;min-width:220px;max-width:280px;background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-md, 6px);box-shadow:var(--shadow-md, 0 3px 8px rgba(0, 0, 0, .2));z-index:var(--z-index-dropdown, 1000);padding:var(--spacing-xs, 4px);color:var(--color-text-primary);font-size:var(--font-size-sm, .875rem);font-family:var(--font-family-primary, "Segoe UI", sans-serif)}.context-menu__content{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.context-menu__scroll-button{border:none;background:transparent;color:var(--color-text-secondary);height:24px;display:flex;align-items:center;justify-content:center;cursor:default;border-radius:var(--border-radius-sm, 4px);transition:background-color .2s ease,color .2s ease;-webkit-user-select:none;user-select:none}.context-menu__scroll-button[data-active=true]{cursor:pointer}.context-menu__scroll-button[data-active=true]:hover{background-color:var(--color-secondary);color:var(--color-primary)}.context-menu__items{max-height:200px;overflow-y:auto;overscroll-behavior:contain}.context-menu__list{list-style:none;margin:0;padding:0}.context-menu__item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:var(--border-radius-sm, 4px);cursor:pointer;gap:var(--spacing-sm, 8px);color:inherit}.context-menu__item:hover,.context-menu__item[aria-expanded=true]{background-color:var(--color-secondary)}.context-menu__item[aria-disabled=true]{opacity:.5;cursor:not-allowed}.context-menu__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.context-menu__item-shortcut{font-size:.75em;color:var(--color-text-secondary)}.context-menu__submenu-indicator{font-size:.8em;color:var(--color-text-secondary)}.context-menu__spinner-container,.context-menu__empty{padding:var(--spacing-lg, 16px);display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm, 8px);color:var(--color-text-secondary)}.context-menu__spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-primary);animation:context-menu-spin .8s linear infinite;will-change:transform}@keyframes context-menu-spin{0%{transform:translateZ(0) rotate(0)}to{transform:translateZ(0) rotate(360deg)}}:root{--session-mid-section-height: 470px;--left-section-width: 400px}.session-mid-section{display:flex;justify-content:space-between;align-items:center;color:var(--color-text-primary);font-size:var(--font-size-md);height:var(--session-mid-section-height);min-height:var(--session-mid-section-height);width:100%;z-index:1;background-color:var(--color-background-lighter)}.left-section{width:calc(var(--left-section-width) - (4 * var(--spacing-md)));min-width:calc(var(--left-section-width) - (4 * var(--spacing-md)));display:flex;flex-direction:column;align-items:center;height:calc(100% - 4 * var(--spacing-md));border:1px solid var(--color-border);border-radius:var(--border-radius-md);margin:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-secondary);box-shadow:var(--shadow-md)}.room-image-frame{width:350px;height:350px;border:1px solid var(--color-border);border-radius:var(--border-radius-sm);position:relative;overflow:hidden;background-color:var(--color-secondary);display:flex;flex-direction:column}.room-image{width:100%;height:auto;max-height:100%;object-fit:cover;object-position:center bottom;display:block;margin-top:auto}.room-name{display:flex;align-items:center;flex-direction:column;justify-content:center;flex-grow:1}.room-area{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--spacing-xxs)}.room-combat-indicator{align-self:flex-start;font-size:var(--font-size-xs, .75rem);padding:2px 8px;border-radius:999px;background:#ff787829;color:#ffd2d2e6;border:1px solid rgba(255,120,120,.4)}.room-name-line{display:flex;align-items:baseline;gap:var(--spacing-xs)}.room-type{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.room-weather{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);margin:var(--spacing-sm) 0}.room-weather--overlay{position:absolute;bottom:var(--spacing-xs);left:var(--spacing-xs);right:var(--spacing-xs);z-index:2;margin:0;padding:var(--spacing-xs) var(--spacing-xs) var(--spacing-xs) var(--spacing-xs);border-radius:var(--border-radius-sm);background:color-mix(in srgb,var(--color-background),transparent 35%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.weather-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.weather-chips{display:flex;gap:var(--spacing-xs);flex-wrap:wrap;justify-content:flex-end}.weather-chip{display:inline-flex;align-items:center;padding:0;margin:0;font-size:var(--font-size-xs)}.weather-chip--calm{background:var(--color-success-muted);color:var(--color-text-primary)}.middle-section{display:flex;flex-direction:column;align-items:flex-start;height:calc(100% - (2 * var(--spacing-md)) - (2 * var(--spacing-md)));border:1px solid var(--color-border);border-radius:var(--border-radius-md);margin:var(--spacing-md) 0;flex-grow:1;padding:var(--spacing-md);background-color:var(--color-secondary);box-shadow:var(--shadow-md)}.room-description{min-height:120px;border-bottom:1px solid var(--color-border)}.world-navigation{width:250px;min-width:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:calc(100% - 2 * var(--spacing-md));margin:var(--spacing-md)}.world-navigation .interactive{width:40px;height:40px;padding:0;margin:0;border:none;background:transparent;align-items:center;justify-content:center;display:flex;color:inherit;border-radius:20px}.minimap{position:relative;left:0;top:0;width:230px;height:230px}.session-bottom-section{display:flex;flex-direction:column;background-color:var(--color-background-lighter);color:var(--color-text-primary);font-size:var(--font-size-md);width:100%;flex-grow:1;min-height:0;overflow:hidden}.session-bottom-section__active-progress{padding:0 var(--spacing-md);border-bottom:1px solid transparent;background-color:var(--color-background, var(--color-background-lighter));box-shadow:0 2px 6px #0000;position:relative;z-index:2;max-height:0;opacity:0;transform:translate3d(0,-.5rem,0);transition:max-height .22s ease,opacity .18s ease,transform .22s ease,padding .22s ease,border-color .22s ease,box-shadow .22s ease;overflow:hidden;pointer-events:none}html[data-view-mode=compact] .session-bottom-section__active-progress{position:fixed;left:0;right:0;bottom:calc(var(--rd-communication-dock-height, 0px));z-index:1050;border-bottom:none;border-top:1px solid transparent;padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px));transform:translate3d(0,.5rem,0)}.session-bottom-section__active-progress--visible{padding:var(--spacing-md);border-bottom:1px solid var(--color-border, rgba(255, 255, 255, .08));box-shadow:0 2px 6px #0000004d;max-height:140px;opacity:1;transform:translateZ(0);pointer-events:auto}html[data-view-mode=compact] .session-bottom-section__active-progress--visible{border-bottom:none;border-top:1px solid var(--color-border, rgba(255, 255, 255, .12));box-shadow:0 -8px 18px #00000047}.log-messages{flex:1;overflow-y:auto;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + var(--rd-communication-dock-height, 0px) + var(--rd-active-progress-height, 0px));display:block;font-size:var(--font-size-md);-webkit-user-select:text;user-select:text}.log-messages__quick-actions{position:sticky;top:0;z-index:6;height:0;padding:0;pointer-events:none}.log-messages__quick-actions .quick-actions-toolbar{position:absolute;top:0;right:0;pointer-events:auto}.log-messages__inner{display:block}.log-message{line-height:1.4;white-space:pre-wrap;color:var(--color-text-secondary);padding-bottom:var(--spacing-xs)}.log-message__content{display:block;position:relative}.log-message__simplify-overlay{position:absolute;top:0;right:0;bottom:0;left:0;opacity:1;transform:translateZ(0);will-change:opacity,transform;pointer-events:none;animation:logSimplifyFadeOut .18s ease forwards}@keyframes logSimplifyFadeOut{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-2px,0)}}@media(prefers-reduced-motion:reduce){.log-message__simplify-overlay{animation:none;opacity:0}}.log-message__layer{grid-area:1 / 1 / 2 / 2;transition:opacity .2s ease,transform .22s ease;opacity:0;transform:translate3d(0,6px,0);will-change:opacity,transform}.log-message__layer.is-active{opacity:1;pointer-events:auto}.log-message__layer.is-inactive{opacity:0;pointer-events:none}.log-message--general{color:var(--color-text-primary)}.log-message--markdown{color:var(--color-text-primary);white-space:normal}.log-message__markdown{white-space:normal}.log-message__markdown--plain{white-space:pre-wrap}.log-message__markdown :where(h1,h2,h3,h4,h5,h6){margin:.25rem 0}.log-message__markdown :where(p){margin:.25rem 0}.log-message__markdown :where(ul,ol){margin:.25rem 0;padding-left:1.25rem}.log-message__markdown :where(li){margin:.125rem 0}.log-message__markdown :where(pre){margin:.25rem 0;padding:.25rem .5rem;overflow-x:auto}.log-message__markdown :where(blockquote){margin:.25rem 0;padding-left:.5rem}.log-message__markdown :where(hr){margin:.5rem 0}.log-message--other-action{color:var(--color-text-secondary)}.log-message--combat,.log-message--error{color:var(--color-error)}.log-message--movement,.log-message--info,.log-message--time{color:var(--color-info)}.log-message--communication{color:var(--color-text-secondary)}.communication-quote,.communication-quote--say,.communication-quote--say-to{color:var(--color-accent)}.communication-quote--tell{color:var(--color-primary)}.communication-quote--whisper,.communication-quote--whisper-to{color:var(--color-info)}.communication-quote--yell{color:var(--color-warning)}.communication-quote--murmur{color:var(--color-text-secondary)}.log-message--warning{color:var(--color-warning)}.log-message--own-action{color:var(--color-log-own-action, var(--color-warning))}.log-message--progress{color:var(--color-success)}.log-message--quest{color:var(--color-accent)}.log-message--system{color:var(--color-primary)}.log-message--weather{color:var(--color-weather, var(--color-info))}.log-message--creature-effect{color:var(--color-creature-effect, var(--color-success))}.progress-bar{display:flex;flex-direction:column;gap:4px;width:100%;max-width:400px;color:var(--color-text-primary, var(--color-text-secondary, inherit))}.progress-bar__label{font-weight:600;font-size:.85rem;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;margin:0;display:flex;align-items:center;justify-content:center;pointer-events:none;text-align:center;color:var(--color-text-primary, var(--color-text-secondary, inherit));text-shadow:var(--interactive-text-shadow, none)}.progress-bar__track{width:100%;height:20px;border-radius:var(--border-radius-progress-bar, 999px);background:color-mix(in srgb,var(--color-secondary, var(--color-background, currentColor)) 60%,var(--color-background, transparent));border:1px solid var(--color-border, currentColor);box-shadow:inset 0 0 4px color-mix(in srgb,var(--color-border, currentColor) 50%,transparent);position:relative;overflow:hidden}.progress-bar__fill{height:100%;border-radius:var(--border-radius-progress-bar, 999px);background:linear-gradient(90deg,color-mix(in srgb,var(--color-success, var(--color-primary, currentColor)) 85%,transparent),color-mix(in srgb,var(--color-accent, var(--color-primary, currentColor)) 80%,transparent));width:100%;transform-origin:left center;transform:scaleX(0);will-change:transform;transition:transform .1s linear;position:relative;z-index:1;box-shadow:0 0 6px color-mix(in srgb,var(--color-accent, currentColor) 50%,transparent)}.quick-actions-toolbar{display:flex;flex-direction:column;gap:10px;border-radius:14px;z-index:1;background:color-mix(in srgb,var(--color-secondary) 35%,transparent);border:1px solid color-mix(in srgb,var(--color-border) 60%,transparent);box-shadow:0 10px 28px #00000040;transition:background .14s ease,border-color .14s ease}.quick-actions-toolbar:hover{background:color-mix(in srgb,var(--color-secondary) 72%,transparent);border-color:color-mix(in srgb,var(--color-border) 95%,transparent)}.quick-actions-toolbar__button{width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--color-secondary) 12%,transparent);color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;opacity:.82;transition:opacity .14s ease,background .14s ease,border-color .14s ease}.quick-actions-toolbar__button:hover,.quick-actions-toolbar__button:active,.quick-actions-toolbar__button:focus-visible{opacity:1;background:color-mix(in srgb,var(--color-secondary) 78%,transparent);border-color:color-mix(in srgb,var(--color-border) 90%,transparent);outline:none}.quick-actions-toolbar__button:disabled{opacity:.35;cursor:not-allowed}.combat-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;pointer-events:none}.combat-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.combat-modal__panel{position:relative;width:min(1100px,96vw);height:min(86vh,860px);background:var(--color-background, #0f0f13);color:var(--color-text-primary, #f6f6f6);border-radius:16px;border:1px solid var(--color-border, rgba(255, 255, 255, .08));box-shadow:0 24px 60px #00000073;display:grid;grid-template-rows:auto auto 1fr auto;gap:var(--spacing-md, 12px);padding:var(--spacing-lg, 16px);pointer-events:auto}.combat-modal--compact .combat-modal__panel{width:100%;height:100%;border-radius:0;padding:var(--spacing-md, 12px) var(--spacing-md, 12px) calc(var(--spacing-md, 12px) + env(safe-area-inset-bottom,0px))}.combat-modal__header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md, 12px)}.combat-modal__actions{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.combat-modal__loadout{border-radius:999px;padding:6px 14px;border:1px solid rgba(80,196,255,.6);background:#50c4ff1f;color:#cfefff;font-size:var(--font-size-sm, .85rem);cursor:pointer}.combat-modal__title{display:flex;flex-direction:column;gap:var(--spacing-xxs, 2px)}.combat-modal__title-text{font-size:var(--font-size-xl, 1.25rem);font-weight:600}.combat-modal__subtitle,.combat-modal__target{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #b0b0b0)}.combat-modal__log{min-height:0;border-radius:12px;border:1px solid var(--color-border, rgba(255, 255, 255, .08));overflow:hidden}.session-bottom-section--combat{background:transparent}.session-bottom-section--combat .log-messages{padding:var(--spacing-md, 12px)}.combat-participants{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-sm, 8px)}.combat-participant{border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:#ffffff05;border-radius:12px;padding:var(--spacing-sm, 10px);text-align:left;color:inherit;display:flex;flex-direction:column;gap:var(--spacing-xs, 6px);cursor:pointer;transition:border-color .12s ease,transform .12s ease,background .12s ease}.combat-participant:hover{border-color:#ffffff38;transform:translateY(-1px)}.combat-participant--self{border-color:#50c4ff66}.combat-participant--target{border-color:#ff7878a6;background:#ff787814}.combat-participant__header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--spacing-sm, 8px)}.combat-participant__name{font-weight:600;font-size:var(--font-size-md, .95rem)}.combat-participant__level{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #b0b0b0)}.combat-participant__hp{display:flex;flex-direction:column;gap:var(--spacing-xxs, 4px)}.combat-participant__hp-bar{width:100%;height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.combat-participant__hp-fill{height:100%;background:linear-gradient(90deg,#51d27f,#36b26b)}.combat-participant__hp-label{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #b0b0b0)}.combat-participant__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.combat-participant__ready{font-size:var(--font-size-xs, .75rem);padding:2px 6px;border-radius:999px;background:#ffffff14}.combat-participant--ready .combat-participant__ready{background:#50c4ff40;color:#cfefff}.combat-status-icon{font-size:var(--font-size-xs, .7rem);padding:2px 6px;border-radius:999px;background:#ffffff1f;color:var(--color-text-secondary, #c7c7c7)}.combat-participant__status{display:flex;flex-wrap:wrap;gap:var(--spacing-xxs, 4px)}.combat-skill-bar{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-md, 12px);align-items:center}.combat-skill-bar__slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-sm, 8px)}.combat-skill-bar__slot{position:relative;border-radius:12px;border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:#ffffff08;color:inherit;padding:var(--spacing-sm, 10px);display:flex;flex-direction:column;gap:var(--spacing-xxs, 4px);text-align:left;cursor:pointer}.combat-skill-bar__slot:disabled{cursor:not-allowed;opacity:.55}.combat-skill-bar__slot-index{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #b0b0b0)}.combat-skill-bar__slot-label{font-size:var(--font-size-sm, .9rem);font-weight:600}.combat-skill-bar__cooldown{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c;font-size:var(--font-size-sm, .85rem);color:#fff;border-radius:12px}.combat-skill-bar__flee{border-radius:999px;padding:var(--spacing-sm, 10px) var(--spacing-lg, 18px);border:1px solid rgba(255,120,120,.6);background:#ff78781f;color:#ffdede;font-weight:600;cursor:pointer}.combat-skill-bar__flee:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.combat-modal__panel{height:92vh}.combat-skill-bar{grid-template-columns:1fr}.combat-skill-bar__flee{width:100%;text-align:center}}.combat-loadout-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1250;display:flex;align-items:center;justify-content:center}.combat-loadout-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009}.combat-loadout-dialog__panel{position:relative;width:min(920px,92vw);max-height:85vh;background:var(--color-background, #0f0f13);color:var(--color-text-primary, #f5f5f5);border-radius:16px;border:1px solid var(--color-border, rgba(255, 255, 255, .08));box-shadow:var(--shadow-lg, 0 16px 40px rgba(0, 0, 0, .4));display:flex;flex-direction:column;gap:var(--spacing-md, 12px);padding:var(--spacing-lg, 16px);overflow:hidden}.combat-loadout-dialog__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md, 12px)}.combat-loadout-dialog__title{font-size:var(--font-size-lg, 1.1rem);font-weight:600}.combat-loadout-dialog__subtitle{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #b0b0b0)}.combat-loadout-dialog__close{border:none;background:transparent;color:inherit;font-size:var(--font-size-xl, 1.25rem);cursor:pointer}.combat-loadout-dialog__content{display:grid;grid-template-columns:minmax(200px,1fr) 2fr;gap:var(--spacing-md, 12px);overflow:auto}.combat-loadout-dialog__slots{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.combat-loadout-dialog__slot{border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:#ffffff0a;color:inherit;border-radius:10px;padding:var(--spacing-sm, 10px);text-align:left;cursor:pointer}.combat-loadout-dialog__slot--active{border-color:#50c4ff80;background:#50c4ff1f}.combat-loadout-dialog__slot-index{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #b0b0b0)}.combat-loadout-dialog__slot-label{font-size:var(--font-size-sm, .9rem);font-weight:600}.combat-loadout-dialog__skills-header{font-size:var(--font-size-sm, .9rem);color:var(--color-text-secondary, #b0b0b0);margin-bottom:var(--spacing-xs, 6px)}.combat-loadout-dialog__skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-sm, 8px)}.combat-loadout-dialog__skill{border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:#ffffff08;border-radius:12px;padding:var(--spacing-sm, 10px);text-align:left;color:inherit;cursor:pointer}.combat-loadout-dialog__skill-name{font-weight:600;font-size:var(--font-size-sm, .9rem)}.combat-loadout-dialog__skill-desc{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #b0b0b0);margin-top:var(--spacing-xxs, 4px)}.combat-loadout-dialog__empty{font-size:var(--font-size-sm, .9rem);color:var(--color-text-secondary, #b0b0b0)}.combat-loadout-dialog__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md, 12px)}.combat-loadout-dialog__clear,.combat-loadout-dialog__done{border-radius:999px;padding:var(--spacing-sm, 8px) var(--spacing-lg, 16px);border:1px solid var(--color-border, rgba(255, 255, 255, .2));background:#ffffff0a;color:inherit;cursor:pointer}.combat-loadout-dialog__done{border-color:#50c4ff99;background:#50c4ff29}@media(max-width:900px){.combat-loadout-dialog__panel{width:100%;height:100%;border-radius:0;padding:var(--spacing-md, 12px) var(--spacing-md, 12px) calc(var(--spacing-md, 12px) + env(safe-area-inset-bottom,0px))}.combat-loadout-dialog__content{grid-template-columns:1fr}}.quantity-selector-dialog{position:fixed;bottom:var(--spacing-xl, 24px);right:var(--spacing-xl, 24px);width:min(360px,calc(100% - 2 * var(--spacing-xl, 24px)));background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-lg, 8px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .35));padding:var(--spacing-lg, 16px);z-index:var(--z-index-quantity-modal, 5000);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform}.quantity-selector-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md, 12px);margin-bottom:var(--spacing-lg, 16px);cursor:grab;-webkit-user-select:none;user-select:none}.quantity-selector-dialog__header-actions{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.quantity-selector-dialog__title{font-size:var(--font-size-lg, 1.125rem);font-weight:600;margin:0}.quantity-selector-dialog__subtitle{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0);margin:0}.quantity-selector-dialog__max{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0);white-space:nowrap}.quantity-selector-dialog__close{border:none;background:transparent;color:var(--color-text-primary, #f3f3f3);font-size:var(--font-size-lg, 1.125rem);cursor:pointer;line-height:1;padding:var(--spacing-xxs, 2px)}.quantity-selector-dialog__controls{display:flex;align-items:center;gap:var(--spacing-sm, 8px);margin-bottom:var(--spacing-md, 12px)}.quantity-selector-dialog__adjust{border:1px solid var(--color-border, rgba(255, 255, 255, .18));background:var(--color-secondary, rgba(255, 255, 255, .08));color:var(--color-text-primary, #f3f3f3);padding:var(--spacing-sm, 8px);border-radius:var(--border-radius-sm, 4px);font-weight:600;min-width:52px;cursor:pointer;transition:background .2s ease,color .2s ease}.quantity-selector-dialog__adjust:disabled{opacity:.5;cursor:not-allowed}.quantity-selector-dialog__slider{flex:1}.quantity-selector-dialog__slider input[type=range]{width:100%;accent-color:var(--color-primary, #4f46e5)}.quantity-selector-dialog__input{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px);font-size:var(--font-size-sm, .875rem);margin-bottom:var(--spacing-lg, 16px)}.quantity-selector-dialog__input input{border:1px solid var(--color-border, rgba(255, 255, 255, .18));background:var(--color-background-lighter, rgba(255, 255, 255, .05));color:var(--color-text-primary, #f3f3f3);padding:var(--spacing-sm, 8px);border-radius:var(--border-radius-sm, 4px);font-size:var(--font-size-md, 1rem)}.quantity-selector-dialog__actions{display:flex;gap:var(--spacing-md, 12px);justify-content:flex-end}.quantity-selector-dialog__button{border-radius:var(--border-radius-md, 6px);padding:var(--spacing-sm, 8px) var(--spacing-lg, 16px);font-weight:600;border:1px solid transparent;cursor:pointer;transition:background .2s ease,color .2s ease,border .2s ease}.quantity-selector-dialog__button--secondary{background:transparent;border-color:var(--color-border, rgba(255, 255, 255, .18));color:var(--color-text-primary, #f3f3f3)}.quantity-selector-dialog__button--primary{background:var(--color-primary, #4f46e5);color:#fff}.quantity-selector-dialog__button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.quantity-selector-dialog{left:var(--spacing-lg, 16px);right:var(--spacing-lg, 16px);width:auto}}.shop-dialog{position:fixed;bottom:var(--spacing-xl, 24px);right:var(--spacing-xl, 24px);width:min(640px,calc(100% - 2 * var(--spacing-xl, 24px)));background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-lg, 8px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .35));padding:var(--spacing-lg, 16px);z-index:var(--z-index-popover, 1060);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform}.shop-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md, 12px);cursor:grab;-webkit-user-select:none;user-select:none}.shop-dialog__header:active{cursor:grabbing}.shop-dialog__title{font-size:var(--font-size-lg, 1.125rem);font-weight:600;margin:0}.shop-dialog__subtitle{margin:0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.shop-dialog__close{border:none;background:transparent;color:var(--color-text-primary, #f3f3f3);font-size:var(--font-size-xl, 1.25rem);cursor:pointer;line-height:1;padding:var(--spacing-xs, 4px)}.shop-dialog__table{margin-top:var(--spacing-lg, 16px);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-md, 6px);background:var(--color-background-lighter, rgba(255, 255, 255, .03));overflow:hidden}.shop-dialog__table-wrapper{max-height:320px;overflow-y:auto}.shop-dialog__table table{width:100%;border-collapse:separate;border-spacing:0}.shop-dialog__table th,.shop-dialog__table td{padding:var(--spacing-sm, 8px) var(--spacing-md, 12px);text-align:left;font-size:var(--font-size-sm, .875rem)}.shop-dialog__table thead th{position:sticky;top:0;background:var(--color-secondary, rgba(255, 255, 255, .08));border-bottom:1px solid var(--color-border, rgba(255, 255, 255, .12));z-index:1}.shop-dialog__table tbody td{border-bottom:1px solid var(--color-border, rgba(255, 255, 255, .08))}.shop-dialog__table tbody tr:last-child td{border-bottom:none}.shop-dialog__table tbody tr{transition:background .2s ease}.shop-dialog__table tbody tr:hover{background:#ffffff0f}.shop-dialog__table tbody tr:nth-child(2n){background:#ffffff05}.shop-dialog__cell--name{font-weight:600;max-width:250px;min-width:250px;overflow:hidden}.shop-dialog__cell--price{overflow:hidden}.shop-dialog__cell--available{max-width:70px;min-width:70px;overflow:hidden}.shop-dialog__cell--buy{max-width:140px;min-width:140px;overflow:hidden}.shop-dialog__quantity{display:flex;align-items:center;gap:var(--spacing-xs, 4px)}.shop-dialog__quantity input{width:64px;border:1px solid var(--color-border, rgba(255, 255, 255, .18));background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);padding:var(--spacing-xs, 4px);border-radius:var(--border-radius-sm, 4px);text-align:center}.shop-dialog__quantity-button{border:1px solid var(--color-border, rgba(255, 255, 255, .18));background:var(--color-secondary, rgba(255, 255, 255, .08));color:var(--color-text-primary, #f3f3f3);width:28px;height:28px;border-radius:var(--border-radius-sm, 4px);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;margin-left:0}.shop-dialog__quantity-button:disabled{opacity:.5;cursor:not-allowed}.shop-dialog__empty-row td{text-align:center;padding:var(--spacing-lg, 16px);color:var(--color-text-secondary, #a0a0a0)}.shop-dialog__table-footer{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px);padding:var(--spacing-md, 12px);border-top:1px solid var(--color-border, rgba(255, 255, 255, .12));background:#00000040}.shop-dialog__table-footer p{margin:0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.shop-dialog__funds{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px);font-size:var(--font-size-sm, .875rem)}.shop-dialog__actions{margin-top:var(--spacing-lg, 16px);display:flex;justify-content:flex-end;gap:var(--spacing-md, 12px)}.shop-dialog__button{border-radius:var(--border-radius-md, 6px);padding:var(--spacing-sm, 8px) var(--spacing-lg, 16px);font-weight:600;border:1px solid transparent;cursor:pointer}.shop-dialog__button--secondary{background:transparent;border-color:var(--color-border, rgba(255, 255, 255, .18));color:var(--color-text-primary, #f3f3f3)}.shop-dialog__button--primary{background:var(--color-primary, #4f46e5);color:#fff}.shop-dialog__button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:720px){.shop-dialog{left:var(--spacing-lg, 16px);right:var(--spacing-lg, 16px);width:auto}.shop-dialog__table-wrapper{max-height:240px}}.bank-dialog{position:fixed;bottom:var(--spacing-xl, 24px);right:var(--spacing-xl, 24px);width:min(520px,calc(100% - 2 * var(--spacing-xl, 24px)));background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-lg, 8px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .35));padding:var(--spacing-lg, 16px);z-index:var(--z-index-popover, 1060);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform}.bank-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md, 12px);cursor:grab;-webkit-user-select:none;user-select:none}.bank-dialog__header:active{cursor:grabbing}.bank-dialog__title{font-size:var(--font-size-lg, 1.125rem);font-weight:600;margin:0}.bank-dialog__subtitle{margin:0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.bank-dialog__close{border:none;background:transparent;color:var(--color-text-primary, #f3f3f3);font-size:var(--font-size-xl, 1.25rem);cursor:pointer;line-height:1;padding:var(--spacing-xs, 4px)}.bank-dialog__grid{margin-top:var(--spacing-lg, 16px);display:grid;grid-template-columns:1fr;gap:var(--spacing-md, 12px)}.bank-dialog__panel{border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-md, 6px);background:var(--color-background-lighter, rgba(255, 255, 255, .03));padding:var(--spacing-md, 12px)}.bank-dialog__panel--summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md, 12px)}.bank-dialog__stat{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.bank-dialog__label{margin:0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.bank-dialog__value{margin:0;font-weight:700}.bank-dialog__muted{margin:0;color:var(--color-text-secondary, #a0a0a0);font-size:var(--font-size-sm, .875rem)}.bank-dialog__panel--inputs{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.bank-dialog__panel-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--spacing-sm, 8px)}.bank-dialog__rows{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.bank-dialog__row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md, 12px)}.bank-dialog__row-label{min-width:72px;font-weight:600}.bank-dialog__quantity{display:flex;align-items:center;gap:var(--spacing-xs, 4px)}.bank-dialog__quantity input{width:88px;border:1px solid var(--color-border, rgba(255, 255, 255, .18));background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);padding:var(--spacing-xs, 4px);border-radius:var(--border-radius-sm, 4px);text-align:center}.bank-dialog__quantity-button{border:1px solid var(--color-border, rgba(255, 255, 255, .18));background:var(--color-secondary, rgba(255, 255, 255, .08));color:var(--color-text-primary, #f3f3f3);width:28px;height:28px;border-radius:var(--border-radius-sm, 4px);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.bank-dialog__quantity-button:disabled{opacity:.5;cursor:not-allowed}.bank-dialog__panel--totals{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.bank-dialog__totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-md, 12px)}.bank-dialog__summary-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm, 8px);padding:var(--spacing-xs, 4px) 0;border-top:1px solid var(--color-border, rgba(255, 255, 255, .08))}.bank-dialog__actions{margin-top:var(--spacing-lg, 16px);display:flex;justify-content:flex-end;gap:var(--spacing-md, 12px)}.bank-dialog__button{border-radius:var(--border-radius-md, 6px);padding:var(--spacing-sm, 8px) var(--spacing-lg, 16px);font-weight:600;border:1px solid transparent;cursor:pointer}.bank-dialog__button--secondary{background:transparent;border-color:var(--color-border, rgba(255, 255, 255, .18));color:var(--color-text-primary, #f3f3f3)}.bank-dialog__button--primary{background:var(--color-primary, #4f46e5);color:#fff}.bank-dialog__button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:720px){.bank-dialog{left:var(--spacing-lg, 16px);right:var(--spacing-lg, 16px);width:auto}}.communication-dialog{position:fixed;bottom:var(--spacing-xl, 24px);left:var(--spacing-xl, 24px);width:min(520px,calc(100% - 2 * var(--spacing-xl, 24px)));background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-lg, 8px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .35));padding:var(--spacing-lg, 16px);z-index:var(--z-index-popover, 1060);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform}html[data-view-mode=compact] .communication-dialog.communication-dialog--docked{left:0;right:0;bottom:0;width:100%;max-width:100%;border-radius:14px 14px 0 0;padding-bottom:calc(var(--spacing-lg, 16px) + env(safe-area-inset-bottom,0px));max-height:min(46vh,360px);overflow:auto}html[data-view-mode=compact] .communication-dialog.communication-dialog--docked .communication-dialog__header{cursor:default}.communication-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md, 12px);cursor:grab;-webkit-user-select:none;user-select:none}.communication-dialog__header:active{cursor:grabbing}.communication-dialog__heading{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.communication-dialog__title{font-size:var(--font-size-lg, 1.125rem);font-weight:600;margin:0}.communication-dialog__hint{margin:0;font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.communication-dialog__close{border:none;background:transparent;color:var(--color-text-primary, #f3f3f3);font-size:var(--font-size-xl, 1.25rem);cursor:pointer;line-height:1;padding:var(--spacing-xs, 4px)}.communication-dialog__grid{margin-top:var(--spacing-lg, 16px);display:grid;grid-template-columns:1fr;gap:var(--spacing-md, 12px)}.communication-dialog__field{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.communication-dialog__label{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.communication-dialog__select,.communication-dialog__textarea{width:100%;border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:var(--color-background-lighter, rgba(255, 255, 255, .03));color:var(--color-text-primary, #f3f3f3);border-radius:var(--border-radius-md, 6px);padding:var(--spacing-sm, 8px)}.communication-dialog__textarea{resize:vertical}.communication-dialog__validation{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.combat-skills-modal{position:fixed;bottom:var(--spacing-xl, 24px);right:var(--spacing-xl, 24px);width:min(700px,calc(100% - 2 * var(--spacing-xl, 24px)));max-height:min(85vh,820px);background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-lg, 8px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .35));display:flex;flex-direction:column;gap:var(--spacing-md, 12px);padding:var(--spacing-lg, 16px);overflow:hidden;z-index:var(--z-index-popover, 1060);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform}.combat-skills-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md, 12px);cursor:grab;-webkit-user-select:none;user-select:none}.combat-skills-modal__header:active{cursor:grabbing}.combat-skills-modal--locked .combat-skills-modal__header{cursor:default}.combat-skills-modal__title{font-size:var(--font-size-lg, 1.1rem);font-weight:600}.combat-skills-modal__subtitle{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.combat-skills-modal__close{border:none;background:transparent;color:inherit;font-size:var(--font-size-xl, 1.25rem);cursor:pointer;padding:var(--spacing-xs, 4px);line-height:1}.combat-skills-modal__close:hover{color:var(--color-text-secondary, #a0a0a0)}.combat-skills-modal__content{display:flex;flex-direction:column;gap:var(--spacing-lg, 16px);overflow:auto;flex:1;min-height:0}.combat-skills-modal__section-header{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0);margin-bottom:var(--spacing-sm, 8px);font-weight:500}.combat-skills-modal__slots-section{flex-shrink:0}.combat-skills-modal__slots-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px)}.combat-skills-modal__slot{min-width:120px;flex:1 1 120px;max-width:180px;border:2px dashed var(--color-border, rgba(255, 255, 255, .12));background:var(--color-background-lighter, rgba(255, 255, 255, .03));border-radius:10px;padding:var(--spacing-sm, 10px);display:flex;flex-direction:column;gap:var(--spacing-xs, 4px);transition:border-color .15s,background .15s}.combat-skills-modal__slot--filled{border-style:solid;background:var(--color-secondary, rgba(255, 255, 255, .08))}.combat-skills-modal__slot--drag-over{border-color:var(--color-primary, #4f46e5);background:color-mix(in srgb,var(--color-primary, #4f46e5) 14%,var(--color-background, #101014))}.combat-skills-modal__slot-index{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0)}.combat-skills-modal__slot-content{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs, 4px);min-height:24px}.combat-skills-modal__slot-name{font-size:var(--font-size-sm, .9rem);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combat-skills-modal__slot-empty-label{font-size:var(--font-size-sm, .9rem);color:var(--color-text-secondary, #a0a0a0);font-style:italic}.combat-skills-modal__slot-clear{flex-shrink:0;border:none;background:color-mix(in srgb,var(--color-error, #f44336) 20%,transparent);color:var(--color-error, #f44336);font-size:var(--font-size-md, 1rem);line-height:1;width:22px;height:22px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.combat-skills-modal__slot-clear:hover{background:color-mix(in srgb,var(--color-error, #f44336) 35%,transparent)}.combat-skills-modal__skills-section{flex:1;overflow:auto}.combat-skills-modal__skills-grid{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px)}.combat-skills-modal__skill{min-width:140px;flex:1 1 140px;max-width:220px;border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:var(--color-background-lighter, rgba(255, 255, 255, .03));color:inherit;border-radius:10px;padding:var(--spacing-sm, 10px);cursor:grab;-webkit-user-select:none;user-select:none;transition:transform .1s,box-shadow .15s,opacity .15s,background .15s,border-color .15s}.combat-skills-modal__skill:hover{background:color-mix(in srgb,var(--color-secondary, #2d2d2d) 70%,transparent);box-shadow:var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, .2));border-color:color-mix(in srgb,var(--color-border, rgba(255, 255, 255, .12)) 70%,transparent)}.combat-skills-modal__skill:active{cursor:grabbing}.combat-skills-modal__skill--dragging{opacity:.5;transform:scale(.95)}.combat-skills-modal__skill-name{font-size:var(--font-size-sm, .9rem);font-weight:600;margin-bottom:var(--spacing-xs, 4px)}.combat-skills-modal__skill-desc{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0);line-height:1.3}.combat-skills-modal__empty{font-size:var(--font-size-sm, .9rem);color:var(--color-text-secondary, #a0a0a0);font-style:italic;padding:var(--spacing-md, 12px);text-align:center}.combat-skills-modal__footer{display:flex;justify-content:flex-end;padding-top:var(--spacing-sm, 8px);border-top:1px solid var(--color-border, rgba(255, 255, 255, .08))}.combat-skills-modal__footer-close{border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:var(--color-secondary, rgba(255, 255, 255, .08));color:inherit;font-size:var(--font-size-sm, .9rem);padding:var(--spacing-sm, 8px) var(--spacing-lg, 16px);border-radius:8px;cursor:pointer;transition:background .15s}.combat-skills-modal__footer-close:hover{background:color-mix(in srgb,var(--color-secondary, #2d2d2d) 80%,transparent)}@media(max-width:720px){.combat-skills-modal{left:var(--spacing-lg, 16px);right:var(--spacing-lg, 16px);width:auto}}.character-sheet{position:fixed;bottom:var(--spacing-xl, 24px);right:var(--spacing-xl, 24px);width:min(820px,calc(100% - 2 * var(--spacing-xl, 24px)));height:min(80vh,760px);background:var(--color-background, #101014);color:var(--color-text-primary, #f3f3f3);border:1px solid var(--color-border, rgba(255, 255, 255, .12));border-radius:var(--border-radius-lg, 10px);box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .35));display:flex;flex-direction:column;gap:var(--spacing-md, 12px);padding:var(--spacing-lg, 16px);overflow:hidden;z-index:var(--z-index-popover, 1060);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);will-change:transform}.character-sheet__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md, 12px);cursor:grab;-webkit-user-select:none;user-select:none}.character-sheet--compact .character-sheet__header{cursor:default}.character-sheet__actions{display:flex;align-items:center;gap:var(--spacing-xs, 6px)}.character-sheet__refresh{border:1px solid var(--color-border, rgba(255, 255, 255, .12));background:var(--color-secondary, rgba(255, 255, 255, .08));color:inherit;font-size:var(--font-size-xs, .75rem);padding:6px 10px;border-radius:8px;cursor:pointer;text-transform:uppercase;letter-spacing:.04em}.character-sheet__refresh:hover{background:color-mix(in srgb,var(--color-secondary, #2d2d2d) 70%,transparent)}.character-sheet__title{font-size:var(--font-size-lg, 1.125rem);font-weight:600}.character-sheet__subtitle{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.character-sheet__close{border:none;background:transparent;color:inherit;font-size:var(--font-size-xl, 1.25rem);cursor:pointer;padding:var(--spacing-xs, 4px);line-height:1}.character-sheet__body{display:flex;flex-direction:column;gap:var(--spacing-md, 12px);flex:1;min-height:0;overflow:hidden}.character-sheet__tabs{display:flex;gap:var(--spacing-xs, 6px);border-bottom:1px solid var(--color-border, rgba(255, 255, 255, .12));padding-bottom:var(--spacing-xs, 6px);flex-wrap:wrap}.character-sheet__tab{border:1px solid transparent;background:var(--color-secondary, rgba(255, 255, 255, .08));color:inherit;padding:var(--spacing-xs, 6px) var(--spacing-md, 12px);border-radius:999px;font-size:var(--font-size-sm, .85rem);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.character-sheet__tab.is-active{background:color-mix(in srgb,var(--color-primary, #4f46e5) 85%,transparent);border-color:color-mix(in srgb,var(--color-primary, #4f46e5) 70%,transparent);color:#fff}.character-sheet__content{flex:1;overflow:auto;min-height:0;padding-right:var(--spacing-sm, 8px)}.character-sheet__content .combat-skills-modal__content{overflow:visible;padding:0}.character-sheet__content .combat-skills-modal__skills-section{overflow:visible}.character-sheet__overview{display:flex;flex-direction:column;gap:var(--spacing-md, 12px)}.character-sheet__headline{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px);font-size:var(--font-size-lg, 1.125rem);font-weight:600}.character-sheet__meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm, 8px);font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0)}.character-sheet__description{margin:0;font-size:var(--font-size-sm, .9rem);line-height:1.5;color:var(--color-text-secondary, #a0a0a0)}.character-sheet__stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-sm, 10px)}.character-sheet__stat{background:var(--color-background-lighter, rgba(255, 255, 255, .03));border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:10px;padding:var(--spacing-sm, 10px);display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.character-sheet__stat-label{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0)}.character-sheet__stat-value{font-size:var(--font-size-sm, .9rem);font-weight:600}.character-sheet__inventory-list,.character-sheet__body-tree,.character-sheet__knowledge-list,.character-sheet__skills-list{display:flex;flex-direction:column;gap:var(--spacing-sm, 8px)}.character-sheet__inventory-row,.character-sheet__knowledge-row,.character-sheet__skill-row{background:var(--color-background-lighter, rgba(255, 255, 255, .03));border:1px solid var(--color-border, rgba(255, 255, 255, .1));border-radius:10px;padding:var(--spacing-sm, 10px)}.character-sheet__inventory-line{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.character-sheet__inventory-bodypart{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0);display:inline-flex;gap:4px;align-items:center}.character-sheet__toggle{border:1px solid var(--color-border, rgba(255, 255, 255, .2));background:var(--color-secondary, rgba(255, 255, 255, .08));color:inherit;width:24px;height:24px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease,background .15s ease}.character-sheet__toggle.is-open{transform:rotate(90deg)}.character-sheet__toggle-placeholder{width:24px;height:24px;display:inline-block}.character-sheet__inventory-children{margin-top:var(--spacing-xs, 6px);padding-left:var(--spacing-md, 12px);border-left:1px solid var(--color-border, rgba(255, 255, 255, .1));display:flex;flex-direction:column;gap:var(--spacing-xs, 6px)}.character-sheet__inventory-content-title{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0);margin-bottom:var(--spacing-xs, 4px)}.character-sheet__quantity,.character-sheet__item-suffix{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0)}.character-sheet__body-part{display:flex;flex-direction:column;gap:var(--spacing-xs, 6px)}.character-sheet__body-part-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm, 8px);font-weight:600}.character-sheet__body-part-status{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0);text-transform:capitalize}.character-sheet__equipment-list{display:flex;flex-direction:column;gap:var(--spacing-xs, 6px);padding-left:var(--spacing-md, 12px)}.character-sheet__equipment-item{display:flex;align-items:center;gap:var(--spacing-sm, 8px);font-size:var(--font-size-sm, .875rem)}.character-sheet__equipment-slot{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0);min-width:80px;text-transform:capitalize}.character-sheet__knowledge-row{display:flex;align-items:center;gap:var(--spacing-sm, 8px);flex-wrap:wrap}.character-sheet__knowledge-meta,.character-sheet__skill-meta{font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary, #a0a0a0);display:flex;gap:var(--spacing-sm, 8px)}.character-sheet__badge{background:color-mix(in srgb,var(--color-primary, #4f46e5) 70%,transparent);color:#fff;font-size:var(--font-size-xs, .7rem);padding:2px 6px;border-radius:999px}.character-sheet__skill-row{display:flex;flex-direction:column;gap:var(--spacing-xs, 4px)}.character-sheet__loading{display:flex;align-items:center;gap:var(--spacing-sm, 8px);color:var(--color-text-secondary, #a0a0a0);font-size:var(--font-size-sm, .875rem);padding:var(--spacing-lg, 16px)}.character-sheet__spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--color-text-secondary, #a0a0a0) 40%,transparent);border-top-color:var(--color-text-primary, #f3f3f3);border-radius:50%;animation:character-sheet-spin .8s linear infinite}.character-sheet__empty,.character-sheet__muted{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary, #a0a0a0);padding:var(--spacing-md, 12px)}@keyframes character-sheet-spin{to{transform:rotate(360deg)}}.character-sheet--compact .character-sheet__body{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-md, 12px)}.character-sheet--compact .character-sheet__tabs{grid-column:2;grid-row:1;flex-direction:column;border-bottom:none;border-left:1px solid var(--color-border, rgba(255, 255, 255, .12));padding:0 0 0 var(--spacing-xs, 6px);align-items:stretch}.character-sheet--compact .character-sheet__tab{width:100%;text-align:left}.character-sheet--compact .character-sheet__content{grid-column:1;padding-right:0}@media(max-width:720px){.character-sheet{left:var(--spacing-lg, 16px);right:var(--spacing-lg, 16px);width:auto}}.protected-route-status{margin:var(--spacing-xxl, 2rem) auto;max-width:min(640px,100%)}.admin-layout{display:flex;height:100vh;min-height:100vh;width:100%;background:linear-gradient(135deg,var(--color-background) 0%,color-mix(in srgb,var(--color-background) 95%,var(--color-primary) 5%) 100%);color:var(--color-text-primary);overflow:hidden}.admin-layout,.admin-layout *{box-sizing:border-box}.admin-layout__nav{flex-shrink:0}.admin-layout__main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.admin-layout__header{flex-shrink:0;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.admin-layout__title{margin:0;font-size:1.5rem;font-weight:600}.admin-layout__description{margin:.25rem 0 0;font-size:.875rem;color:var(--color-text-muted)}.admin-layout__content{flex:1;min-height:0;overflow:auto}@media(max-width:980px){.admin-layout{flex-direction:column;height:auto;min-height:calc(100vh - 80px)}}.admin-nav{width:240px;min-width:240px;padding:24px 16px;border-right:1px solid var(--color-border);background:color-mix(in srgb,var(--color-secondary) 60%,var(--color-background) 40%);display:flex;flex-direction:column;gap:24px;overflow-y:auto;height:100%}.admin-nav__header{display:flex;flex-direction:column;gap:4px;padding:0 8px}.admin-nav__title{font-size:20px;font-weight:700;letter-spacing:.02em}.admin-nav__subtitle{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary)}.admin-nav__menu ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.admin-nav__link{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;color:inherit;text-decoration:none;transition:background-color .15s ease,transform .1s ease}.admin-nav__link:hover{background:color-mix(in srgb,var(--color-text-primary) 8%,transparent)}.admin-nav__link--active{background:var(--color-primary);color:var(--color-background)}.admin-nav__link--active:hover{background:var(--color-primary)}.admin-nav__link-label{font-weight:600;font-size:14px}.admin-nav__link-desc{font-size:11px;opacity:.7}.admin-nav__link--active .admin-nav__link-desc{opacity:.85}@media(max-width:980px){.admin-nav{width:100%;min-width:100%;border-right:none;border-bottom:1px solid var(--color-border);padding:16px;flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.admin-nav__menu{flex:1;overflow-x:auto}.admin-nav__menu ul{flex-direction:row;gap:8px}.admin-nav__link{white-space:nowrap}.admin-nav__link-desc{display:none}}.admin-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .1s ease;position:relative}.admin-btn:active:not(:disabled){transform:scale(.98)}.admin-btn--sm{padding:4px 10px;font-size:12px}.admin-btn--md{padding:8px 14px;font-size:13px}.admin-btn--lg{padding:10px 18px;font-size:14px}.admin-btn--default{background:transparent;border:1px solid var(--color-border);color:var(--color-text-primary)}.admin-btn--default:hover:not(:disabled){background:color-mix(in srgb,var(--color-text-primary) 8%,transparent);border-color:color-mix(in srgb,var(--color-border) 80%,var(--color-text-primary) 20%)}.admin-btn--primary{background:var(--color-primary);border:1px solid var(--color-primary);color:var(--color-background)}.admin-btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 85%,black);border-color:color-mix(in srgb,var(--color-primary) 85%,black)}.admin-btn--danger{background:transparent;border:1px solid var(--color-error, #dc3545);color:var(--color-error, #dc3545)}.admin-btn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-error, #dc3545) 12%,transparent)}.admin-btn--ghost{background:transparent;border:1px solid transparent;color:var(--color-text-secondary)}.admin-btn--ghost:hover:not(:disabled){background:color-mix(in srgb,var(--color-text-primary) 8%,transparent);color:var(--color-text-primary)}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn--loading{pointer-events:none}.admin-btn__spinner{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:admin-btn-spin .6s linear infinite;position:absolute}.admin-btn__content--hidden{visibility:hidden}@keyframes admin-btn-spin{to{transform:rotate(360deg)}}.admin-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.admin-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.admin-modal__dialog{position:relative;display:flex;flex-direction:column;max-height:calc(100vh - 48px);background:var(--color-background);border-radius:12px;box-shadow:0 8px 32px #0003;animation:admin-modal-in .15s ease}.admin-modal__dialog--sm{width:100%;max-width:400px}.admin-modal__dialog--md{width:100%;max-width:560px}.admin-modal__dialog--lg{width:100%;max-width:800px}.admin-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border)}.admin-modal__title{margin:0;font-size:16px;font-weight:600}.admin-modal__body{flex:1;padding:20px;overflow-y:auto}.admin-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--color-border)}@keyframes admin-modal-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.admin-input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family-mono, monospace);font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.admin-input:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-border) 80%,var(--color-primary) 20%)}.admin-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.admin-input:disabled{opacity:.6;cursor:not-allowed;background:color-mix(in srgb,var(--color-background) 95%,var(--color-text-secondary) 5%)}.admin-input::placeholder{color:var(--color-text-secondary);opacity:.6}.admin-picker{display:flex;flex-direction:column;gap:12px}.admin-picker__status{padding:16px;text-align:center;color:var(--color-text-secondary);font-size:13px}.admin-picker__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:320px;overflow-y:auto}.admin-picker__item{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background-color .1s ease,border-color .1s ease}.admin-picker__item:hover{background:color-mix(in srgb,var(--color-text-primary) 6%,transparent)}.admin-picker__item--selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.admin-picker__item-id{font-weight:600;font-size:13px}.admin-picker__item-label{flex:1;font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-picker__item-check{color:var(--color-primary);font-weight:700}.admin-confirm__message{margin:0;font-size:14px;line-height:1.6;color:var(--color-text-primary)}.admin-panel{display:flex;flex-direction:column;background:color-mix(in srgb,var(--color-background) 94%,var(--color-secondary) 6%);border-radius:12px;border:1px solid var(--color-border);box-shadow:0 2px 8px #0000000f;min-height:0;overflow:hidden}.admin-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.admin-panel__titles{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-panel__title{margin:0;font-size:15px;font-weight:600}.admin-panel__subtitle{margin:0;font-size:12px;color:var(--color-text-secondary)}.admin-panel__toolbar{display:flex;align-items:center;gap:8px;flex-shrink:0}.admin-panel__body{flex:1;min-height:0;display:flex;flex-direction:column}.admin-panel__body--padded{padding:16px}.admin-panel__body--scrollable{overflow-y:auto;scrollbar-gutter:stable}.admin-panel__loading,.admin-panel__error{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--color-text-secondary);font-size:13px}.admin-panel__error{color:var(--color-error, #dc3545)}.admin-panel__spinner{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:admin-panel-spin .6s linear infinite}@keyframes admin-panel-spin{to{transform:rotate(360deg)}}.admin-search-input{display:flex;align-items:stretch;gap:4px}.admin-search-input__field{flex:1;min-width:0}.admin-search-input__btn{flex-shrink:0;padding:8px 10px}.admin-json-editor{display:flex;flex-direction:column;gap:4px}.admin-json-editor__container{border:1px solid var(--color-border, #dee2e6);border-radius:4px;overflow:hidden;min-height:300px}.admin-json-editor__container--error{border-color:var(--color-error, #dc3545)!important}.admin-json-editor__error{font-size:11px;color:var(--color-error, #dc3545);font-family:var(--font-family-mono, monospace)}.admin-json-editor .jse-main{--jse-background-color: var(--color-bg, #fff);--jse-text-color: var(--color-text, #212529);--jse-panel-background: var(--color-bg-secondary, #f8f9fa);--jse-panel-color: var(--color-text, #212529);--jse-panel-color-readonly: var(--color-text-muted, #6c757d);--jse-panel-border: var(--color-border, #dee2e6);--jse-menu-color: var(--color-text, #212529);--jse-key-color: var(--color-primary, #0d6efd);--jse-value-color-string: #28a745;--jse-value-color-number: #fd7e14;--jse-value-color-boolean: #6f42c1;--jse-value-color-null: #6c757d;--jse-delimiter-color: var(--color-text-muted, #6c757d);--jse-selection-background-color: rgba(13, 110, 253, .15);--jse-selection-background-inactive-color: rgba(13, 110, 253, .08);--jse-hover-background-color: rgba(13, 110, 253, .05);--jse-context-menu-background: var(--color-bg, #fff);--jse-context-menu-pointer-hover-background: var(--color-bg-secondary, #f8f9fa)}.admin-json-editor .jse-main,.admin-json-editor .jse-contents{height:100%}.admin-json-editor--compact .jse-main{--jse-font-size: 12px}@media(prefers-color-scheme:dark){.admin-json-editor .jse-main{--jse-background-color: #1e1e1e;--jse-text-color: #d4d4d4;--jse-panel-background: #252526;--jse-panel-color: #d4d4d4;--jse-panel-border: #3c3c3c;--jse-menu-color: #d4d4d4;--jse-key-color: #9cdcfe;--jse-value-color-string: #ce9178;--jse-value-color-number: #b5cea8;--jse-value-color-boolean: #569cd6;--jse-value-color-null: #808080;--jse-context-menu-background: #252526;--jse-context-menu-pointer-hover-background: #2a2d2e}}.admin-result{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:8px;font-size:13px}.admin-result--success{background:color-mix(in srgb,var(--color-success, #28a745) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-success, #28a745) 30%,transparent)}.admin-result--error{background:color-mix(in srgb,var(--color-error, #dc3545) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-error, #dc3545) 30%,transparent)}.admin-result--info{background:color-mix(in srgb,var(--color-primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 25%,transparent)}.admin-result__header{display:flex;align-items:center;gap:8px}.admin-result__icon{font-weight:700;flex-shrink:0}.admin-result--success .admin-result__icon{color:var(--color-success, #28a745)}.admin-result--error .admin-result__icon{color:var(--color-error, #dc3545)}.admin-result--info .admin-result__icon{color:var(--color-primary)}.admin-result__message{flex:1;min-width:0}.admin-result__actions{display:flex;align-items:center;gap:4px;margin-left:auto}.admin-result__data{margin:0;padding:10px;background:color-mix(in srgb,var(--color-background) 80%,transparent);border-radius:6px;font-family:var(--font-family-mono, monospace);font-size:11px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.admin-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px}.admin-loading__spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:admin-loading-spin .6s linear infinite}.admin-loading--sm .admin-loading__spinner{width:14px;height:14px}.admin-loading--md .admin-loading__spinner{width:20px;height:20px}.admin-loading--lg .admin-loading__spinner{width:28px;height:28px}.admin-loading__message{font-size:13px;color:var(--color-text-secondary)}@keyframes admin-loading-spin{to{transform:rotate(360deg)}}.entity-editor{display:flex;flex-direction:column;gap:1rem;height:100%;overflow-y:auto;padding:1rem}.entity-editor__mode-toggle{display:flex;gap:0;border:1px solid var(--color-border);border-radius:4px;overflow:hidden;width:fit-content}.entity-editor__mode-btn{padding:.375rem .75rem;border:none;background:var(--color-background);color:var(--color-text);font-size:.8125rem;cursor:pointer;transition:background-color .15s ease}.entity-editor__mode-btn:hover{background:var(--color-background-hover, rgba(0, 0, 0, .05))}.entity-editor__mode-btn.is-active{background:var(--color-primary);color:var(--color-primary-text, #fff)}.entity-editor__content{flex:1;min-height:0;overflow-y:auto}.entity-editor__json{display:flex;flex-direction:column;gap:.5rem}.entity-editor__form{display:flex;flex-direction:column;gap:.75rem}.entity-editor__field{display:flex;flex-direction:column;gap:.25rem}.entity-editor__label{font-size:.75rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.025em}.entity-editor__input{padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background);color:var(--color-text);font-size:.875rem}.entity-editor__input:focus{outline:none;border-color:var(--color-primary)}.entity-editor__textarea{padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background);color:var(--color-text);font-family:var(--font-mono, monospace);font-size:.8125rem;resize:vertical}.entity-editor__textarea:focus{outline:none;border-color:var(--color-primary)}.entity-editor__actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid var(--color-border)}.entity-editor__dependencies{background:var(--color-background-alt, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:4px;padding:1rem}.entity-editor__dependencies h4{margin:0 0 .75rem;font-size:.875rem;color:var(--color-text)}.entity-editor__dep-list{list-style:none;margin:0 0 1rem;padding:0;max-height:200px;overflow-y:auto}.entity-editor__dep-list li{display:flex;gap:.5rem;padding:.375rem 0;border-bottom:1px solid var(--color-border);font-size:.8125rem}.entity-editor__dep-collection{font-weight:500;color:var(--color-primary)}.entity-editor__dep-id{font-family:var(--font-mono, monospace)}.entity-editor__dep-path{color:var(--color-text-muted);margin-left:auto}.entities-section{display:grid;grid-template-columns:200px 280px 1fr;gap:1rem;padding:1rem;height:calc(100vh - 140px);min-height:500px}.entities-section__collections,.entities-section__entities,.entities-section__editor{overflow:hidden;display:flex;flex-direction:column}.entities-section__list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.entities-section__list-item{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;text-align:left;cursor:pointer;border-bottom:1px solid var(--color-border);color:var(--color-text);font-size:.875rem;transition:background-color .15s ease}.entities-section__list-item:hover{background:var(--color-background-hover, rgba(0, 0, 0, .05))}.entities-section__list-item.is-active{background:var(--color-primary);color:var(--color-primary-text, #fff)}.entities-section__list-item:disabled{opacity:.5;cursor:not-allowed}.entities-section__list-count{margin-left:auto;font-size:.75rem;opacity:.6}.entities-section__list-id{font-family:var(--font-mono, monospace);font-size:.8125rem}.entities-section__list-label{font-size:.75rem;opacity:.7}.entities-section__empty{padding:1rem;text-align:center;color:var(--color-text-muted);font-size:.875rem}.entities-section__search-bar{display:flex;gap:.5rem;align-items:center}.entities-section__placeholder{padding:2rem;text-align:center;color:var(--color-text-muted)}@media(max-width:900px){.entities-section{grid-template-columns:1fr;grid-template-rows:auto auto 1fr;height:auto}.entities-section__collections,.entities-section__entities{max-height:200px}}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-field__label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.admin-field__required{color:var(--color-error);margin-left:2px}.admin-field__control{display:flex;flex-direction:column;gap:4px}.admin-field__hint{font-size:12px;color:var(--color-text-tertiary, var(--color-text-secondary));opacity:.8}.admin-field__error{font-size:12px;color:var(--color-error)}.admin-field--error .admin-field__label{color:var(--color-error)}.admin-entity-input{display:flex;gap:.25rem;align-items:stretch}.admin-entity-input__field{flex:1}.admin-entity-input__btn{flex-shrink:0;padding:0 .5rem;min-width:2rem}.weather-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:flex-start;overflow:auto;min-height:0}.weather-panel>.admin-panel{flex:1 1 400px;min-width:350px;max-width:600px}.weather-panel__form{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.weather-panel__room-input{display:flex;gap:.5rem;align-items:flex-start}.weather-panel__room-input>:first-child{flex:1}.weather-panel__scope{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:var(--color-background-alt, rgba(0, 0, 0, .02));border-radius:4px}.weather-panel__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.weather-panel__actions{display:flex;gap:.5rem;flex-wrap:wrap}.weather-panel__snapshot{background:var(--color-background-alt, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:4px;padding:.75rem;max-height:300px;overflow:auto}.weather-panel__snapshot pre{margin:0;font-family:var(--font-mono, monospace);font-size:.75rem;white-space:pre-wrap;word-break:break-word}@media(max-width:900px){.weather-panel,.weather-panel__row{grid-template-columns:1fr}}.admin-select{width:100%;padding:8px 32px 8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background);color:var(--color-text-primary);font-size:13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .15s ease,box-shadow .15s ease}.admin-select:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-border) 80%,var(--color-primary) 20%)}.admin-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.admin-select:disabled{opacity:.6;cursor:not-allowed;background-color:color-mix(in srgb,var(--color-background) 95%,var(--color-text-secondary) 5%)}.admin-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.admin-toggle--disabled{opacity:.6;cursor:not-allowed}.admin-toggle__input{position:absolute;opacity:0;width:0;height:0}.admin-toggle__switch{position:relative;width:36px;height:20px;background:var(--color-border);border-radius:10px;transition:background-color .15s ease}.admin-toggle__switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--color-background);border-radius:50%;transition:transform .15s ease}.admin-toggle__input:checked+.admin-toggle__switch{background:var(--color-primary)}.admin-toggle__input:checked+.admin-toggle__switch:after{transform:translate(16px)}.admin-toggle__input:focus-visible+.admin-toggle__switch{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.admin-toggle__label{font-size:13px;color:var(--color-text-secondary)}.room-editor-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:flex-start;overflow:auto;min-height:0}.room-editor-panel>.admin-panel{flex:1 1 400px;min-width:350px;max-width:600px}.room-editor-panel__form{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.room-editor-panel__id-input{display:flex;gap:.5rem}.room-editor-panel__id-input>:first-child{flex:1}.room-editor-panel__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.room-editor-panel__actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.5rem;border-top:1px solid var(--color-border)}.room-editor-panel__snapshot{background:var(--color-background-alt, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:4px;padding:0;margin-top:.5rem}.room-editor-panel__snapshot summary{padding:.5rem .75rem;cursor:pointer;font-size:.875rem;font-weight:500}.room-editor-panel__snapshot pre{margin:0;padding:.75rem;border-top:1px solid var(--color-border);font-family:var(--font-mono, monospace);font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto}@media(max-width:900px){.room-editor-panel{grid-template-columns:1fr}}.vermin-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:flex-start;overflow:auto;min-height:0}.vermin-panel>.admin-panel{flex:1 1 400px;min-width:350px;max-width:600px}.vermin-panel__form{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.vermin-panel__room-input{display:flex;gap:.5rem}.vermin-panel__room-input>:first-child{flex:1}.vermin-panel__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.vermin-panel__snapshot{background:var(--color-background-alt, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:4px;padding:.75rem;max-height:200px;overflow:auto}.vermin-panel__snapshot pre{margin:0;font-family:var(--font-mono, monospace);font-size:.75rem;white-space:pre-wrap;word-break:break-word}.vermin-panel__result{grid-column:1 / -1}@media(max-width:900px){.vermin-panel{grid-template-columns:1fr}}.npc-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:flex-start;overflow:auto;min-height:0}.npc-panel>.admin-panel{flex:1 1 400px;min-width:350px;max-width:600px}.npc-panel__form{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.npc-panel__id-input{display:flex;gap:.5rem}.npc-panel__id-input>:first-child{flex:1}.npc-panel__stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.npc-panel__snapshot{background:var(--color-background-alt, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:4px;padding:0;margin-top:.5rem}.npc-panel__snapshot summary{padding:.5rem .75rem;cursor:pointer;font-size:.875rem;font-weight:500}.npc-panel__snapshot pre{margin:0;padding:.75rem;border-top:1px solid var(--color-border);font-family:var(--font-mono, monospace);font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto}.npc-panel__result{grid-column:1 / -1}@media(max-width:900px){.npc-panel{grid-template-columns:1fr}.npc-panel__stats-grid{grid-template-columns:repeat(2,1fr)}}.world-section{display:flex;flex-direction:column;height:calc(100vh - 140px);min-height:500px}.world-section__tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);padding:0 1rem;background:var(--color-background)}.world-section__tab{padding:.75rem 1.25rem;border:none;background:transparent;color:var(--color-text-muted);font-size:.875rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.world-section__tab:hover{color:var(--color-text)}.world-section__tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.world-section__content{flex:1;overflow:auto;padding:1rem;min-height:0}.economy-section{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem 1rem 4rem}.economy-section__snapshot,.economy-section__inventory,.economy-section__bulk{flex:1 1 400px;min-width:350px;max-width:600px}.economy-section__form{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.economy-section__row{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.economy-section__snapshot-result{background:var(--color-background-alt, rgba(0, 0, 0, .02));border:1px solid var(--color-border);border-radius:4px;padding:.75rem;max-height:300px;overflow:auto}.economy-section__snapshot-result pre{margin:0;font-family:var(--font-mono, monospace);font-size:.75rem;white-space:pre-wrap;word-break:break-word}@media(max-width:900px){.economy-section__snapshot,.economy-section__inventory,.economy-section__bulk{flex:1 1 100%;max-width:none}.economy-section__row{grid-template-columns:1fr}}.tickers-panel{overflow:auto;min-height:0}.tickers-panel__table{width:100%;border-collapse:collapse;font-size:.875rem}.tickers-panel__table th,.tickers-panel__table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--color-border)}.tickers-panel__table th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.025em;color:var(--color-text-muted);background:var(--color-background-alt, rgba(0, 0, 0, .02))}.tickers-panel__table tr.is-paused{opacity:.7}.tickers-panel__name{font-family:var(--font-mono, monospace);font-size:.8125rem}.tickers-panel__status{display:inline-block;padding:.125rem .5rem;border-radius:3px;font-size:.75rem;font-weight:500}.tickers-panel__status.is-running{background:var(--color-success-bg, #d4edda);color:var(--color-success, #155724)}.tickers-panel__status.is-paused{background:var(--color-warning-bg, #fff3cd);color:var(--color-warning, #856404)}.tickers-panel__interval{display:flex;gap:.25rem;align-items:center}.tickers-panel__interval input{width:100px}.tickers-panel__actions{display:flex;gap:.25rem}.time-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:flex-start;overflow:auto;min-height:0}.time-panel>.admin-panel{flex:1 1 400px;min-width:350px;max-width:500px}.time-panel__current{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem;margin-bottom:1rem}.time-panel__stat{display:flex;flex-direction:column;gap:.25rem}.time-panel__label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em;color:var(--color-text-muted)}.time-panel__value{font-size:1rem;font-weight:600}.time-panel__value.is-running{color:var(--color-success, #28a745)}.time-panel__value.is-paused{color:var(--color-warning, #ffc107)}.time-panel__controls{display:flex;gap:.5rem}.time-panel__form{display:flex;flex-direction:column;gap:.75rem;padding:.5rem}.time-panel__hint{font-size:.75rem;color:var(--color-text-muted);margin:0;line-height:1.4}.time-panel__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem}@media(max-width:700px){.time-panel{grid-template-columns:1fr}}.cache-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;overflow:auto;min-height:0}.cache-panel>.admin-panel{flex:1 1 350px;min-width:300px;max-width:500px}.cache-panel__form{display:flex;flex-direction:column;gap:1rem}.cache-panel__row{display:flex;gap:1rem;align-items:flex-end}.cache-panel__row .admin-field{flex:1}.cache-panel__row .admin-button{flex-shrink:0;margin-bottom:0}.cache-panel__clear{display:flex;gap:1rem;align-items:center;padding-top:.5rem;border-top:1px solid var(--color-border)}.cache-panel__clear .admin-toggle{flex:1}.config-panel{display:flex;flex-direction:column;gap:1.5rem;overflow:auto;min-height:0}.config-panel__override{display:flex;gap:1rem;align-items:flex-end}.config-panel__override .admin-field{flex:1}.config-panel__override .admin-button{flex-shrink:0;margin-bottom:0}.config-panel__actions{display:flex;gap:.5rem}.config-panel__filter{margin-bottom:1rem}.config-panel__filter .admin-input{max-width:300px}.config-panel__categories{display:flex;flex-direction:column;gap:1.5rem}.config-panel__category-title{margin:0 0 .5rem;font-size:.75rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.05em}.config-panel__table{width:100%;border-collapse:collapse;font-size:.875rem}.config-panel__table th,.config-panel__table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--color-border)}.config-panel__table th{font-weight:600;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase}.config-panel__table th:last-child,.config-panel__table td:last-child{width:1%;white-space:nowrap}.config-panel__key{font-family:monospace;font-size:.8125rem}.config-panel__value{font-family:monospace;font-size:.8125rem;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-panel__source{color:var(--color-text-muted);font-size:.75rem}.config-panel__row--override{background-color:var(--color-warning-bg, rgba(255, 193, 7, .1))}.config-panel__row--override .config-panel__source{color:var(--color-warning, #ffc107);font-weight:600}.config-panel__actions-cell{display:flex;gap:.25rem}.workers-panel{display:flex;flex-direction:column;gap:1.5rem;overflow:auto;min-height:0}.workers-panel__restart{display:flex;flex-direction:column;gap:1rem}.workers-panel__restart-row{display:flex;gap:1rem;align-items:flex-end}.workers-panel__restart-row .admin-field{flex:1}.workers-panel__restart-row .admin-button{flex-shrink:0;margin-bottom:0}.workers-panel__empty{color:var(--color-text-muted);text-align:center;padding:2rem}.workers-panel__table{width:100%;border-collapse:collapse}.workers-panel__table th,.workers-panel__table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--color-border)}.workers-panel__table th{font-weight:600;color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase}.workers-panel__table th:last-child,.workers-panel__table td:last-child{width:1%;white-space:nowrap}.workers-panel__pid{font-family:monospace;font-size:.875rem}.workers-panel__status{display:inline-block;padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.workers-panel__status--online{background-color:var(--color-success-bg, rgba(40, 167, 69, .1));color:var(--color-success, #28a745)}.workers-panel__status--offline{background-color:var(--color-error-bg, rgba(220, 53, 69, .1));color:var(--color-error, #dc3545)}.workers-panel__status--starting{background-color:var(--color-warning-bg, rgba(255, 193, 7, .1));color:var(--color-warning, #ffc107)}.workers-panel__status--error{background-color:var(--color-error-bg, rgba(220, 53, 69, .1));color:var(--color-error, #dc3545)}.workers-panel__row--offline,.workers-panel__row--error{opacity:.7}.broadcast-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-lg)}.broadcast-panel__form{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.broadcast-panel__form-row{display:flex;gap:var(--admin-spacing-md);align-items:flex-end}.broadcast-panel__form-row>*{flex:1}.broadcast-panel__message-input{min-height:80px;resize:vertical}.broadcast-panel__type-select{max-width:180px}.broadcast-panel__form-actions{display:flex;gap:var(--admin-spacing-sm);margin-top:var(--admin-spacing-sm)}.broadcast-panel__quick-actions{display:flex;flex-wrap:wrap;gap:var(--admin-spacing-sm)}.broadcast-panel__quick-actions button{font-size:.875rem}.broadcast-panel__direct-section{padding-top:var(--admin-spacing-md);border-top:1px solid var(--admin-border)}.broadcast-panel__direct-header{font-size:.9rem;font-weight:600;margin-bottom:var(--admin-spacing-sm);color:var(--admin-text-primary)}.broadcast-panel__history{padding-top:var(--admin-spacing-md);border-top:1px solid var(--admin-border)}.broadcast-panel__history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--admin-spacing-sm)}.broadcast-panel__history-title{font-size:.9rem;font-weight:600;color:var(--admin-text-primary)}.broadcast-panel__history-list{display:flex;flex-direction:column;gap:var(--admin-spacing-xs);max-height:200px;overflow-y:auto}.broadcast-panel__history-item{display:flex;flex-direction:column;gap:2px;padding:var(--admin-spacing-xs) var(--admin-spacing-sm);border-radius:var(--admin-radius-sm);background:var(--admin-bg-secondary)}.broadcast-panel__history-meta{display:flex;gap:var(--admin-spacing-md);font-size:.75rem;color:var(--admin-text-secondary)}.broadcast-panel__history-type{text-transform:uppercase;font-weight:600}.broadcast-panel__history-type--info{color:var(--admin-info)}.broadcast-panel__history-type--warning,.broadcast-panel__history-type--maintenance{color:var(--admin-warning)}.broadcast-panel__history-message{font-size:.875rem;color:var(--admin-text-primary);word-break:break-word}.broadcast-panel__history-empty{font-size:.875rem;color:var(--admin-text-secondary);font-style:italic}.broadcast-panel__preview{padding:var(--admin-spacing-sm);border-radius:var(--admin-radius-sm);font-size:.875rem}.broadcast-panel__preview--info{background:rgba(var(--admin-info-rgb, 59, 130, 246),.1);border-left:3px solid var(--admin-info)}.broadcast-panel__preview--warning{background:rgba(var(--admin-warning-rgb, 234, 179, 8),.1);border-left:3px solid var(--admin-warning)}.broadcast-panel__preview--maintenance{background:rgba(var(--admin-warning-rgb, 234, 179, 8),.15);border-left:3px solid var(--admin-warning)}.systems-section{display:flex;flex-direction:column;height:calc(100vh - 140px);min-height:500px}.systems-section__tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);padding:0 1rem;background:var(--color-background)}.systems-section__tab{padding:.75rem 1.25rem;border:none;background:transparent;color:var(--color-text-muted);font-size:.875rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.systems-section__tab:hover{color:var(--color-text)}.systems-section__tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.systems-section__content{flex:1;overflow:auto;padding:1rem;min-height:0}.admin-textarea{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background);color:var(--color-text-primary);font-size:13px;line-height:1.5;min-height:80px;transition:border-color .15s ease,box-shadow .15s ease}.admin-textarea--mono{font-family:var(--font-family-mono, monospace)}.admin-textarea:hover:not(:disabled){border-color:color-mix(in srgb,var(--color-border) 80%,var(--color-primary) 20%)}.admin-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.admin-textarea:disabled{opacity:.6;cursor:not-allowed;background:color-mix(in srgb,var(--color-background) 95%,var(--color-text-secondary) 5%)}.admin-textarea::placeholder{color:var(--color-text-secondary);opacity:.6}.generate-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;overflow:auto;min-height:0}.generate-panel>.admin-panel{flex:1 1 350px;min-width:300px;max-width:600px}.generate-panel__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.generate-panel__grid--3{grid-template-columns:repeat(3,1fr)}.generate-panel__actions{display:flex;gap:.5rem}@media(max-width:768px){.generate-panel{flex-direction:column}.generate-panel>.admin-panel{max-width:100%;min-width:0}.generate-panel__grid,.generate-panel__grid--3{grid-template-columns:1fr}}.room-tools-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;overflow:auto;min-height:0}.room-tools-panel>.admin-panel{flex:1 1 320px;min-width:320px;max-width:500px}.room-tools-panel__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}@media(max-width:768px){.room-tools-panel{flex-direction:column}.room-tools-panel>.admin-panel{max-width:100%;min-width:0}.room-tools-panel__grid{grid-template-columns:1fr}}.image-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;overflow:auto;min-height:0}.image-panel>.admin-panel{flex:1 1 400px;min-width:350px;max-width:600px}.image-panel__current{margin-bottom:1rem}.image-panel__current h4{margin:0 0 .5rem;font-size:.875rem;font-weight:600}.image-panel__preview{max-width:100%;max-height:400px;border-radius:8px;border:1px solid var(--color-border)}.image-panel__path{margin:.5rem 0 0;font-size:.75rem;color:var(--color-text-muted);font-family:monospace}.image-panel__no-image{color:var(--color-text-muted);font-style:italic;margin:.5rem 0}.image-panel__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.image-panel__actions{margin-top:1rem}.image-panel__result{margin-top:1rem;padding:1rem;background:var(--color-surface);border-radius:4px;font-family:monospace;font-size:.75rem;overflow-x:auto;white-space:pre-wrap}@media(max-width:768px){.image-panel__grid{grid-template-columns:1fr}}.admin-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.admin-empty__icon{font-size:48px;margin-bottom:16px;opacity:.6}.admin-empty__title{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--color-text-primary)}.admin-empty__message{margin:0 0 16px;font-size:13px;color:var(--color-text-secondary);max-width:300px}.admin-empty__action{margin-top:8px}.preview-panel{display:flex;flex-direction:column;gap:1.5rem;min-height:0;padding-bottom:4rem}.preview-panel__columns{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem}.preview-panel__column{flex:1 1 400px;min-width:350px;max-width:600px;display:flex;flex-direction:column;max-height:45vh}.preview-panel__column>.admin-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.preview-panel__json{margin:0;padding:1rem;background:var(--color-bg);border-radius:4px;font-family:monospace;font-size:.75rem;overflow-x:auto;white-space:pre-wrap;flex:1;overflow-y:auto;min-height:150px}.preview-panel__diff-section{margin-top:1rem}.preview-panel__diff-section h4{margin:0 0 .5rem;font-size:.875rem;font-weight:600}.preview-panel__diff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.preview-panel__diff-col{display:flex;flex-direction:column}.preview-panel__diff-label{font-size:.75rem;color:var(--color-text-muted);margin-bottom:.25rem;text-transform:uppercase;font-weight:600}.preview-panel__diff-content{margin:0;padding:.75rem;background:var(--color-bg);border-radius:4px;font-family:monospace;font-size:.75rem;white-space:pre-wrap;flex:1}.preview-panel__diff-keys{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.preview-panel__diff-key{padding:.25rem .5rem;background:var(--color-warning-bg, rgba(255, 193, 7, .1));color:var(--color-warning, #ffc107);border-radius:4px;font-family:monospace;font-size:.75rem}@media(max-width:1024px){.preview-panel__columns,.preview-panel__diff-grid{grid-template-columns:1fr}}.actions-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;overflow:auto;min-height:0}.actions-panel>.admin-panel{flex:1 1 350px;min-width:300px;max-width:500px}.actions-panel__info{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.actions-panel__info-row{display:flex;gap:.5rem}.actions-panel__label{color:var(--color-text-muted);font-size:.875rem}.actions-panel__value{font-family:monospace;font-size:.875rem}.actions-panel__status{padding:.125rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.actions-panel__status--pending{background:var(--color-warning-bg, rgba(255, 193, 7, .1));color:var(--color-warning, #ffc107)}.actions-panel__status--applied{background:var(--color-success-bg, rgba(40, 167, 69, .1));color:var(--color-success, #28a745)}.actions-panel__status--rejected{background:var(--color-error-bg, rgba(220, 53, 69, .1));color:var(--color-error, #dc3545)}.actions-panel__errors{margin:0 0 1rem;padding:0;list-style:none}.actions-panel__error{padding:.5rem;margin-bottom:.25rem;background:var(--color-error-bg, rgba(220, 53, 69, .1));color:var(--color-error, #dc3545);border-radius:4px;font-size:.875rem}.actions-panel__valid{color:var(--color-success, #28a745);margin:0}.actions-panel__buttons{display:flex;gap:.5rem;margin-top:1rem}.actions-panel__buttons--seed{margin-bottom:.75rem}.actions-panel__seed-controls{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.actions-panel__seed-note,.actions-panel__seed-hint{margin:0;color:var(--color-text-muted);font-size:.875rem}.actions-panel__seed-hint{margin-top:.75rem}.actions-panel__result,.actions-panel__provenance{margin-top:1rem;padding:1rem;background:var(--color-bg);border-radius:4px;font-family:monospace;font-size:.75rem;overflow-x:auto;white-space:pre-wrap}.ai-logs{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.ai-logs__toolbar{display:flex;gap:var(--admin-spacing-sm)}.ai-logs__filters{display:flex;flex-wrap:wrap;gap:var(--admin-spacing-md);padding:var(--admin-spacing-md);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-md)}.ai-logs__filters>.admin-field{flex:0 0 160px}.ai-logs__filter-toggle{display:flex;align-items:flex-end;gap:var(--admin-spacing-sm);padding-bottom:4px}.ai-logs__status{display:flex;align-items:center;gap:var(--admin-spacing-md);font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary)}.ai-logs__status-auto{color:var(--admin-success)}.ai-logs__status-loading{color:var(--admin-warning)}.ai-logs__error{padding:var(--admin-spacing-sm) var(--admin-spacing-md);background:var(--admin-error-subtle);color:var(--admin-error);border-radius:var(--admin-radius-md);font-size:var(--admin-font-size-sm)}.ai-logs__table-wrap{overflow:auto;max-height:520px;border:1px solid var(--admin-border);border-radius:var(--admin-radius-md);background:var(--admin-surface)}.ai-logs__table{width:100%;border-collapse:collapse;font-size:var(--admin-font-size-sm);table-layout:fixed}.ai-logs__table th,.ai-logs__table td{padding:8px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--admin-border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-logs__table th{position:sticky;top:0;background:var(--admin-surface-subtle);font-weight:600;color:var(--admin-text-secondary);z-index:1}.ai-logs__table tbody tr:hover{background:var(--admin-surface-highlight)}.ai-logs__cell-time{font-family:var(--font-family-mono, monospace);font-size:12px;color:var(--admin-text-secondary)}.ai-logs__cell-npc{font-weight:500}.ai-logs__cell-action{max-width:200px}.ai-logs__badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase}.ai-logs__badge--ok{background:var(--admin-success-subtle);color:var(--admin-success)}.ai-logs__badge--err{background:var(--admin-error-subtle);color:var(--admin-error)}.ai-logs__modal .admin-modal__body{padding:12px}.ai-logs__modal .admin-json-editor__container{min-height:60vh}@media(max-width:800px){.ai-logs__filters>.admin-field{flex:1 1 140px}.ai-logs__table-wrap{max-height:400px}}.ai-section{display:flex;flex-direction:column;height:100%}.ai-section__tabs{display:flex;gap:.25rem;padding:0 1rem;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.ai-section__tab{padding:.75rem 1rem;border:none;background:none;color:var(--color-text-muted);font-size:.875rem;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .2s,border-color .2s;display:flex;align-items:center;gap:.5rem}.ai-section__tab:hover:not(:disabled){color:var(--color-text)}.ai-section__tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.ai-section__tab:disabled{opacity:.5;cursor:not-allowed}.ai-section__tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;border-radius:10px;background:var(--color-primary);color:#fff;font-size:.75rem;font-weight:600}.ai-section__content{flex:1;overflow:auto;padding:1rem;min-height:0}.dashboard-section{padding:1rem}.dashboard-section__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.dashboard-section__stats,.dashboard-section__activity,.dashboard-section__health,.dashboard-section__actions{min-height:200px}.online-players-panel{display:flex;flex-direction:column;gap:var(--spacing-md)}.online-players-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0}.online-players-panel__count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.online-players-panel__refresh{display:flex;align-items:center;gap:var(--spacing-xs)}.online-players-panel__auto-refresh{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted)}.online-players-panel__auto-refresh input{cursor:pointer}.online-players-panel__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.online-players-panel__table th,.online-players-panel__table td{padding:var(--spacing-xs) var(--spacing-sm);text-align:left;border-bottom:1px solid var(--color-border)}.online-players-panel__table th{font-weight:var(--font-weight-medium);color:var(--color-text-muted);background:var(--color-surface-elevated)}.online-players-panel__table tbody tr:hover{background:var(--color-surface-hover)}.online-players-panel__table tbody tr.is-selected{background:var(--color-primary-transparent)}.online-players-panel__player-row{cursor:pointer}.online-players-panel__username{font-weight:var(--font-weight-medium)}.online-players-panel__saga{color:var(--color-warning);font-style:italic}.online-players-panel__combat{color:var(--color-danger);font-weight:var(--font-weight-medium)}.online-players-panel__empty{text-align:center;padding:var(--spacing-lg);color:var(--color-text-muted)}.online-players-panel__location-groups{display:flex;flex-direction:column;gap:var(--spacing-sm)}.online-players-panel__location-group{border:1px solid var(--color-border);border-radius:var(--border-radius-sm);overflow:hidden}.online-players-panel__location-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface-elevated);cursor:pointer}.online-players-panel__location-header:hover{background:var(--color-surface-hover)}.online-players-panel__location-name{font-weight:var(--font-weight-medium)}.online-players-panel__location-count{color:var(--color-text-muted);font-size:var(--font-size-sm)}.online-players-panel__view-toggle{display:flex;gap:var(--spacing-xs)}.online-players-panel__view-btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-surface);cursor:pointer}.online-players-panel__view-btn:hover{background:var(--color-surface-hover)}.online-players-panel__view-btn.is-active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.player-details-panel{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.player-details-panel__header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--admin-gap-sm);border-bottom:1px solid var(--admin-border)}.player-details-panel__username{font-size:1.125rem;font-weight:600;color:var(--admin-text-primary)}.player-details-panel__status{display:flex;gap:var(--admin-gap-sm);align-items:center}.player-details-panel__badge{padding:.25rem .5rem;border-radius:var(--admin-radius);font-size:.75rem;font-weight:500}.player-details-panel__badge--combat{background:var(--admin-error-bg);color:var(--admin-error)}.player-details-panel__badge--saga{background:var(--admin-warning-bg);color:var(--admin-warning)}.player-details-panel__badge--idle{background:var(--admin-success-bg);color:var(--admin-success)}.player-details-panel__empty{color:var(--admin-text-secondary);text-align:center;padding:var(--admin-gap-lg)}.player-details-panel__sections{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.player-details-panel__section{border:1px solid var(--admin-border);border-radius:var(--admin-radius);overflow:hidden}.player-details-panel__section-header{display:flex;justify-content:space-between;align-items:center;padding:var(--admin-gap-sm) var(--admin-gap-md);background:var(--admin-bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.player-details-panel__section-header:hover{background:var(--admin-bg-hover)}.player-details-panel__section-title{font-weight:500;color:var(--admin-text-primary)}.player-details-panel__section-toggle{color:var(--admin-text-secondary);font-size:.875rem}.player-details-panel__section-content{padding:var(--admin-gap-md);border-top:1px solid var(--admin-border)}.player-details-panel__info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--admin-gap-sm)}.player-details-panel__info-item{display:flex;flex-direction:column;gap:.125rem}.player-details-panel__info-label{font-size:.75rem;color:var(--admin-text-secondary);text-transform:uppercase}.player-details-panel__info-value{font-size:.875rem;color:var(--admin-text-primary)}.player-details-panel__inventory-list{display:flex;flex-direction:column;gap:.25rem}.player-details-panel__inventory-item{display:flex;justify-content:space-between;align-items:center;padding:.25rem .5rem;background:var(--admin-bg-secondary);border-radius:var(--admin-radius);font-size:.875rem}.player-details-panel__inventory-name{color:var(--admin-text-primary)}.player-details-panel__inventory-qty{color:var(--admin-text-secondary)}.player-details-panel__inventory-empty{color:var(--admin-text-secondary);font-style:italic;padding:var(--admin-gap-sm)}.player-details-panel__effects-list{display:flex;flex-wrap:wrap;gap:.5rem}.player-details-panel__effect-tag{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:var(--admin-bg-secondary);border:1px solid var(--admin-border);border-radius:var(--admin-radius);font-size:.75rem}.player-details-panel__effect-name{color:var(--admin-text-primary)}.player-details-panel__effect-duration{color:var(--admin-text-secondary)}.player-details-panel__needs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--admin-gap-sm)}.player-details-panel__need-item{display:flex;flex-direction:column;gap:.25rem}.player-details-panel__need-label{font-size:.75rem;color:var(--admin-text-secondary)}.player-details-panel__need-bar{height:6px;background:var(--admin-bg-secondary);border-radius:3px;overflow:hidden}.player-details-panel__need-fill{height:100%;transition:width .3s ease}.player-details-panel__need-fill--low{background:var(--admin-error)}.player-details-panel__need-fill--medium{background:var(--admin-warning)}.player-details-panel__need-fill--high{background:var(--admin-success)}.player-details-panel__currency{display:flex;gap:var(--admin-gap-md)}.player-details-panel__currency-item{display:flex;align-items:center;gap:.25rem;font-size:.875rem}.player-details-panel__currency-label{color:var(--admin-text-secondary)}.player-details-panel__currency-value{font-weight:500;color:var(--admin-text-primary)}.player-actions-panel{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.player-actions-panel__empty{color:var(--admin-text-secondary);text-align:center;padding:var(--admin-gap-lg)}.player-actions-panel__target{display:flex;align-items:center;gap:var(--admin-gap-sm);padding-bottom:var(--admin-gap-sm);border-bottom:1px solid var(--admin-border)}.player-actions-panel__target-label{color:var(--admin-text-secondary);font-size:.875rem}.player-actions-panel__target-name{font-weight:500;color:var(--admin-text-primary)}.player-actions-panel__tabs{display:flex;border-bottom:1px solid var(--admin-border);gap:0}.player-actions-panel__tab{padding:var(--admin-gap-sm) var(--admin-gap-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--admin-text-secondary);cursor:pointer;font-size:.875rem;transition:color .2s,border-color .2s}.player-actions-panel__tab:hover{color:var(--admin-text-primary)}.player-actions-panel__tab.is-active{color:var(--admin-accent);border-bottom-color:var(--admin-accent)}.player-actions-panel__form{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.player-actions-panel__form-row{display:flex;gap:var(--admin-gap-sm);align-items:flex-end}.player-actions-panel__form-row--vertical{flex-direction:column;align-items:stretch}.player-actions-panel__form-group{display:flex;flex-direction:column;gap:.25rem;flex:1}.player-actions-panel__form-label{font-size:.75rem;color:var(--admin-text-secondary);text-transform:uppercase}.player-actions-panel__form-input{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem}.player-actions-panel__form-input:focus{outline:none;border-color:var(--admin-accent)}.player-actions-panel__form-input--small{width:80px}.player-actions-panel__form-select{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem}.player-actions-panel__form-actions{display:flex;gap:var(--admin-gap-sm);margin-top:var(--admin-gap-sm)}.player-actions-panel__kick{display:flex;flex-direction:column;gap:var(--admin-gap-sm)}.player-actions-panel__kick-warning{padding:var(--admin-gap-sm);background:var(--admin-warning-bg);color:var(--admin-warning);border-radius:var(--admin-radius);font-size:.875rem}.player-actions-panel__kick-confirm{display:flex;gap:var(--admin-gap-sm);align-items:center}.player-actions-panel__kick-confirm label{font-size:.875rem;color:var(--admin-text-secondary)}.player-actions-panel__history{margin-top:var(--admin-gap-md);padding-top:var(--admin-gap-md);border-top:1px solid var(--admin-border)}.player-actions-panel__history-title{font-size:.75rem;color:var(--admin-text-secondary);text-transform:uppercase;margin-bottom:var(--admin-gap-sm)}.player-actions-panel__history-list{display:flex;flex-direction:column;gap:.25rem;max-height:150px;overflow-y:auto}.player-actions-panel__history-item{display:flex;gap:var(--admin-gap-sm);font-size:.75rem;padding:.25rem .5rem;background:var(--admin-bg-secondary);border-radius:var(--admin-radius)}.player-actions-panel__history-time{color:var(--admin-text-secondary)}.player-actions-panel__history-action{color:var(--admin-text-primary)}.player-actions-panel__history-result--success{color:var(--admin-success)}.player-actions-panel__history-result--error{color:var(--admin-error)}.accounts-list-panel{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.accounts-list-panel__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--admin-gap-sm)}.accounts-list-panel__count{font-size:.875rem;color:var(--admin-text-secondary)}.accounts-list-panel__controls{display:flex;gap:var(--admin-gap-sm);align-items:center;flex-wrap:wrap}.accounts-list-panel__search{display:flex;gap:var(--admin-gap-sm);align-items:center}.accounts-list-panel__search-input{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem;min-width:200px}.accounts-list-panel__search-input:focus{outline:none;border-color:var(--admin-accent)}.accounts-list-panel__filters{display:flex;gap:var(--admin-gap-sm);align-items:center}.accounts-list-panel__filter-select{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem}.accounts-list-panel__table{width:100%;border-collapse:collapse;font-size:.875rem}.accounts-list-panel__table th,.accounts-list-panel__table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--admin-border)}.accounts-list-panel__table th{background:var(--admin-bg-secondary);font-weight:500;color:var(--admin-text-secondary);text-transform:uppercase;font-size:.75rem}.accounts-list-panel__table tbody tr{cursor:pointer;transition:background .2s}.accounts-list-panel__table tbody tr:hover{background:var(--admin-bg-hover)}.accounts-list-panel__table tbody tr.is-selected{background:var(--admin-accent-bg)}.accounts-list-panel__username{font-weight:500;color:var(--admin-text-primary)}.accounts-list-panel__email{color:var(--admin-text-secondary);font-size:.75rem}.accounts-list-panel__badge{display:inline-block;padding:.125rem .375rem;border-radius:var(--admin-radius);font-size:.625rem;font-weight:500;text-transform:uppercase}.accounts-list-panel__badge--admin{background:var(--admin-warning-bg);color:var(--admin-warning)}.accounts-list-panel__badge--user{background:var(--admin-bg-secondary);color:var(--admin-text-secondary)}.accounts-list-panel__badge--banned{background:var(--admin-error-bg);color:var(--admin-error)}.accounts-list-panel__badge--unverified{background:var(--admin-warning-bg);color:var(--admin-warning)}.accounts-list-panel__empty{text-align:center;padding:var(--admin-gap-lg);color:var(--admin-text-secondary)}.accounts-list-panel__pagination{display:flex;justify-content:space-between;align-items:center;padding-top:var(--admin-gap-sm);border-top:1px solid var(--admin-border)}.accounts-list-panel__page-info{font-size:.75rem;color:var(--admin-text-secondary)}.accounts-list-panel__page-controls{display:flex;gap:var(--admin-gap-sm)}.account-details-panel{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.account-details-panel__empty{color:var(--admin-text-secondary);text-align:center;padding:var(--admin-gap-lg)}.account-details-panel__header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:var(--admin-gap-sm);border-bottom:1px solid var(--admin-border)}.account-details-panel__info{display:flex;flex-direction:column;gap:.25rem}.account-details-panel__username{font-size:1.125rem;font-weight:600;color:var(--admin-text-primary)}.account-details-panel__email{font-size:.875rem;color:var(--admin-text-secondary)}.account-details-panel__badges{display:flex;gap:var(--admin-gap-sm);flex-wrap:wrap}.account-details-panel__badge{padding:.25rem .5rem;border-radius:var(--admin-radius);font-size:.75rem;font-weight:500}.account-details-panel__badge--admin{background:var(--admin-warning-bg);color:var(--admin-warning)}.account-details-panel__badge--user{background:var(--admin-bg-secondary);color:var(--admin-text-secondary)}.account-details-panel__badge--banned{background:var(--admin-error-bg);color:var(--admin-error)}.account-details-panel__badge--verified{background:var(--admin-success-bg);color:var(--admin-success)}.account-details-panel__badge--unverified{background:var(--admin-warning-bg);color:var(--admin-warning)}.account-details-panel__sections{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.account-details-panel__section{border:1px solid var(--admin-border);border-radius:var(--admin-radius);overflow:hidden}.account-details-panel__section-header{padding:var(--admin-gap-sm) var(--admin-gap-md);background:var(--admin-bg-secondary);font-weight:500;color:var(--admin-text-primary);font-size:.875rem}.account-details-panel__section-content{padding:var(--admin-gap-md)}.account-details-panel__info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--admin-gap-sm)}.account-details-panel__info-item{display:flex;flex-direction:column;gap:.125rem}.account-details-panel__info-label{font-size:.75rem;color:var(--admin-text-secondary);text-transform:uppercase}.account-details-panel__info-value{font-size:.875rem;color:var(--admin-text-primary)}.account-details-panel__ban-info{padding:var(--admin-gap-md);background:var(--admin-error-bg);border-radius:var(--admin-radius);display:flex;flex-direction:column;gap:var(--admin-gap-sm)}.account-details-panel__ban-reason{color:var(--admin-error);font-weight:500}.account-details-panel__ban-details{font-size:.75rem;color:var(--admin-text-secondary)}.account-details-panel__sessions-list{display:flex;flex-direction:column;gap:.5rem}.account-details-panel__session{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:var(--admin-bg-secondary);border-radius:var(--admin-radius);font-size:.875rem}.account-details-panel__session-creature{color:var(--admin-text-primary)}.account-details-panel__session-location{color:var(--admin-text-secondary);font-size:.75rem}.account-details-panel__no-sessions{color:var(--admin-text-secondary);font-style:italic;font-size:.875rem}.account-actions-panel{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.account-actions-panel__empty{color:var(--admin-text-secondary);text-align:center;padding:var(--admin-gap-lg)}.account-actions-panel__target{display:flex;align-items:center;gap:var(--admin-gap-sm);padding-bottom:var(--admin-gap-sm);border-bottom:1px solid var(--admin-border)}.account-actions-panel__target-label{color:var(--admin-text-secondary);font-size:.875rem}.account-actions-panel__target-name{font-weight:500;color:var(--admin-text-primary)}.account-actions-panel__actions{display:flex;flex-direction:column;gap:var(--admin-gap-md)}.account-actions-panel__action{border:1px solid var(--admin-border);border-radius:var(--admin-radius);overflow:hidden}.account-actions-panel__action-header{padding:var(--admin-gap-sm) var(--admin-gap-md);background:var(--admin-bg-secondary);font-weight:500;color:var(--admin-text-primary);font-size:.875rem}.account-actions-panel__action-content{padding:var(--admin-gap-md);display:flex;flex-direction:column;gap:var(--admin-gap-sm)}.account-actions-panel__form{display:flex;flex-direction:column;gap:var(--admin-gap-sm)}.account-actions-panel__form-row{display:flex;gap:var(--admin-gap-sm);align-items:flex-end}.account-actions-panel__form-group{display:flex;flex-direction:column;gap:.25rem;flex:1}.account-actions-panel__form-label{font-size:.75rem;color:var(--admin-text-secondary);text-transform:uppercase}.account-actions-panel__form-input{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem}.account-actions-panel__form-input:focus{outline:none;border-color:var(--admin-accent)}.account-actions-panel__form-select{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem}.account-actions-panel__form-textarea{padding:.5rem;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-bg-primary);color:var(--admin-text-primary);font-size:.875rem;resize:vertical;min-height:60px}.account-actions-panel__form-textarea:focus{outline:none;border-color:var(--admin-accent)}.account-actions-panel__form-actions{display:flex;gap:var(--admin-gap-sm);margin-top:var(--admin-gap-sm)}.account-actions-panel__warning{padding:var(--admin-gap-sm);background:var(--admin-warning-bg);color:var(--admin-warning);border-radius:var(--admin-radius);font-size:.875rem}.account-actions-panel__danger{padding:var(--admin-gap-sm);background:var(--admin-error-bg);color:var(--admin-error);border-radius:var(--admin-radius);font-size:.875rem}.account-actions-panel__current{font-size:.875rem;color:var(--admin-text-secondary);padding:var(--admin-gap-sm);background:var(--admin-bg-secondary);border-radius:var(--admin-radius)}.account-actions-panel__current strong{color:var(--admin-text-primary)}.account-actions-panel__confirm{display:flex;gap:var(--admin-gap-sm);align-items:center}.account-actions-panel__confirm label{font-size:.875rem;color:var(--admin-text-secondary)}.players-section{padding:1rem;display:flex;flex-direction:column;gap:1rem}.players-section__tabs{display:flex;gap:0;border-bottom:1px solid var(--admin-border)}.players-section__tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--admin-text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;transition:color .2s,border-color .2s}.players-section__tab:hover{color:var(--admin-text-primary)}.players-section__tab.is-active{color:var(--admin-accent);border-bottom-color:var(--admin-accent)}.players-section__layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem;min-height:calc(100vh - 250px)}.players-section__list{display:flex;flex-direction:column}.players-section__details{display:flex;flex-direction:column;gap:1rem}@media(max-width:1024px){.players-section__layout{grid-template-columns:1fr}}.server-logs-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.server-logs-panel__actions{display:flex;gap:var(--admin-spacing-sm)}.server-logs-panel__filters{display:flex;flex-wrap:wrap;gap:var(--admin-spacing-md);align-items:flex-end;padding:var(--admin-spacing-md);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-md)}.server-logs-panel__filter-group{display:flex;flex-direction:column;gap:var(--admin-spacing-xs)}.server-logs-panel__filter-label{font-size:var(--admin-font-size-sm);font-weight:500;color:var(--admin-text-secondary)}.server-logs-panel__filter-select,.server-logs-panel__filter-input{padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);min-width:140px}.server-logs-panel__filter-select:focus,.server-logs-panel__filter-input:focus{outline:none;border-color:var(--admin-primary);box-shadow:0 0 0 2px var(--admin-primary-alpha)}.server-logs-panel__status{display:flex;gap:var(--admin-spacing-md);align-items:center;padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary);border-bottom:1px solid var(--admin-border)}.server-logs-panel__status-count{font-weight:500}.server-logs-panel__status-auto{color:var(--admin-success)}.server-logs-panel__status-loading{color:var(--admin-warning)}.server-logs-panel__error{padding:var(--admin-spacing-md);background:var(--admin-error-subtle);color:var(--admin-error);border-radius:var(--admin-radius-md);font-size:var(--admin-font-size-sm)}.server-logs-panel__logs{display:flex;flex-direction:column;gap:1px;background:var(--admin-border);border-radius:var(--admin-radius-md);overflow:hidden;max-height:600px;overflow-y:auto}.server-logs-panel__empty{padding:var(--admin-spacing-xl);text-align:center;color:var(--admin-text-secondary);background:var(--admin-surface)}.server-logs-panel__entry{display:flex;flex-direction:column;gap:var(--admin-spacing-xs);padding:var(--admin-spacing-sm) var(--admin-spacing-md);background:var(--admin-surface);font-family:var(--admin-font-mono);font-size:var(--admin-font-size-sm)}.server-logs-panel__entry--debug{opacity:.7}.server-logs-panel__entry--warn{background:var(--admin-warning-subtle)}.server-logs-panel__entry--error{background:var(--admin-error-subtle)}.server-logs-panel__entry--fatal{background:var(--admin-error-subtle);border-left:3px solid var(--admin-error)}.server-logs-panel__entry-header{display:flex;gap:var(--admin-spacing-md);align-items:center}.server-logs-panel__entry-timestamp{color:var(--admin-text-tertiary);font-size:var(--admin-font-size-xs)}.server-logs-panel__entry-level{padding:1px 6px;border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);font-weight:600;text-transform:uppercase}.server-logs-panel__entry-level--debug{background:var(--admin-surface-subtle);color:var(--admin-text-secondary)}.server-logs-panel__entry-level--info{background:var(--admin-info-subtle);color:var(--admin-info)}.server-logs-panel__entry-level--warn{background:var(--admin-warning-subtle);color:var(--admin-warning)}.server-logs-panel__entry-level--error{background:var(--admin-error-subtle);color:var(--admin-error)}.server-logs-panel__entry-level--fatal{background:var(--admin-error);color:#fff}.server-logs-panel__entry-worker{padding:1px 6px;border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);background:var(--admin-surface-subtle);color:var(--admin-text-secondary)}.server-logs-panel__entry-message{color:var(--admin-text-primary);word-break:break-word;white-space:pre-wrap}.server-logs-panel__entry-context{margin-top:var(--admin-spacing-xs)}.server-logs-panel__entry-context summary{cursor:pointer;color:var(--admin-text-secondary);font-size:var(--admin-font-size-xs)}.server-logs-panel__entry-context summary:hover{color:var(--admin-text-primary)}.server-logs-panel__entry-context pre{margin:var(--admin-spacing-xs) 0 0 0;padding:var(--admin-spacing-sm);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);overflow-x:auto;color:var(--admin-text-secondary)}.server-logs-panel__load-more{display:flex;justify-content:center;padding:var(--admin-spacing-md)}.game-events-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.game-events-panel__actions{display:flex;gap:var(--admin-spacing-sm)}.game-events-panel__filters{display:flex;flex-wrap:wrap;gap:var(--admin-spacing-md);align-items:flex-end;padding:var(--admin-spacing-md);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-md)}.game-events-panel__filter-group{display:flex;flex-direction:column;gap:var(--admin-spacing-xs)}.game-events-panel__filter-label{font-size:var(--admin-font-size-sm);font-weight:500;color:var(--admin-text-secondary)}.game-events-panel__filter-select,.game-events-panel__filter-input{padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);min-width:180px}.game-events-panel__filter-select:focus,.game-events-panel__filter-input:focus{outline:none;border-color:var(--admin-primary);box-shadow:0 0 0 2px var(--admin-primary-alpha)}.game-events-panel__status{display:flex;gap:var(--admin-spacing-md);align-items:center;padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary);border-bottom:1px solid var(--admin-border)}.game-events-panel__status-count{font-weight:500}.game-events-panel__status-auto{color:var(--admin-success)}.game-events-panel__status-loading{color:var(--admin-warning)}.game-events-panel__error{padding:var(--admin-spacing-md);background:var(--admin-error-subtle);color:var(--admin-error);border-radius:var(--admin-radius-md);font-size:var(--admin-font-size-sm)}.game-events-panel__events{display:flex;flex-direction:column;gap:1px;background:var(--admin-border);border-radius:var(--admin-radius-md);overflow:hidden;max-height:600px;overflow-y:auto}.game-events-panel__empty{padding:var(--admin-spacing-xl);text-align:center;color:var(--admin-text-secondary);background:var(--admin-surface)}.game-events-panel__entry{display:flex;flex-direction:column;gap:var(--admin-spacing-xs);padding:var(--admin-spacing-sm) var(--admin-spacing-md);background:var(--admin-surface);font-family:var(--admin-font-mono);font-size:var(--admin-font-size-sm)}.game-events-panel__entry-header{display:flex;gap:var(--admin-spacing-md);align-items:center}.game-events-panel__entry-timestamp{color:var(--admin-text-tertiary);font-size:var(--admin-font-size-xs)}.game-events-panel__event-badge{padding:2px 8px;border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);font-weight:600}.game-events-panel__event-badge--default{background:var(--admin-surface-subtle);color:var(--admin-text-secondary)}.game-events-panel__event-badge--creature{background:var(--admin-info-subtle);color:var(--admin-info)}.game-events-panel__event-badge--door{background:var(--admin-warning-subtle);color:var(--admin-warning)}.game-events-panel__event-badge--combat{background:var(--admin-error-subtle);color:var(--admin-error)}.game-events-panel__event-badge--snoanta{background:var(--admin-success-subtle);color:var(--admin-success)}.game-events-panel__entry-payload{margin-top:var(--admin-spacing-xs)}.game-events-panel__entry-payload summary{cursor:pointer;color:var(--admin-text-secondary);font-size:var(--admin-font-size-xs)}.game-events-panel__entry-payload summary:hover{color:var(--admin-text-primary)}.game-events-panel__entry-payload pre{margin:var(--admin-spacing-xs) 0 0 0;padding:var(--admin-spacing-sm);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);overflow-x:auto;color:var(--admin-text-secondary)}.game-events-panel__load-more{display:flex;justify-content:center;padding:var(--admin-spacing-md)}.audit-log-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.audit-log-panel__actions{display:flex;gap:var(--admin-spacing-sm)}.audit-log-panel__filters{display:flex;flex-wrap:wrap;gap:var(--admin-spacing-md);align-items:flex-end;padding:var(--admin-spacing-md);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-md)}.audit-log-panel__filter-group{display:flex;flex-direction:column;gap:var(--admin-spacing-xs)}.audit-log-panel__filter-label{font-size:var(--admin-font-size-sm);font-weight:500;color:var(--admin-text-secondary)}.audit-log-panel__filter-select,.audit-log-panel__filter-input{padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);min-width:180px}.audit-log-panel__filter-select:focus,.audit-log-panel__filter-input:focus{outline:none;border-color:var(--admin-primary);box-shadow:0 0 0 2px var(--admin-primary-alpha)}.audit-log-panel__status{display:flex;gap:var(--admin-spacing-md);align-items:center;padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary);border-bottom:1px solid var(--admin-border)}.audit-log-panel__status-count{font-weight:500}.audit-log-panel__status-auto{color:var(--admin-success)}.audit-log-panel__status-loading{color:var(--admin-warning)}.audit-log-panel__error{padding:var(--admin-spacing-md);background:var(--admin-error-subtle);color:var(--admin-error);border-radius:var(--admin-radius-md);font-size:var(--admin-font-size-sm)}.audit-log-panel__entries{display:flex;flex-direction:column;gap:1px;background:var(--admin-border);border-radius:var(--admin-radius-md);overflow:hidden;max-height:600px;overflow-y:auto}.audit-log-panel__empty{padding:var(--admin-spacing-xl);text-align:center;color:var(--admin-text-secondary);background:var(--admin-surface)}.audit-log-panel__entry{display:flex;flex-direction:column;gap:var(--admin-spacing-xs);padding:var(--admin-spacing-md);background:var(--admin-surface);font-size:var(--admin-font-size-sm)}.audit-log-panel__entry-header{display:flex;gap:var(--admin-spacing-md);align-items:center;flex-wrap:wrap}.audit-log-panel__entry-timestamp{color:var(--admin-text-tertiary);font-size:var(--admin-font-size-xs);font-family:var(--admin-font-mono)}.audit-log-panel__action-badge{padding:2px 8px;border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);font-weight:600;text-transform:capitalize}.audit-log-panel__action-badge--default{background:var(--admin-surface-subtle);color:var(--admin-text-secondary)}.audit-log-panel__action-badge--info{background:var(--admin-info-subtle);color:var(--admin-info)}.audit-log-panel__action-badge--success{background:var(--admin-success-subtle);color:var(--admin-success)}.audit-log-panel__action-badge--warning{background:var(--admin-warning-subtle);color:var(--admin-warning)}.audit-log-panel__action-badge--danger{background:var(--admin-error-subtle);color:var(--admin-error)}.audit-log-panel__entry-admin{color:var(--admin-text-secondary);font-size:var(--admin-font-size-xs)}.audit-log-panel__entry-summary{color:var(--admin-text-primary);font-weight:500}.audit-log-panel__entry-target{color:var(--admin-text-secondary);font-size:var(--admin-font-size-xs);font-family:var(--admin-font-mono)}.audit-log-panel__entry-payload{margin-top:var(--admin-spacing-xs)}.audit-log-panel__entry-payload summary{cursor:pointer;color:var(--admin-text-secondary);font-size:var(--admin-font-size-xs)}.audit-log-panel__entry-payload summary:hover{color:var(--admin-text-primary)}.audit-log-panel__entry-payload pre{margin:var(--admin-spacing-xs) 0 0 0;padding:var(--admin-spacing-sm);background:var(--admin-surface-subtle);border-radius:var(--admin-radius-sm);font-size:var(--admin-font-size-xs);overflow-x:auto;color:var(--admin-text-secondary);font-family:var(--admin-font-mono)}.audit-log-panel__load-more{display:flex;justify-content:center;padding:var(--admin-spacing-md)}.logs-section{display:flex;flex-direction:column;gap:var(--admin-spacing-md);padding:var(--admin-spacing-lg)}.logs-section__tabs{display:flex;gap:var(--admin-spacing-xs);border-bottom:1px solid var(--admin-border);padding-bottom:var(--admin-spacing-xs)}.logs-section__tab{padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);font-weight:500;color:var(--admin-text-secondary);background:transparent;border:none;border-radius:var(--admin-radius-sm) var(--admin-radius-sm) 0 0;cursor:pointer;transition:all .15s ease}.logs-section__tab:hover{color:var(--admin-text-primary);background:var(--admin-surface-subtle)}.logs-section__tab--active{color:var(--admin-primary);background:var(--admin-surface);border-bottom:2px solid var(--admin-primary);margin-bottom:-1px}.logs-section__content{flex:1;min-height:0}.logs-section__panel{min-height:400px}.changes-section{padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.changes-section__export-panel,.changes-section__apply-panel{min-height:auto}.changes-section__description{margin-bottom:1rem;color:var(--admin-text-secondary, #888)}.changes-section__description p{margin:0;line-height:1.5}.changes-section__description code{background:var(--admin-bg-secondary, #2a2a2a);padding:.125rem .375rem;border-radius:3px;font-family:monospace;font-size:.875em}.changes-section__error{background:var(--admin-error-bg, rgba(220, 53, 69, .1));color:var(--admin-error, #dc3545);padding:.75rem;border-radius:4px;margin-bottom:1rem}.changes-section__loading{color:var(--admin-text-secondary, #888);padding:1rem 0}.changes-section__collections{margin-bottom:1.5rem}.changes-section__collections-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-weight:500}.changes-section__collections-actions{display:flex;gap:1rem}.changes-section__link-btn{background:none;border:none;color:var(--admin-primary, #0d6efd);cursor:pointer;font-size:.875rem;padding:0}.changes-section__link-btn:hover{text-decoration:underline}.changes-section__collections-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.changes-section__collection-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;background:var(--admin-bg-secondary, #2a2a2a);border-radius:4px;cursor:pointer;transition:background .15s}.changes-section__collection-item:hover{background:var(--admin-bg-hover, #333)}.changes-section__collection-item input{margin:0}.changes-section__export-actions{display:flex;gap:.75rem}.changes-section__last-export{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--admin-border, #333)}.changes-section__last-export h4{margin:0 0 .75rem;font-size:.875rem;color:var(--admin-text-secondary, #888)}.changes-section__last-export dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:0;font-size:.875rem}.changes-section__last-export dt{color:var(--admin-text-secondary, #888)}.changes-section__last-export dd{margin:0}.changes-section__instructions{font-size:.9375rem;line-height:1.6}.changes-section__instructions h4{margin:0 0 .75rem;font-size:1rem}.changes-section__instructions ol{margin:0 0 1.5rem;padding-left:1.25rem}.changes-section__instructions li{margin-bottom:.75rem}.changes-section__instructions pre{background:var(--admin-bg-secondary, #2a2a2a);padding:.5rem .75rem;border-radius:4px;margin:.5rem 0 0;overflow-x:auto}.changes-section__instructions code{font-family:monospace;font-size:.875em}.changes-section__options-table{width:100%;border-collapse:collapse;font-size:.875rem}.changes-section__options-table th,.changes-section__options-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--admin-border, #333)}.changes-section__options-table th{background:var(--admin-bg-secondary, #2a2a2a);font-weight:500}.changes-section__options-table code{background:var(--admin-bg-tertiary, #333);padding:.125rem .375rem;border-radius:3px;font-family:monospace}.changes-section__local-apply{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--admin-border, #333);display:flex;flex-direction:column;gap:.75rem}.changes-section__local-apply p{margin:0;color:var(--admin-text-secondary, #888)}.changes-section__local-apply code{background:var(--admin-bg-secondary, #2a2a2a);padding:.125rem .375rem;border-radius:3px;font-family:monospace;font-size:.875em}.changes-section__local-controls{display:flex;flex-direction:column;gap:.75rem}.qa-section{display:flex;flex-direction:column;gap:var(--admin-spacing-md);padding:var(--admin-spacing-lg);height:100%}.qa-section__tabs{display:flex;gap:var(--admin-spacing-xs);border-bottom:1px solid var(--admin-border);padding-bottom:var(--admin-spacing-xs)}.qa-section__tab{padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);font-weight:500;color:var(--admin-text-secondary);background:transparent;border:none;border-radius:var(--admin-radius-sm) var(--admin-radius-sm) 0 0;cursor:pointer;transition:all .15s ease}.qa-section__tab:hover{color:var(--admin-text-primary);background:var(--admin-surface-subtle)}.qa-section__tab--active{color:var(--admin-primary);background:var(--admin-surface);border-bottom:2px solid var(--admin-primary);margin-bottom:-1px}.qa-section__content{flex:1;min-height:0;overflow:auto}.qa-section__disabled{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--admin-spacing-md);padding:var(--admin-spacing-xl);text-align:center}.qa-section__disabled-icon{font-size:3rem;opacity:.5}.qa-section__disabled-title{font-size:var(--admin-font-size-lg);font-weight:600;color:var(--admin-text-primary)}.qa-section__disabled-message{font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary);max-width:400px}.qa-issues-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-md);height:100%}.qa-issues-panel__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--admin-spacing-md)}.qa-issues-panel__filters{display:flex;gap:var(--admin-spacing-sm);flex-wrap:wrap}.qa-issues-panel__filter{padding:var(--admin-spacing-xs) var(--admin-spacing-sm);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);cursor:pointer}.qa-issues-panel__filter:focus{outline:2px solid var(--admin-primary);outline-offset:1px}.qa-issues-panel__actions{display:flex;gap:var(--admin-spacing-sm)}.qa-issues-panel__refresh-btn{padding:var(--admin-spacing-xs) var(--admin-spacing-sm);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);cursor:pointer;transition:all .15s ease}.qa-issues-panel__refresh-btn:hover{background:var(--admin-surface-hover)}.qa-issues-table{width:100%;border-collapse:collapse;font-size:var(--admin-font-size-sm)}.qa-issues-table th,.qa-issues-table td{padding:var(--admin-spacing-sm) var(--admin-spacing-md);text-align:left;border-bottom:1px solid var(--admin-border)}.qa-issues-table th{font-weight:600;color:var(--admin-text-secondary);background:var(--admin-surface-subtle);position:sticky;top:0}.qa-issues-table__sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}.qa-issues-table__sortable:hover{color:var(--admin-primary)}.qa-issues-table tbody tr{cursor:pointer;transition:background .1s ease}.qa-issues-table tbody tr:hover{background:var(--admin-surface-hover)}.qa-severity-badge{display:inline-block;padding:2px 8px;font-size:.75rem;font-weight:600;border-radius:var(--admin-radius-sm);text-transform:uppercase}.qa-severity-badge--critical{background:#dc2626;color:#fff}.qa-severity-badge--major{background:#ea580c;color:#fff}.qa-severity-badge--minor{background:#ca8a04;color:#fff}.qa-severity-badge--cosmetic{background:#2563eb;color:#fff}.qa-status-badge{display:inline-block;padding:2px 8px;font-size:.75rem;font-weight:500;border-radius:var(--admin-radius-sm);text-transform:capitalize}.qa-status-badge--open{background:#fee2e2;color:#dc2626}.qa-status-badge--acknowledged{background:#fef3c7;color:#ca8a04}.qa-status-badge--in-progress{background:#dbeafe;color:#2563eb}.qa-status-badge--fixed{background:#dcfce7;color:#16a34a}.qa-status-badge--invalid,.qa-status-badge--duplicate{background:#f3f4f6;color:#6b7280}.qa-category-badge{display:inline-block;padding:2px 6px;font-size:.7rem;font-weight:500;border-radius:var(--admin-radius-sm);background:var(--admin-surface-subtle);color:var(--admin-text-secondary)}.qa-issue-detail{display:flex;flex-direction:column;gap:var(--admin-spacing-lg);max-width:900px}.qa-issue-detail__header{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-md);padding:var(--admin-spacing-lg)}.qa-issue-detail__header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--admin-spacing-md);margin-bottom:var(--admin-spacing-md)}.qa-issue-detail__title{font-size:1.25rem;font-weight:600;margin:0;color:var(--admin-text-primary);line-height:1.3}.qa-issue-detail__back-btn{padding:var(--admin-spacing-xs) var(--admin-spacing-sm);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-secondary);cursor:pointer;white-space:nowrap;transition:all .15s ease}.qa-issue-detail__back-btn:hover{color:var(--admin-text-primary);border-color:var(--admin-text-secondary)}.qa-issue-detail__meta{display:flex;gap:var(--admin-spacing-sm);flex-wrap:wrap;align-items:center}.qa-issue-detail__body{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.qa-issue-detail__section{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-md);padding:var(--admin-spacing-md) var(--admin-spacing-lg)}.qa-issue-detail__section-title{font-size:.7rem;font-weight:600;color:var(--admin-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--admin-spacing-sm);padding-bottom:var(--admin-spacing-xs);border-bottom:1px solid var(--admin-border-subtle, rgba(255,255,255,.05))}.qa-issue-detail__description{font-size:var(--admin-font-size-sm);line-height:1.7;color:var(--admin-text-primary)}.qa-issue-detail__meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--admin-spacing-md)}@media(max-width:600px){.qa-issue-detail__meta-grid{grid-template-columns:1fr}}.qa-issue-detail__meta-grid .qa-issue-detail__section{margin:0}.qa-issue-detail__info-list{display:flex;flex-direction:column;gap:var(--admin-spacing-xs)}.qa-issue-detail__info-item{display:flex;gap:var(--admin-spacing-sm);font-size:var(--admin-font-size-sm);line-height:1.5}.qa-issue-detail__info-label{color:var(--admin-text-secondary);min-width:90px;flex-shrink:0}.qa-issue-detail__info-value{color:var(--admin-text-primary)}.qa-issue-detail__evidence-block{margin-top:var(--admin-spacing-sm)}.qa-issue-detail__evidence-label{font-size:.75rem;font-weight:500;color:var(--admin-text-secondary);margin-bottom:var(--admin-spacing-xs)}.qa-issue-detail__evidence-code{background:var(--admin-surface-subtle, rgba(0,0,0,.2));border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);padding:var(--admin-spacing-sm) var(--admin-spacing-md);font-family:Fira Code,Monaco,Consolas,monospace;font-size:.8rem;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.qa-issue-detail__evidence-code--fix{background:#16a34a1a;border-color:#16a34a4d}.qa-issue-detail__footer{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-md);padding:var(--admin-spacing-md) var(--admin-spacing-lg)}.qa-issue-detail__actions-row{display:flex;flex-wrap:wrap;gap:var(--admin-spacing-sm);align-items:center}.qa-issue-detail__actions-group{display:flex;gap:var(--admin-spacing-xs);flex-wrap:wrap}.qa-issue-detail__actions-spacer{flex:1;min-width:var(--admin-spacing-md)}.qa-issue-detail__action-btn{padding:var(--admin-spacing-xs) var(--admin-spacing-md);font-size:var(--admin-font-size-sm);font-weight:500;border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);cursor:pointer;transition:all .15s ease}.qa-issue-detail__action-btn:hover{background:var(--admin-surface-hover)}.qa-issue-detail__action-btn:disabled{opacity:.5;cursor:not-allowed}.qa-issue-detail__action-btn--primary{background:var(--admin-primary);border-color:var(--admin-primary);color:#fff}.qa-issue-detail__action-btn--primary:hover{background:var(--admin-primary-hover)}.qa-issue-detail__action-btn--danger{background:transparent;border-color:#dc2626;color:#dc2626}.qa-issue-detail__action-btn--danger:hover{background:#dc2626;color:#fff}.qa-issue-detail__copilot{display:flex;flex-direction:column;gap:var(--admin-spacing-sm);margin-top:var(--admin-spacing-md);padding-top:var(--admin-spacing-md);border-top:1px solid var(--admin-border)}.qa-issue-detail__copilot-row{display:flex;align-items:center;gap:var(--admin-spacing-sm);flex-wrap:wrap}.qa-issue-detail__copilot-hint{font-size:.75rem;color:var(--admin-text-secondary)}.qa-issue-detail__copilot-success{font-size:.8rem;color:var(--admin-success, #16a34a);font-weight:500}.qa-issue-detail__copilot-btn{background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;color:#fff}.qa-issue-detail__copilot-btn:hover{background:linear-gradient(135deg,#4f46e5,#7c3aed)}.qa-issue-detail__retest-section{border-color:var(--admin-primary, #6366f1);border-width:2px}.qa-issue-detail__retest-actions{margin-top:var(--admin-spacing-md);display:flex;gap:var(--admin-spacing-sm)}.qa-issue-detail__retest-empty{color:var(--admin-text-secondary);font-size:var(--admin-font-size-sm)}.qa-issue-detail__retest-empty p{margin:0 0 var(--admin-spacing-sm) 0}.qa-issue-detail__action-btn--retest{background:linear-gradient(135deg,#059669,#10b981);border:none;color:#fff}.qa-issue-detail__action-btn--retest:hover{background:linear-gradient(135deg,#047857,#059669)}.qa-retest-status{display:inline-block;padding:2px 8px;font-size:.75rem;font-weight:600;border-radius:var(--admin-radius-sm)}.qa-retest-status--pending{background:#fef3c7;color:#ca8a04}.qa-retest-status--in-progress{background:#dbeafe;color:#2563eb}.qa-retest-status--verified{background:#dcfce7;color:#16a34a}.qa-retest-status--broken{background:#fee2e2;color:#dc2626}.qa-retest-status--warning{background:#fef3c7;color:#d97706}.qa-retest-status--cancelled{background:#f3f4f6;color:#6b7280}.qa-issue-detail__status-message{padding:8px 12px;border-radius:var(--admin-radius-sm);margin-bottom:var(--admin-spacing-sm);font-size:.875rem}.qa-issue-detail__status-message--success{background:#dcfce7;color:#16a34a;border:1px solid #bbf7d0}.qa-issue-detail__status-message--error{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.qa-result--verified{color:#16a34a;font-weight:600}.qa-result--broken{color:#dc2626;font-weight:600}.qa-issue-detail__info-item--full{flex-direction:column;align-items:flex-start;gap:4px}.qa-issue-detail__info-item--full .qa-issue-detail__info-value{white-space:pre-wrap}.qa-issue-detail__closure-section{background:#fef3c7;border:1px solid #fcd34d}.qa-issue-detail__closure-reason{color:#92400e;font-style:italic}.qa-issue-detail__comments-section{background:var(--admin-surface)}.qa-issue-detail__comments-list{display:flex;flex-direction:column;gap:var(--admin-spacing-sm);margin-bottom:var(--admin-spacing-md);max-height:300px;overflow-y:auto}.qa-issue-detail__comment{padding:var(--admin-spacing-sm);background:var(--admin-subtle-bg);border-radius:var(--admin-radius-sm);border-left:3px solid var(--admin-border)}.qa-issue-detail__comment--qa-tester{border-left-color:#8b5cf6;background:#f5f3ff}.qa-issue-detail__comment-header{display:flex;align-items:center;gap:var(--admin-spacing-sm);margin-bottom:4px;font-size:.75rem}.qa-issue-detail__comment-author{font-weight:600;color:var(--admin-text)}.qa-issue-detail__comment-date{color:var(--admin-text-muted)}.qa-issue-detail__comment-action{background:var(--admin-border);color:var(--admin-text-muted);padding:1px 6px;border-radius:var(--admin-radius-sm);font-size:.65rem;text-transform:uppercase}.qa-issue-detail__comment-text{color:var(--admin-text);font-size:.875rem;white-space:pre-wrap}.qa-issue-detail__comments-empty{color:var(--admin-text-muted);font-style:italic;margin-bottom:var(--admin-spacing-md)}.qa-issue-detail__comment-form{display:flex;flex-direction:column;gap:var(--admin-spacing-sm)}.qa-issue-detail__comment-input{padding:var(--admin-spacing-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);font-family:inherit;font-size:.875rem;resize:vertical;background:var(--admin-input-bg);color:var(--admin-text)}.qa-issue-detail__comment-input:focus{outline:none;border-color:var(--admin-primary)}.qa-issue-detail__action-btn--comment{align-self:flex-end}.qa-issue-detail__dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.qa-issue-detail__dialog{background:#1e1e1e;border:1px solid #3a3a3a;border-radius:12px;box-shadow:0 20px 60px #00000080,0 0 0 1px #ffffff0d;width:100%;max-width:480px;max-height:90vh;overflow:hidden;animation:dialogSlideIn .2s ease-out}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.qa-issue-detail__dialog-header{padding:20px 24px;background:linear-gradient(135deg,#2a2a2a,#1e1e1e);border-bottom:1px solid #3a3a3a;font-weight:600;font-size:1.125rem;color:#fff}.qa-issue-detail__dialog-body{padding:24px;background:#252525}.qa-issue-detail__dialog-label{display:block;margin-bottom:12px;font-size:.875rem;color:#a0a0a0;font-weight:500}.qa-issue-detail__dialog-input{width:100%;padding:12px 14px;border:1px solid #3a3a3a;border-radius:8px;font-family:inherit;font-size:.875rem;resize:vertical;background:#1a1a1a;color:#e0e0e0;min-height:100px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.qa-issue-detail__dialog-input::placeholder{color:#606060}.qa-issue-detail__dialog-input:focus{outline:none;border-color:#4a9eff;box-shadow:0 0 0 3px #4a9eff26}.qa-issue-detail__dialog-footer{padding:16px 24px;background:#1e1e1e;border-top:1px solid #3a3a3a;display:flex;justify-content:flex-end;gap:12px}.qa-issue-detail__dialog-footer .qa-issue-detail__action-btn{padding:10px 20px;font-weight:500;border-radius:6px;transition:all .2s}.qa-issue-detail__dialog-footer .qa-issue-detail__action-btn:not(.qa-issue-detail__action-btn--primary){background:#2a2a2a;border:1px solid #3a3a3a;color:silver}.qa-issue-detail__dialog-footer .qa-issue-detail__action-btn:not(.qa-issue-detail__action-btn--primary):hover{background:#333;border-color:#4a4a4a}.qa-issue-detail__dialog-footer .qa-issue-detail__action-btn--primary{background:linear-gradient(135deg,#4a9eff,#3b82f6);border:none;color:#fff}.qa-issue-detail__dialog-footer .qa-issue-detail__action-btn--primary:hover{background:linear-gradient(135deg,#5aadff,#4b8ff7);box-shadow:0 4px 12px #4a9eff4d}.qa-issue-detail__dialog-footer .qa-issue-detail__action-btn--primary:disabled{background:#3a3a3a;color:#606060;cursor:not-allowed}.qa-testers-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-md)}.qa-testers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--admin-spacing-md)}.qa-tester-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-md);padding:var(--admin-spacing-md);display:flex;flex-direction:column;gap:var(--admin-spacing-sm)}.qa-tester-card__header{display:flex;justify-content:space-between;align-items:center}.qa-tester-card__name{font-weight:600;color:var(--admin-text-primary)}.qa-tester-card__status{display:inline-block;padding:2px 8px;font-size:.75rem;font-weight:500;border-radius:var(--admin-radius-sm)}.qa-tester-card__status--active{background:#dcfce7;color:#16a34a}.qa-tester-card__status--inactive{background:#f3f4f6;color:#6b7280}.qa-tester-card__type{font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary)}.qa-tester-card__stats{display:flex;gap:var(--admin-spacing-md);font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary)}.qa-tester-card__actions{display:flex;gap:var(--admin-spacing-xs);margin-top:var(--admin-spacing-sm)}.qa-tester-card__btn{flex:1;padding:var(--admin-spacing-xs) var(--admin-spacing-sm);font-size:var(--admin-font-size-sm);border:1px solid var(--admin-border);border-radius:var(--admin-radius-sm);background:var(--admin-surface);color:var(--admin-text-primary);cursor:pointer;transition:all .15s ease}.qa-tester-card__btn:hover{background:var(--admin-surface-hover)}.qa-tester-card__btn--enable{background:#16a34a;border-color:#16a34a;color:#fff}.qa-tester-card__btn--disable{background:#dc2626;border-color:#dc2626;color:#fff}.qa-stats-panel{display:flex;flex-direction:column;gap:var(--admin-spacing-lg)}.qa-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--admin-spacing-md)}.qa-stat-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius-md);padding:var(--admin-spacing-md);text-align:center}.qa-stat-card__value{font-size:2rem;font-weight:700;color:var(--admin-primary)}.qa-stat-card__label{font-size:var(--admin-font-size-sm);color:var(--admin-text-secondary);margin-top:var(--admin-spacing-xs)}.qa-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--admin-spacing-xl);text-align:center;color:var(--admin-text-secondary)}.qa-empty-state__icon{font-size:3rem;margin-bottom:var(--admin-spacing-md);opacity:.5}.qa-loading{display:flex;align-items:center;justify-content:center;padding:var(--admin-spacing-xl);color:var(--admin-text-secondary)}.qa-error{padding:var(--admin-spacing-md);background:#fee2e2;border:1px solid #fecaca;border-radius:var(--admin-radius-md);color:#dc2626}.admin-page{min-height:100vh;width:100%;display:flex;flex-direction:column;padding:0;margin:0}.admin-page--denied{padding:2rem;display:flex;align-items:center;justify-content:center}.admin-page__world-scope{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-background) 95%,var(--color-primary) 5%)}.admin-page__world-scope-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);white-space:nowrap}.admin-page__world-scope-input{max-width:22rem;width:100%}.runtime-debug-hud{position:fixed;right:12px;bottom:12px;z-index:9999;width:380px;background:#141418e6;color:#f2f2f2;border:1px solid rgba(255,255,255,.08);border-radius:8px;box-shadow:0 10px 30px #00000059;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.runtime-debug-hud__header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:600}.runtime-debug-hud__actions{display:flex;gap:6px}.runtime-debug-hud__actions button{background:#ffffff1a;color:#f2f2f2;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:2px 6px;font-size:11px;cursor:pointer}.runtime-debug-hud__actions button:hover{background:#ffffff2e}.runtime-debug-hud__body{padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px}.runtime-debug-hud__row{display:flex;justify-content:space-between;gap:8px}.runtime-debug-hud__muted{color:#fff9}.runtime-debug-hud.is-collapsed .runtime-debug-hud__body{display:none}:root{--color-background: #1a1a1a;--color-background-lighter: color-mix(in srgb, var(--color-background) 90%, white 1%);--color-text-primary: #e0e0e0;--color-text-secondary: #b0b0b0;--color-primary: #4CAF50;--color-primary-hover: #45a049;--color-secondary: #333;--color-border: #444;--color-accent: #8a4a8a;--color-accent-hover: #a05aa0;--color-success: #4CAF50;--color-warning: #f44336;--color-error: #f44336;--color-info: #2196F3;--color-weather: #1e3a8a;--color-log-own-action: #ff9800;--color-interactive-item: #8a8a4a;--color-interactive-creature: #4a4a8a;--color-interactive-resource: #4a8a4a;--color-interactive-room: #8a8a4a;--color-interactive-roomType: #8a7a4a;--color-interactive-portal: #8a4a8a;--color-interactive-skill: #4a8a8a;--color-interactive-exit: #4c6a43;--color-interactive-scenery: #6a6a6a;--color-interactive-body: #8a6a4a;--color-interactive-lore: #4a6a8a;--color-interactive-recipe: #8a4a6a;--color-interactive-door: #6f3600;--color-interactive-effectTemplate: #780101;--color-interactive-weatherTemplate: #780101;--color-interactive-other: #6a6a6a;--color-interactive-item-border: #ffff6a;--color-interactive-creature-border: #6a6aff;--color-interactive-resource-border: #6aff6a;--color-interactive-room-border: #ffff6a;--color-interactive-roomType-border: #ffcc6a;--color-interactive-portal-border: #ff6aff;--color-interactive-skill-border: #6affff;--color-interactive-exit-border: #8c8c8c;--color-interactive-scenery-border: #8c8c8c;--color-interactive-body-border: #ffb36a;--color-interactive-lore-border: #6aaaff;--color-interactive-recipe-border: #ff6aaa;--color-interactive-door-border: #3a1c00;--color-interactive-effectTemplate-border: #400000;--color-interactive-weatherTemplate-border: #400000;--color-interactive-other-border: #8c8c8c;--interactive-text-shadow: 1px 1px 1px #000;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-xxl: 32px;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-progress-bar: 999px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.5rem;--header-height: 60px;--sidebar-width: 20%;--central-width: 60%;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .2);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--font-family-primary: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--z-index-dropdown: 100000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070}body{margin:0;padding:0;font-family:var(--font-family-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text-primary);overflow:hidden;-webkit-user-select:none;user-select:none;height:100vh}#app{display:flex;flex-direction:column;height:100%}.page{display:flex;flex-direction:column;width:100%;height:100%;align-items:center;color:var(--color-primary)}input,select{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--border-radius-sm)}input:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary),transparent 50%)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.form-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end}.error-message{color:var(--color-error);margin-bottom:var(--spacing-sm)}button{background-color:var(--color-primary);color:var(--color-secondary);border:none;padding:var(--spacing-sm) var(--spacing-lg);margin-left:var(--spacing-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .3s ease;font-weight:700}button:hover{background-color:var(--color-primary-hover)}.content-block{background-color:var(--color-secondary);border:1px solid var(--color-border);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-radius:var(--border-radius-md)}.content-block h2{color:var(--color-primary);margin-top:0;margin-bottom:var(--spacing-md);font-size:var(--font-size-xl)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-text-secondary);border-radius:4px}*{scrollbar-width:thin;scrollbar-color:var(--color-text-secondary) transparent}
