.format-picker{display:flex;align-items:center;gap:var(--space-2)}.format-picker__label{font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap}.format-picker__select{background:var(--surface-sidebar, #1a1610);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));color:var(--text-primary, #e8dcc8);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-xs);cursor:pointer;transition:border-color .15s ease}.format-picker__select:hover,.format-picker__select:focus{border-color:var(--fantasy-gold, #c9a227);outline:none}.icon-svg{display:contents}.icon-svg>svg{width:1em;height:1em;display:inline-block;vertical-align:-.125em}.icon-emoji{display:inline-flex;align-items:center;justify-content:center;line-height:1}.icon-label{display:inline-flex;align-items:center;gap:.35em}.icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:var(--space-2);max-height:300px;overflow-y:auto;overflow-x:visible;padding:var(--space-2-5)}.icon-picker-item{display:flex;align-items:center;justify-content:center;padding:var(--space-2-5);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-primary);cursor:pointer;transition:all .2s ease;min-height:50px;position:relative;overflow:visible}.icon-picker-item:hover{background:var(--color-alert-info-bg);border-color:var(--fantasy-gold);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-primary-sm)}.icon-picker-item:focus{outline:none;background:var(--color-alert-info-bg);border-color:var(--fantasy-gold);box-shadow:0 0 0 3px var(--focus-ring-primary)}.icon-picker-item.selected{background:var(--color-alert-info-bg);border-color:var(--fantasy-gold);border-width:3px;box-shadow:0 0 0 2px var(--focus-ring-primary)}.icon-picker-item.selected:hover{background:var(--color-alert-info-border)}.icon-picker-item:focus-visible{outline:2px solid var(--fantasy-gold);outline-offset:2px}.icon-category-sidebar{width:150px;border-right:1px solid var(--border-color);background:var(--surface-secondary);overflow-y:auto}.icon-category-button{width:100%;padding:var(--space-3);border:none;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;font-size:var(--font-size-xs);border-bottom:1px solid var(--surface-tertiary);transition:all .2s ease;display:flex;align-items:center;gap:var(--space-2)}.icon-category-button:hover{background:var(--surface-tertiary)}.icon-category-button:focus{outline:none;background:var(--border-color);box-shadow:inset 3px 0 0 var(--fantasy-gold)}.icon-category-button.active{background:var(--fantasy-gold);color:var(--fantasy-text);font-weight:700}.icon-category-button.active:hover{background:var(--fantasy-gold-dim)}.icon-picker-tabs{display:flex;border-bottom:1px solid var(--border-color);background:var(--surface-secondary)}.icon-picker-tab{flex:1;padding:var(--space-3);border:none;background:transparent;cursor:pointer;font-weight:400;color:var(--text-secondary);transition:all .2s ease}.icon-picker-tab:hover{background:var(--surface-tertiary);color:var(--text-primary)}.icon-picker-tab:focus{outline:none;background:var(--border-color);box-shadow:inset 0 -3px 0 var(--fantasy-gold)}.icon-picker-tab.active{background:var(--surface-primary);border-bottom:2px solid var(--fantasy-gold);color:var(--fantasy-gold);font-weight:700}.icon-picker-toggle-mobile,.icon-category-trigger-mobile{display:none}.icon-category-sheet-overlay{position:fixed;inset:0;background:var(--overlay-dark-60, rgba(0, 0, 0, .6));z-index:100000;display:flex;align-items:flex-end}.icon-category-sheet{width:100%;max-height:70vh;overflow-y:auto;background:var(--surface-primary);border-top-left-radius:var(--border-radius-lg, 12px);border-top-right-radius:var(--border-radius-lg, 12px);box-shadow:0 -4px 24px var(--shadow-primary-sm);padding-bottom:env(safe-area-inset-bottom,0)}.icon-category-sheet-header{padding:var(--space-4);font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--surface-primary)}.icon-category-sheet-item{width:100%;padding:var(--space-4);border:none;background:transparent;color:var(--text-primary);cursor:pointer;text-align:left;font-size:var(--font-size-base);border-bottom:1px solid var(--surface-tertiary);display:flex;align-items:center;gap:var(--space-3)}.icon-category-sheet-item.active{background:var(--fantasy-gold);color:var(--fantasy-text);font-weight:700}@media(max-width:768px){.icon-picker-tabs{display:none}.icon-picker-toggle-mobile{display:flex;align-items:center;justify-content:center;width:100%;padding:var(--space-3);border:none;border-bottom:1px solid var(--border-color);background:var(--surface-secondary);color:var(--fantasy-gold);font-weight:700;cursor:pointer}.icon-category-sidebar{display:none}.icon-category-trigger-mobile{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2-5) var(--space-3);margin-bottom:var(--space-2-5);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer}.icon-picker-grid{grid-template-columns:repeat(auto-fill,minmax(45px,1fr));gap:var(--space-px-6)}.icon-picker-item{min-height:45px;padding:var(--space-2)}}.icon-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-10);color:var(--text-secondary)}.icon-loading:after{content:"";width:20px;height:20px;border:2px solid var(--border-color);border-top:2px solid var(--fantasy-gold);border-radius:var(--border-radius-circle);animation:spin 1s linear infinite;margin-left:var(--space-2-5)}.language-switcher{padding:var(--space-5) 0}.language-options{display:flex;flex-direction:column;gap:var(--space-2-5);margin-top:var(--space-2-5)}.language-option{display:flex;align-items:center;padding:var(--space-3) var(--space-4);border:2px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;background:var(--surface-primary, white)}.language-option:hover,.language-option.selected{border-color:var(--fantasy-gold);background:var(--surface-secondary)}.language-flag{font-size:24px;margin-right:var(--space-3)}.language-name{flex:1;font-weight:500}.language-check{color:var(--fantasy-gold);font-weight:700;font-size:18px}.notifications-container{position:fixed;top:var(--space-5);right:var(--space-5);z-index:1100;display:flex;flex-direction:column;gap:var(--space-2-5);max-width:400px;width:100%}.notification{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--space-4);border-radius:var(--border-radius-sm);box-shadow:0 2px 10px var(--overlay-dark-10);animation:slide-in .3s ease-out;background-color:var(--surface-primary);border-left:4px solid var(--border-color-strong)}.notification-content{flex:1}.notification-title{font-weight:700;margin-bottom:var(--space-1)}.notification-message{font-size:var(--font-size-sm);line-height:1.4;white-space:pre-line}.notification-close{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--text-secondary);padding:0 0 0 var(--space-2-5);margin:-5px 0 0}.notification-close:hover{color:var(--text-primary)}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:480px){.notifications-container{right:var(--space-2-5);left:var(--space-2-5);max-width:none}}.notification-info{border-left-color:var(--color-info)}.notification-success{border-left-color:var(--color-success)}.notification-warning{border-left-color:var(--color-warning)}.notification-error{border-left-color:var(--color-danger)}.devlog-list{display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.devlog-entry{display:flex;flex-direction:column;gap:var(--space-2, .5rem);padding:var(--space-3, .75rem);border-radius:var(--radius-md, 6px);border:1px solid var(--fantasy-border, rgba(192, 160, 96, .2));background:#00000026}.devlog-entry-header{display:flex;align-items:center;gap:var(--space-2, .5rem)}.devlog-entry-app-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:var(--font-size-xs, .7rem);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#fff;line-height:1.6}.devlog-entry-date{font-size:var(--font-size-sm, .8rem);color:var(--text-secondary, rgba(255, 255, 255, .5))}.devlog-entry-title{font-family:var(--font-fantasy-title, serif);font-size:var(--font-size-base, 1rem);font-weight:600;color:var(--fantasy-gold, #c0a060);line-height:1.3}.devlog-entry-description{font-size:var(--font-size-sm, .875rem);color:var(--fantasy-text, rgba(255, 255, 255, .85));line-height:1.5}.terms-of-use__body{display:flex;flex-direction:column;color:var(--fantasy-text, var(--text-primary));line-height:1.6;font-size:var(--font-size-sm, .9rem)}.terms-of-use__body h2{margin:0 0 var(--space-2, .5rem);font-family:var(--font-fantasy-title, serif);font-size:var(--font-size-lg, 1.15rem);color:var(--fantasy-gold, #c0a060)}.terms-of-use__updated{margin:0 0 var(--space-4, 1rem);color:var(--text-secondary);font-size:var(--font-size-xs, .75rem)}.terms-of-use__body h3{margin:var(--space-4, 1rem) 0 var(--space-1, .25rem);font-size:var(--font-size-base, 1rem);font-weight:600;color:var(--fantasy-gold, #c0a060)}.terms-of-use__body p{margin:0}.game-menu{background:var(--surface-primary);border-radius:var(--border-radius-lg);width:400px;max-width:90vw;box-shadow:0 8px 32px var(--overlay-dark-30);overflow:hidden}.game-menu-button{display:flex;align-items:center;padding:var(--space-5);border:1px solid var(--fantasy-border);border-radius:var(--border-radius);background:var(--surface-secondary);color:var(--fantasy-text);cursor:pointer;transition:all .3s ease;text-align:left;width:100%}.game-menu-button:hover{border-color:var(--fantasy-gold);background-color:var(--fantasy-gold-subtle);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow-primary-sm)}.game-menu-button-icon{font-size:var(--font-size-3xl);margin-right:var(--space-4);min-width:40px;text-align:center}.game-menu-button-content{flex:1}.game-menu-button-title{font-family:var(--font-fantasy-title);font-size:var(--font-size-lg);font-weight:600;letter-spacing:.06em;color:var(--fantasy-gold);margin-bottom:var(--space-1)}.game-menu-button-description{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.4}@media(max-width:480px){.game-menu{max-width:100%}.game-menu-button{padding:var(--space-4)}.game-menu-button-icon{font-size:var(--font-size-2xl);margin-right:var(--space-2-5);min-width:30px}.game-menu-button-title{font-size:var(--font-size-base)}.game-menu-button-description{font-size:var(--font-size-sm)}}.audio-sidebar{padding-top:0!important;padding-bottom:0!important;display:flex;flex-direction:column}.audio-sidebar>*{position:relative;z-index:2}.audio-sidebar>.sidebar-header{padding-top:var(--space-5)}.audio-sidebar__filters{flex:1;min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-5) var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.audio-sidebar>.sidebar__bottom{position:static;margin-top:auto;padding-top:var(--space-4);padding-bottom:var(--space-4)}.hub-user-status{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.hub-user-name{color:var(--fantasy-gold);font-weight:600;font-size:var(--font-size-sm);text-align:center;width:100%}.hub-menu-btn{margin-top:var(--space-3)}.audio-sidebar__username{display:block;text-align:center;padding:var(--space-2) var(--space-5);font-size:var(--font-size-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audio-layout{min-height:100vh;width:100%;background:transparent;color:var(--text-primary)}.audio-header{position:fixed;top:0;left:260px;right:0;height:56px;z-index:400;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5);background:var(--surface-sidebar, #1a1610);border-bottom:1px solid var(--fantasy-border, rgba(201, 162, 39, .2))}.audio-header__nav{display:flex;align-items:center;gap:var(--space-1)}.audio-header__nav .sidebar-tab{text-decoration:none;width:auto;padding:var(--space-2) var(--space-3);border-left:none}.audio-header__nav .sidebar-tab:hover{background-color:transparent;color:var(--fantasy-gold)}.audio-header__nav .sidebar-tab.active{background-color:transparent;border-left:none;color:var(--fantasy-gold)}.audio-header__right{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.audio-header__downloader-btn{display:inline-flex;align-items:center;padding:.35rem .75rem;font-size:var(--font-size-sm, .8rem);font-family:var(--font-fantasy-title, inherit);color:var(--fantasy-gold, #c9a227);border:1px solid rgba(201,162,39,.4);border-radius:var(--radius-sm, 4px);background:#c9a22714;text-decoration:none;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.audio-header__downloader-btn:hover{background:#c9a2272e;border-color:var(--fantasy-gold, #c9a227)}.audio-main{margin-left:260px;padding-top:56px;padding-bottom:110px;min-height:100vh;background:transparent}.audio-view{padding:var(--space-5) var(--space-5) var(--space-5)}.audio-view__title{font-family:var(--font-fantasy-title);color:var(--text-primary);margin-top:0}.audio-view__count{color:var(--text-muted);font-size:var(--font-size-sm)}.my-licenses-view__devices{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border-subtle, rgba(255, 255, 255, .1))}.audio-track-list{list-style:none;padding:0;margin:var(--space-4) 0 0}.audio-track-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--overlay-light-05, rgba(255, 255, 255, .05))}.audio-track-list a{color:var(--text-primary);text-decoration:none}.audio-track-list a:hover{color:var(--fantasy-gold)}.audio-track-meta{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin-top:var(--space-4)}.audio-track-meta dt{color:var(--text-muted);font-size:var(--font-size-sm)}.audio-track-meta dd{margin:0;color:var(--text-primary)}.audio-state{color:var(--text-secondary)}.audio-state--error{color:var(--color-danger)}.track-view__source-link{color:var(--color-accent, #b89a5e);text-decoration:none}.track-view__source-link:hover{text-decoration:underline}.track-view__keywords{display:flex;flex-wrap:wrap;gap:var(--space-1, 4px);list-style:none;margin:0;padding:0}.track-view__keyword-tag{background:var(--surface-2, rgba(255, 255, 255, .07));border:1px solid var(--border-subtle, rgba(255, 255, 255, .12));border-radius:999px;color:var(--text-secondary);font-size:var(--font-size-xs, .75rem);padding:2px 10px;white-space:nowrap}.track-view__actions{display:flex;flex-wrap:wrap;gap:var(--space-2, 8px);margin-top:var(--space-5, 20px);align-items:center}.track-view__action-btn{background:var(--surface-2, rgba(255, 255, 255, .07));border:1px solid var(--border-subtle, rgba(255, 255, 255, .12));border-radius:var(--radius-sm, 4px);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-sm, .875rem);padding:var(--space-2, 8px) var(--space-3, 12px);text-decoration:none;transition:background .15s;white-space:nowrap}.track-view__action-btn:hover{background:var(--surface-3, rgba(255, 255, 255, .12))}.track-view__action-btn--play{background:var(--color-accent-subtle, rgba(184, 154, 94, .15));border-color:var(--color-accent, #b89a5e);color:var(--color-accent, #b89a5e);font-weight:600}.track-view__action-btn--play.track-view__action-btn--playing{background:var(--color-accent-subtle, rgba(184, 154, 94, .25))}.track-view__action-btn--download{background:var(--surface-2, rgba(255, 255, 255, .07))}.track-view__action-btn--license{background:var(--color-primary-subtle, rgba(90, 130, 200, .15));border-color:var(--color-primary, #5a82c8);color:var(--color-primary, #5a82c8)}.track-view__action-btn--buy{background:var(--color-success-subtle, rgba(80, 160, 100, .15));border-color:var(--color-success, #50a064);color:var(--color-success, #50a064)}.track-view__action-btn--signin{border-style:dashed;color:var(--text-muted)}.download-view__subtitle{color:var(--text-secondary);margin-bottom:var(--space-5);max-width:52ch}.download-view__version{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:var(--space-4)}.download-view__buttons{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-6)}.download-view__btn{display:inline-flex;align-items:center;gap:.4em;padding:.6rem 1.25rem;border-radius:var(--radius-sm, 4px);font-family:var(--font-fantasy-title, inherit);font-size:var(--font-size-sm);text-decoration:none;transition:background .15s ease,border-color .15s ease;white-space:nowrap}.download-view__btn--primary{background:#c9a2272e;border:1px solid var(--fantasy-gold, #c9a227);color:var(--fantasy-gold, #c9a227)}.download-view__btn--primary:hover{background:#c9a2274d}.download-view__btn--secondary{background:transparent;border:1px solid rgba(201,162,39,.3);color:var(--text-secondary)}.download-view__btn--secondary:hover{border-color:var(--fantasy-gold, #c9a227);color:var(--fantasy-gold, #c9a227)}.download-view__section{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border-subtle, rgba(255, 255, 255, .08));max-width:60ch}.download-view__section-title{font-family:var(--font-fantasy-title);font-size:var(--font-size-md);margin-top:0;color:var(--text-primary)}.download-view__connect-link{display:inline-block;margin-top:var(--space-3);color:var(--fantasy-gold, #c9a227);text-decoration:none;font-size:var(--font-size-sm)}.download-view__connect-link:hover{text-decoration:underline}.audio-player{position:fixed;bottom:0;left:260px;right:0;height:0;overflow:hidden;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5);background:#120e0ad1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));z-index:9000;transition:height .22s ease;box-shadow:0 -4px 24px #0000008c}.audio-player--active{height:90px}.audio-player__track-info{display:flex;align-items:center;gap:var(--space-3);width:200px;flex-shrink:0;overflow:hidden}.audio-player__thumb{width:52px;height:52px;border-radius:var(--radius-sm, 4px);object-fit:cover;flex-shrink:0}.audio-player__thumb--placeholder{display:flex;align-items:center;justify-content:center;background:var(--surface-sidebar, #1a1610);border:1px solid var(--fantasy-border, rgba(201,162,39,.2));color:var(--fantasy-gold, #c9a227);font-size:20px}.audio-player__meta{display:flex;flex-direction:column;gap:2px;overflow:hidden}.audio-player__title{font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-player__composer{font-size:var(--font-size-xs);color:var(--text-secondary, #a09070);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-player__center{flex:1;min-width:0;height:100%;display:flex;align-items:center}.audio-player__controls{display:flex;align-items:center;gap:var(--space-2)}.audio-player__btn{background:none;border:none;color:var(--text-secondary, #a09070);font-size:16px;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm, 4px);transition:color .15s ease,background .15s ease;line-height:1}.audio-player__btn:hover:not(:disabled){color:var(--text-primary, #e8dcc8);background:var(--overlay-light-05, rgba(255,255,255,.05))}.audio-player__btn--play{font-size:20px;color:var(--fantasy-gold, #c9a227);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--fantasy-gold, #c9a227);padding:0}.audio-player__btn-icon{display:flex;align-items:center;justify-content:center;line-height:1}.audio-player__btn-icon--play{padding-left:2px}.audio-player__btn--play:hover:not(:disabled){background:var(--fantasy-gold-subtle, rgba(201,162,39,.12));color:var(--fantasy-gold, #c9a227)}.audio-player__btn:disabled{opacity:.35;cursor:default}.audio-player__waveform{width:100%;min-height:56px}.audio-player__right{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:var(--space-2);width:280px;flex-shrink:0}.audio-player__time{font-size:var(--font-size-xs);color:var(--text-secondary, #a09070);font-variant-numeric:tabular-nums;white-space:nowrap}.audio-player__volume{display:flex;align-items:center;gap:var(--space-2)}.audio-player__volume-icon{font-size:13px;color:var(--text-secondary, #a09070)}.audio-player__volume-slider{width:64px;accent-color:var(--fantasy-gold, #c9a227);cursor:pointer}.album-zip{display:flex;flex-direction:column;gap:var(--space-2)}.album-zip__btn{width:100%;background:var(--color-info, #0891b2);border:1px solid var(--color-info, #0891b2);color:#f5fbfc;font-size:var(--font-size-xs);font-weight:600;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);cursor:pointer;text-align:center;transition:filter .15s ease,opacity .15s ease,background .15s ease}.album-zip__btn:hover:not(:disabled){background:var(--color-info-hover, #0e7490);filter:brightness(1.05)}.album-zip__btn:disabled{opacity:.6;cursor:default}.album-zip__error{font-size:var(--font-size-xs);color:#e05c5c;margin:var(--space-1) 0 0}.ss{position:relative;width:100%}.ss__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:.4rem .6rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.ss__trigger:hover{border-color:var(--fantasy-gold, #c9a227)}.ss__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss__value--placeholder{color:var(--text-secondary, #a09070)}.ss__arrow{color:var(--fantasy-gold, #c9a227);font-size:.7em;flex-shrink:0}.ss__panel{position:absolute;z-index:30;top:calc(100% + 2px);left:0;right:0;background:var(--surface-1, #17150f);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);box-shadow:0 8px 24px #00000080;padding:var(--space-2)}.ss__search{width:100%;padding:.35rem .5rem;margin-bottom:var(--space-2);background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm)}.ss__list{max-height:220px;overflow-y:auto;display:flex;flex-direction:column}.ss__option{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:.4rem .5rem;background:transparent;border:none;border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.ss__option:hover{background:var(--surface-2, #1c1a17)}.ss__option--active{color:var(--fantasy-gold, #c9a227)}.ss__option--clear{color:var(--text-secondary, #a09070);font-style:italic}.ss__badge{flex-shrink:0;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;padding:.05rem .35rem;border:1px solid var(--fantasy-gold, #c9a227);border-radius:999px;color:var(--fantasy-gold, #c9a227)}.ss__empty{padding:.4rem .5rem;color:var(--text-secondary, #a09070);font-size:var(--font-size-sm)}.src-picker__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:.4rem .6rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.src-picker__trigger:hover:not(:disabled){border-color:var(--fantasy-gold, #c9a227)}.src-picker__trigger--disabled{opacity:.5;cursor:default}.src-picker__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.src-picker__placeholder{color:var(--text-secondary, #a09070);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.src-picker__arrow{color:var(--fantasy-gold, #c9a227);font-size:.7em;flex-shrink:0}.src-picker__backdrop{position:fixed;inset:0;z-index:9999;background:#000000a6;display:flex;align-items:center;justify-content:center}.src-picker__modal{background:var(--surface-sidebar, #1a1610);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));border-radius:var(--radius-md, 8px);box-shadow:0 16px 48px #000000b3;width:min(480px,92vw);max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.src-picker__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--fantasy-border, rgba(201, 162, 39, .15));flex-shrink:0}.src-picker__title{margin:0;font-family:var(--font-fantasy-title);font-size:var(--font-size-base);color:var(--fantasy-gold, #c9a227)}.src-picker__close{background:none;border:none;color:var(--text-secondary, #a09070);font-size:16px;cursor:pointer;line-height:1;padding:0 var(--space-1)}.src-picker__close:hover{color:var(--text-primary, #e8dcc8)}.src-picker__search{margin:var(--space-3) var(--space-4);flex-shrink:0;padding:.4rem .6rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm)}.src-picker__search:focus{outline:none;border-color:var(--fantasy-gold, #c9a227)}.src-picker__list{overflow-y:auto;flex:1;padding:0 var(--space-2) var(--space-2);display:flex;flex-direction:column;gap:2px}.src-picker__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:.45rem .6rem;background:transparent;border:none;border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.src-picker__item:hover{background:var(--overlay-light-05, rgba(255,255,255,.05))}.src-picker__item--active{color:var(--fantasy-gold, #c9a227)}.src-picker__item--clear{color:var(--text-secondary, #a09070);font-style:italic;border-bottom:1px solid var(--overlay-light-05, rgba(255,255,255,.05));margin-bottom:var(--space-1)}.src-picker__item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.src-picker__item-meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.src-picker__item-badge{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border:1px solid var(--fantasy-gold, #c9a227);border-radius:999px;color:var(--fantasy-gold, #c9a227)}.src-picker__item-count{font-size:var(--font-size-xs);color:var(--text-secondary, #a09070)}.src-picker__empty{padding:.6rem;color:var(--text-secondary, #a09070);font-size:var(--font-size-sm)}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-6, 2rem);border:2px dashed var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);background:var(--surface-1, #17150f);color:var(--text-secondary, #a09070);cursor:pointer;transition:border-color .15s ease,background .15s ease;text-align:center}.upload-dropzone:hover,.upload-dropzone--over{border-color:var(--fantasy-gold, #c9a227);background:#c9a2270f}.upload-dropzone__icon{font-size:2rem;color:var(--fantasy-gold, #c9a227)}.upload-dropzone__text{font-size:var(--font-size-md);color:var(--text-primary, #e8dcc8)}.upload-dropzone__hint{font-size:var(--font-size-xs)}.upload-dropzone__input{display:none}.bulk-edit{display:flex;align-items:flex-end;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);background:var(--surface-2, #1c1a17)}.bulk-edit__label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--fantasy-gold, #c9a227);font-weight:600;align-self:center}.bulk-edit__fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--space-3);flex:1 1 auto}.bulk-edit__field{display:flex;flex-direction:column;gap:.25rem}.bulk-edit__apply{padding:.45rem 1.2rem;background:var(--fantasy-gold, #c9a227);color:#17150f;border:none;border-radius:var(--radius-sm, 4px);font-weight:600;cursor:pointer;white-space:nowrap}.bulk-edit__apply:hover{filter:brightness(1.05)}.upload-cards{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.upload-card{border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);background:var(--surface-1, #17150f);padding:var(--space-4)}.upload-card--done{border-color:#2f9e44}.upload-card--error{border-color:#c92a2a}.upload-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.upload-card__filename{font-weight:600;color:var(--text-primary, #e8dcc8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-card__status{flex-shrink:0;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border-color, #3a352c);color:var(--text-secondary, #a09070)}.upload-card__status--done{color:#2f9e44;border-color:#2f9e44}.upload-card__status--error{color:#ff6b6b;border-color:#c92a2a}.upload-card__status--processing,.upload-card__status--uploading{color:var(--fantasy-gold, #c9a227);border-color:var(--fantasy-gold, #c9a227)}.upload-card__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.upload-field{display:flex;flex-direction:column;gap:.25rem}.upload-field--full{grid-column:1 / -1}.upload-field__label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--fantasy-gold, #c9a227)}.upload-field__input{padding:.4rem .6rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm)}.upload-field__input:focus{outline:none;border-color:var(--fantasy-gold, #c9a227)}.upload-field__textarea{resize:vertical;font-family:inherit}.upload-card__progress{height:8px;margin-top:var(--space-3);background:var(--surface-2, #1c1a17);border-radius:999px;overflow:hidden}.upload-card__progress-bar{height:100%;background:var(--fantasy-gold, #c9a227);transition:width .2s linear}.upload-card--done .upload-card__progress-bar{background:#2f9e44}.upload-card__actions{margin-top:var(--space-3);display:flex;justify-content:flex-end}.upload-card__upload-btn{padding:.45rem 1.2rem;background:var(--fantasy-gold, #c9a227);color:#17150f;border:none;border-radius:var(--radius-sm, 4px);font-weight:600;cursor:pointer}.upload-card__upload-btn:disabled{opacity:.6;cursor:default}.upload-card__error{margin:var(--space-3) 0 0;color:#ff6b6b;font-size:var(--font-size-sm)}.upload-mood-chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:.3rem 0}.upload-mood-chip{padding:.2rem .6rem;border-radius:999px;border:1px solid var(--border-color, #3a352c);background:var(--surface-2, #1c1a17);color:var(--text-secondary, #a09070);font-size:var(--font-size-xs);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.upload-mood-chip--active{background:#c9a2272e;border-color:var(--fantasy-gold, #c9a227);color:var(--fantasy-gold, #c9a227)}.upload-mood-chip:disabled{opacity:.5;cursor:default}.upload-card__done{padding:var(--space-2) 0}.upload-card__done-msg{margin:0 0 .25rem;color:#2f9e44;font-weight:600}.upload-card__done-link{color:var(--fantasy-gold, #c9a227);text-decoration:none}.upload-card__done-link:hover{text-decoration:underline}.upload-all-bar{display:flex;justify-content:flex-end;margin-top:var(--space-3)}.upload-all-bar__btn{padding:.5rem 1.6rem;background:var(--fantasy-gold, #c9a227);color:#17150f;border:none;border-radius:var(--radius-sm, 4px);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:filter .15s ease}.upload-all-bar__btn:hover{filter:brightness(1.1)}.track-edit__schedule-row{display:flex;align-items:center;gap:.5rem;margin-top:.2rem}.track-edit__schedule-row .upload-field__input{flex:1 1 auto;min-width:0;color-scheme:dark}.track-edit__audio-section{border-top:1px solid var(--border-color, #3a352c);padding-top:var(--space-3);margin-top:var(--space-2)}.track-edit__audio-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem}.track-edit__audio-name{font-size:var(--font-size-sm);color:var(--text-secondary, #a09070);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-edit__audio-success{font-size:var(--font-size-sm);color:#2f9e44;font-weight:600}.catalogue-sidebar{display:flex;flex-direction:column;gap:var(--space-6)}.catalogue-sidebar__section{display:flex;flex-direction:column;gap:var(--space-2)}.catalogue-sidebar__heading{font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);color:var(--fantasy-gold, #c9a227);text-transform:uppercase;letter-spacing:.08em;margin:0}.catalogue-sidebar__check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-base, .9rem);color:var(--text-secondary, #a09070);cursor:pointer;transition:color .15s ease}.catalogue-sidebar__check:hover{color:var(--text-primary, #e8dcc8)}.catalogue-sidebar__check input[type=checkbox]{accent-color:var(--fantasy-gold, #c9a227)}.catalogue-sidebar__duration-row{display:flex;align-items:flex-start;gap:var(--space-2)}.catalogue-sidebar__duration-field{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.catalogue-sidebar__duration-hint{font-size:10px;color:var(--fantasy-gold, #c9a227);opacity:.8;padding-left:var(--space-1)}.catalogue-sidebar__duration-input{width:100%;min-width:0;background:var(--surface-secondary, rgba(0, 0, 0, .2));border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);height:34px}.catalogue-sidebar__duration-input:focus{outline:none;border-color:var(--fantasy-gold, #c9a227)}.catalogue-sidebar__duration-sep{color:var(--text-secondary);font-size:var(--font-size-sm)}.catalogue-sidebar__reset{background:none;border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));color:var(--text-secondary);font-size:var(--font-size-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-top:var(--space-2)}.catalogue-sidebar__reset:hover{color:var(--fantasy-gold);border-color:var(--fantasy-gold)}.chip-picker__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:.4rem .6rem;background:var(--surface-primary, #201a12);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));border-radius:var(--radius-sm, 4px);color:var(--text-secondary, #a09070);font-size:var(--font-size-sm);cursor:pointer;text-align:left}.chip-picker__trigger:hover{border-color:var(--fantasy-gold, #c9a227);color:var(--text-primary, #e8dcc8)}.chip-picker__arrow{font-size:9px;color:var(--text-secondary, #a09070);flex-shrink:0}.chip-picker__tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--space-1)}.chip-picker__tag{display:inline-flex;align-items:center;gap:4px;background:#c9a22726;border:1px solid rgba(201,162,39,.35);border-radius:999px;color:var(--fantasy-gold, #c9a227);font-size:var(--font-size-xs);padding:1px 8px 1px 10px}.chip-picker__tag-remove{background:none;border:none;color:inherit;cursor:pointer;font-size:10px;padding:0;line-height:1;opacity:.7}.chip-picker__tag-remove:hover{opacity:1}.chip-modal__backdrop{position:fixed;inset:0;z-index:600;background:#000000a6;display:flex;align-items:center;justify-content:center}.chip-modal{background:var(--surface-sidebar, #1a1610);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));border-radius:var(--radius-md, 8px);box-shadow:0 16px 48px #000000b3;width:min(480px,92vw);max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.chip-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--fantasy-border, rgba(201, 162, 39, .15));flex-shrink:0}.chip-modal__title{margin:0;font-family:var(--font-fantasy-title);font-size:var(--font-size-base);color:var(--fantasy-gold, #c9a227)}.chip-modal__close{background:none;border:none;color:var(--text-secondary, #a09070);font-size:16px;cursor:pointer;padding:0 var(--space-1);line-height:1}.chip-modal__close:hover{color:var(--text-primary, #e8dcc8)}.chip-modal__search{margin:var(--space-3) var(--space-4);flex-shrink:0;padding:.4rem .6rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm)}.chip-modal__search:focus{outline:none;border-color:var(--fantasy-gold, #c9a227)}.chip-modal__chips{overflow-y:auto;flex:1;padding:0 var(--space-4) var(--space-2);display:flex;flex-wrap:wrap;gap:var(--space-2);align-content:flex-start}.chip-modal__chip{padding:.3rem .8rem;border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));border-radius:999px;background:transparent;color:var(--text-secondary, #a09070);font-size:var(--font-size-sm);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.chip-modal__chip:hover{background:#c9a2271a;color:var(--text-primary, #e8dcc8);border-color:#c9a22780}.chip-modal__chip--active{background:#c9a22733;color:var(--fantasy-gold, #c9a227);border-color:var(--fantasy-gold, #c9a227)}.chip-modal__footer{flex-shrink:0;display:flex;justify-content:flex-end;padding:var(--space-3) var(--space-4);border-top:1px solid var(--fantasy-border, rgba(201, 162, 39, .15))}.chip-modal__done{padding:.4rem 1.2rem;background:var(--fantasy-gold, #c9a227);color:#1a1410;border:none;border-radius:var(--radius-sm, 4px);font-weight:600;cursor:pointer;font-size:var(--font-size-sm)}.chip-modal__done:hover{filter:brightness(1.1)}.chip-modal__badge{display:inline-block;margin-left:var(--space-2);padding:1px 5px;font-size:10px;border-radius:3px;background:#c9a2271f;color:var(--text-secondary, #a09070);text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.filter-search__input{width:100%;background:var(--surface-primary, #201a12);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));color:var(--text-primary, #e8dcc8);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-sm);box-sizing:border-box;height:34px}.filter-search__input:focus{outline:none;border-color:var(--fantasy-gold, #c9a227)}.filter-search__list{max-height:150px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.filter-search__empty{font-size:var(--font-size-xs);color:var(--text-muted);padding:var(--space-1) 0}.filter-dropdown{position:relative}.filter-dropdown__trigger{width:100%;background:var(--surface-primary, #201a12);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));color:var(--text-primary, #e8dcc8);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-xs);cursor:pointer;display:flex;justify-content:space-between;align-items:center;text-align:left}.filter-dropdown__trigger:hover{border-color:var(--fantasy-gold, #c9a227)}.filter-dropdown__arrow{font-size:9px;color:var(--text-secondary);margin-left:var(--space-2)}.filter-dropdown__panel{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;background:var(--surface-sidebar, #1a1610);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));border-radius:var(--radius-sm, 4px);padding:var(--space-2);box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;gap:var(--space-1)}.filter-dropdown__option{background:none;border:none;color:var(--text-secondary, #a09070);font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);text-align:left;cursor:pointer;border-radius:3px;transition:background .12s ease,color .12s ease}.filter-dropdown__option:hover{background:var(--overlay-light-05, rgba(255, 255, 255, .05));color:var(--text-primary, #e8dcc8)}.filter-dropdown__option--active{color:var(--fantasy-gold, #c9a227)}.filter-dropdown__option--clear{font-style:italic;border-bottom:1px solid var(--overlay-light-05, rgba(255,255,255,.05));margin-bottom:var(--space-1)}.catalogue-main{min-width:0;padding:0 var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.catalogue-tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--fantasy-border, rgba(201, 162, 39, .15));padding-bottom:0}.catalogue-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, #a09070);font-size:var(--font-size-base, .9rem);padding:var(--space-3) var(--space-4);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px;font-family:var(--font-fantasy-title)}.catalogue-tab:hover{color:var(--text-primary, #e8dcc8)}.catalogue-tab--active{color:var(--fantasy-gold, #c9a227);border-bottom-color:var(--fantasy-gold, #c9a227)}.catalogue-tracks__toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.catalogue-tracks__search{flex:1;min-width:200px;max-width:300px;background:var(--surface-primary, #201a12);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));color:var(--text-primary, #e8dcc8);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-sm)}.catalogue-tracks__search:focus{outline:none;border-color:var(--fantasy-gold, #c9a227)}.catalogue-tracks__count{font-size:var(--font-size-sm);color:var(--text-secondary, #a09070);white-space:nowrap}.catalogue-tracks__table-wrap{overflow-x:auto}.catalogue-tracks__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.catalogue-tracks__table th{text-align:left;padding:var(--space-2) var(--space-3);font-family:var(--font-fantasy-title);font-size:var(--font-size-xs);color:var(--fantasy-gold, #c9a227);border-bottom:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));white-space:nowrap}.catalogue-tracks__table .th-play{width:40px}.catalogue-tracks__table .th-actions{width:80px;text-align:right}.track-row td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--overlay-light-05, rgba(255, 255, 255, .04));color:var(--text-primary, #e8dcc8);vertical-align:middle}.track-row:hover td{background:var(--overlay-light-05, rgba(255, 255, 255, .04))}.track-row--active td{background:var(--fantasy-gold-subtle, rgba(201, 162, 39, .07))}.track-row--skeleton td{padding:var(--space-2) var(--space-3)}.skeleton-line{display:block;height:14px;border-radius:4px;background:linear-gradient(90deg,var(--overlay-light-05, rgba(255,255,255,.04)) 25%,rgba(255,255,255,.08) 50%,var(--overlay-light-05, rgba(255,255,255,.04)) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.track-row__play{width:40px;text-align:center}.track-row__play-btn{background:none;border:none;color:var(--text-secondary, #a09070);cursor:pointer;font-size:14px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.track-row__play-btn:hover{color:var(--fantasy-gold, #c9a227);background:var(--fantasy-gold-subtle, rgba(201, 162, 39, .1))}.track-row__play-btn--playing{color:var(--fantasy-gold, #c9a227)}.track-row__title-link{color:var(--text-primary, #e8dcc8);text-decoration:none;transition:color .15s ease}.track-row__title-link:hover{color:var(--fantasy-gold, #c9a227)}.track-row__badge{display:inline-block;margin-left:var(--space-2);font-size:var(--font-size-xs);background:var(--fantasy-gold-subtle, rgba(201, 162, 39, .15));color:var(--fantasy-gold, #c9a227);border-radius:3px;padding:0 var(--space-1)}.track-row__badge--btn{border:none;cursor:pointer;font-family:inherit;letter-spacing:inherit;vertical-align:middle;transition:background .15s ease,color .15s ease}.track-row__badge--btn:hover,.track-row__badge--expanded{background:#c9a22747}.track-row__badge--owned{background:#40c05726;color:#40c057}.track-row__owned-check{color:#40c057;font-size:13px;margin-right:var(--space-1);font-weight:700}.track-row__source-link{background:none;border:none;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;color:var(--text-secondary);text-decoration:none}.track-row__source-link:hover{color:var(--fantasy-gold)}.track-row__cell{color:var(--text-secondary, #a09070)}.track-row__type{font-size:var(--font-size-xs);border-radius:3px;padding:2px var(--space-2);text-transform:uppercase}.track-row__type--music{background:#58a0ff1f;color:#7ab4ff}.track-row__type--ambience{background:#78c8781f;color:#8ecf8e}.track-row__type--sfx{background:#ffa03c1f;color:#ffa03c}.track-row__genre{font-size:var(--font-size-xs)}.track-row__duration{font-variant-numeric:tabular-nums;font-size:var(--font-size-xs);white-space:nowrap}.track-row__actions{text-align:right;white-space:nowrap}.track-row__action-btn{background:none;border:1px solid var(--fantasy-border, rgba(201, 162, 39, .2));color:var(--text-secondary, #a09070);font-size:var(--font-size-xs);padding:2px var(--space-2);border-radius:3px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;margin-left:var(--space-1);transition:color .15s ease,border-color .15s ease}.track-row__action-btn:hover{color:var(--fantasy-gold, #c9a227);border-color:var(--fantasy-gold, #c9a227)}.track-row__action-btn--buy{border-color:var(--fantasy-gold, #c9a227);color:var(--fantasy-gold, #c9a227)}.track-row__action-btn--signin{border-color:var(--fantasy-border, rgba(201, 162, 39, .2))}.catalogue-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-4) 0}.catalogue-pagination__btn{background:none;border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));color:var(--text-secondary, #a09070);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm, 4px);cursor:pointer;font-size:var(--font-size-sm);transition:color .15s ease,border-color .15s ease}.catalogue-pagination__btn:hover:not(:disabled){color:var(--fantasy-gold);border-color:var(--fantasy-gold)}.catalogue-pagination__btn:disabled{opacity:.35;cursor:default}.catalogue-pagination__label{font-size:var(--font-size-sm);color:var(--text-secondary, #a09070)}.catalogue-artists{display:flex;flex-direction:column;gap:var(--space-3)}.artist-card{display:flex;align-items:center;gap:var(--space-4);background:var(--surface-primary, #201a12);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .1));border-radius:var(--radius-sm, 4px);padding:var(--space-3) var(--space-4);transition:border-color .15s ease,background .15s ease}.artist-card:hover{border-color:#c9a2274d;background:var(--overlay-light-05, rgba(255, 255, 255, .02))}.artist-card__avatar{width:44px;height:44px;border-radius:50%;background:var(--fantasy-gold-subtle, rgba(201, 162, 39, .15));color:var(--fantasy-gold, #c9a227);font-family:var(--font-fantasy-title);font-size:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.artist-card__info{flex:1;display:flex;flex-direction:column;gap:2px}.artist-card__name{font-size:var(--font-size-base, .9rem);color:var(--text-primary, #e8dcc8)}.artist-card__count{font-size:var(--font-size-xs);color:var(--text-secondary, #a09070)}.artist-card__btn{background:none;border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));color:var(--text-secondary);font-size:var(--font-size-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);cursor:pointer;transition:color .15s ease,border-color .15s ease}.artist-card__btn:hover{color:var(--fantasy-gold);border-color:var(--fantasy-gold)}.catalogue-albums{display:flex;flex-direction:column;gap:var(--space-3)}.album-row{display:flex;align-items:flex-start;gap:var(--space-5);background:var(--surface-primary, #201a12);border:1px solid var(--fantasy-border, rgba(201, 162, 39, .1));border-radius:var(--radius-sm, 4px);padding:var(--space-5);min-height:140px;transition:border-color .15s ease}.album-row:hover{border-color:#c9a2274d}.album-row__cover{width:110px;height:110px;object-fit:cover;border-radius:var(--radius-sm, 4px);flex-shrink:0}.album-row__cover--placeholder{display:flex;align-items:center;justify-content:center;background:var(--surface-sidebar, #1a1610);color:var(--fantasy-gold, #c9a227);font-size:36px}.album-row__info{flex:1;display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.album-row__title{font-size:1.05rem;font-family:var(--font-fantasy-title);color:var(--text-primary, #e8dcc8);font-weight:600}.album-row__meta{font-size:var(--font-size-xs);color:var(--text-secondary, #a09070)}.album-row__desc{font-size:var(--font-size-sm);color:var(--text-secondary, #a09070);margin:0;white-space:pre-wrap;word-break:break-word}.album-row__actions{display:flex;flex-direction:column;gap:var(--space-2);flex-shrink:0;align-items:stretch;min-width:148px}.album-row__btn{background:none;border:1px solid var(--fantasy-border, rgba(201, 162, 39, .25));color:var(--text-secondary);font-size:var(--font-size-xs);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm, 4px);cursor:pointer;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);transition:color .15s ease,border-color .15s ease}.album-row__btn:hover{color:var(--fantasy-gold);border-color:var(--fantasy-gold)}.album-row__btn--buy{background:var(--fantasy-gold, #c9a227);border-color:var(--fantasy-gold, #c9a227);color:#1a1410;font-weight:600}.album-row__btn--buy:hover{background:var(--fantasy-gold, #c9a227);color:#1a1410;filter:brightness(1.1)}.album-row__err{font-size:var(--font-size-xs);color:#e05c5c}.album-row__zip{display:flex;flex-direction:column;gap:var(--space-2)}.variant-row td{padding:var(--space-1) var(--space-3);border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-secondary, #a09070);vertical-align:middle;background:#00000024}.variant-row:hover td{background:#00000038}.variant-row--active td{background:var(--fantasy-gold-subtle, rgba(201, 162, 39, .05))}.variant-row__title{display:flex;align-items:center;gap:var(--space-2)}.variant-row__indent{color:var(--text-muted, #6a6050);font-size:var(--font-size-xs);flex-shrink:0;padding-left:var(--space-4)}.variant-row__version-label{font-size:var(--font-size-xs);background:#c9a2271f;color:var(--fantasy-gold, #c9a227);border-radius:3px;padding:1px 6px;white-space:nowrap;flex-shrink:0}.variant-row__title-link{font-size:var(--font-size-sm);color:var(--text-secondary, #a09070)}.variant-row__title-link:hover{color:var(--fantasy-gold, #c9a227)}.variant-row__loading-cell,.variant-row__empty-cell{padding:var(--space-2) var(--space-3) var(--space-2) 52px;color:var(--text-muted, #6a6050);font-size:var(--font-size-xs);font-style:italic;background:#00000024}.admin-settings__tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--fantasy-border, rgba(201, 162, 39, .15));margin:var(--space-3) 0 var(--space-4);padding-bottom:0}.admin-settings__tab{background:none;border:none;border-bottom:2px solid transparent;padding:var(--space-3) var(--space-4);font-size:var(--font-size-base, .9rem);font-family:var(--font-fantasy-title);color:var(--text-secondary, #a09070);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.admin-settings__tab:hover{color:var(--text-primary, #e8dcc8)}.admin-settings__tab--active{color:var(--fantasy-gold, #c9a227);border-bottom-color:var(--fantasy-gold, #c9a227)}.admin-settings__toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.admin-settings__default-group{display:flex;align-items:center;gap:var(--space-2, .5rem);margin-left:auto}.admin-settings__add-btn{padding:.4rem 1rem;border:1px solid var(--fantasy-gold, #c9a227);border-radius:var(--radius-sm, 4px);background:transparent;color:var(--fantasy-gold, #c9a227);font-weight:600;cursor:pointer}.admin-settings__add-btn:hover{background:#c9a2271a}.admin-settings__thumb{width:36px;height:36px;border-radius:var(--radius-sm, 4px);object-fit:cover;background:var(--surface-2, #1c1a17)}.admin-settings__thumb--round{border-radius:50%}.admin-settings__chip-list{display:flex;flex-wrap:wrap;gap:.5rem}.admin-settings__chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .6rem;border:1px solid var(--border-color, #3a352c);border-radius:999px;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8)}.admin-settings__chip-del{background:none;border:none;color:#ff6b6b;cursor:pointer;font-size:1rem;line-height:1;padding:0}.admin-modal__field{margin-bottom:var(--space-3)}.admin-modal__input,.admin-modal__select{width:100%;padding:.5rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-family:inherit}.admin-modal__btn--save{background:#2f9e44;color:#fff}.admin-modal__btn--save:disabled{opacity:.5;cursor:default}.admin-modal__btn--danger{background:#c92a2a;color:#fff}.admin-settings__del-btn{border:1px solid #c92a2a;border-radius:var(--radius-sm, 4px);background:transparent;color:#ff6b6b;cursor:pointer;padding:.2rem .6rem;margin-left:.4rem}.admin-settings__del-btn:hover{background:#c92a2a1f}.admin-files{margin-top:var(--space-3)}.admin-files__title{color:var(--fantasy-gold, #c9a227);font-size:var(--font-size-sm);margin:0 0 .5rem}.admin-files__row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--border-color, #3a352c);font-size:var(--font-size-sm)}.admin-files__name{flex:1;overflow-wrap:anywhere}.admin-files__type{color:var(--text-secondary, #a09070);font-size:var(--font-size-xs)}.admin-files__size{color:var(--text-secondary, #a09070);font-size:var(--font-size-xs);white-space:nowrap}.admin-files__action{background:none;border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-secondary, #a09070);cursor:pointer;padding:.2rem .6rem}.admin-files__action:hover{color:var(--fantasy-gold, #c9a227);border-color:var(--fantasy-gold, #c9a227)}.admin-files__action--del:hover{color:#ff6b6b;border-color:#c92a2a}.admin-files__upload{margin-top:.6rem;display:flex;gap:.5rem;align-items:center}.woo-tab__pending{display:flex;align-items:center;gap:.75rem;margin:var(--space-3, .75rem) 0;color:var(--text-secondary, #a09070)}.woo-product-field{position:relative}.woo-product-field__list{position:absolute;z-index:10;left:0;right:0;margin:.15rem 0 0;padding:0;list-style:none;max-height:12rem;overflow-y:auto;background:var(--surface-1, #2a2418);border:1px solid var(--border, #4a3f28);border-radius:var(--radius-sm, 4px);box-shadow:0 6px 16px #00000059}.woo-product-field__option{display:block;width:100%;padding:.4rem .6rem;border:0;background:transparent;color:var(--text-primary, #e8dcc0);text-align:left;cursor:pointer}.woo-product-field__option:hover{background:var(--surface-2, #3a3220)}.admin-settings__count-link{background:none;border:none;padding:0;color:var(--fantasy-gold, #c9a227);font:inherit;cursor:pointer;text-decoration:underline}.admin-settings__count-link:hover{color:var(--text-primary, #e8dcc8)}.admin-settings__woo-link{color:var(--fantasy-gold, #c9a227);text-decoration:none;font-size:1rem}.admin-settings__woo-link:hover{color:var(--text-primary, #e8dcc8)}.access-form{max-width:680px;margin-bottom:var(--space-4)}.access-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.access-form__notes{width:100%}.admin-settings__search{position:relative}.admin-settings__search .admin-modal__input{width:100%}.admin-settings__typeahead{position:absolute;z-index:10;left:0;right:0;margin:0;padding:0;list-style:none;background:var(--surface-2, #1c1a17);border:1px solid var(--fantasy-gold, #c9a227);border-radius:var(--radius-sm, 4px);max-height:240px;overflow-y:auto}.admin-settings__typeahead button{display:block;width:100%;text-align:left;padding:.4rem .6rem;background:transparent;border:0;color:var(--text-primary, #e8dcc8);cursor:pointer}.admin-settings__typeahead button:hover{background:#c9a2271f}.admin-settings__pager{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.admin-settings__pager button{padding:.3rem .8rem;border:1px solid var(--fantasy-gold, #c9a227);border-radius:var(--radius-sm, 4px);background:transparent;color:var(--fantasy-gold, #c9a227);cursor:pointer}.admin-settings__pager button:disabled{opacity:.4;cursor:default}.audio-view__toolbar{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3)}.my-tracks{width:100%;border-collapse:collapse;margin-top:var(--space-3)}.my-tracks thead th{text-align:left;padding:.5rem .6rem;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--fantasy-gold, #c9a227);border-bottom:1px solid var(--border-color, #3a352c)}.my-tracks__row{border-bottom:1px solid var(--border-color, #3a352c)}.my-tracks__cell{padding:.5rem .6rem;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8);vertical-align:top}.my-tracks__cell--title{min-width:220px}.my-tracks__title{display:block;font-weight:600}.my-tracks__reason{display:block;margin-top:.25rem;color:#ff6b6b;font-size:var(--font-size-xs)}.my-tracks__resubmit-btn{margin-top:.4rem;padding:.2rem .7rem;background:transparent;border:1px solid var(--fantasy-gold, #c9a227);border-radius:var(--radius-sm, 4px);color:var(--fantasy-gold, #c9a227);font-size:var(--font-size-xs);font-weight:600;cursor:pointer}.my-tracks__resubmit-btn:hover{background:#c9a2271f}.my-tracks__badge{display:inline-block;padding:.1rem .55rem;border-radius:999px;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;border:1px solid currentColor}.my-tracks__badge--processing{color:var(--fantasy-gold, #c9a227)}.my-tracks__badge--draft{color:#74a9d8}.my-tracks__badge--rejected{color:#ff6b6b}.my-tracks__badge--published{color:#2f9e44}.my-tracks__badge--archived{color:var(--text-secondary, #a09070)}.admin-modal__backdrop{position:fixed;inset:0;overflow:hidden;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.admin-modal__btn:disabled{opacity:.5;cursor:default}.my-tracks__editor{width:min(640px,94vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.admin-modal__body{overflow-y:auto;flex:1;max-height:calc(80vh - 120px);padding-bottom:var(--space-3)}.my-tracks__submit{background:#2f9e44;color:#fff}.admin-queue{width:100%;border-collapse:collapse;margin-top:var(--space-3)}.admin-queue thead th{text-align:left;padding:.5rem .6rem;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--fantasy-gold, #c9a227);border-bottom:1px solid var(--border-color, #3a352c)}.admin-queue__row{border-bottom:1px solid var(--border-color, #3a352c)}.admin-queue__row--active{background:#c9a22714}.admin-queue__cell{padding:.5rem .6rem;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8);vertical-align:middle}.admin-queue__cell--play{width:40px}.admin-queue__cell--title{min-width:140px}.admin-queue__cell--wrap{max-width:180px;overflow-wrap:break-word;word-break:break-word;font-size:var(--font-size-xs);color:var(--text-secondary, #a09070)}.admin-queue__cell--actions{white-space:nowrap;text-align:right}.admin-queue__play-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--fantasy-gold, #c9a227);background:transparent;color:var(--fantasy-gold, #c9a227);cursor:pointer}.admin-queue__expand{display:inline-flex;align-items:center;gap:.35rem;background:none;border:none;color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);cursor:pointer;padding:0}.admin-queue__expand-icon{color:var(--fantasy-gold, #c9a227)}.admin-queue__rejected-badge{margin-left:.5rem;font-size:var(--font-size-xs);color:#ff6b6b;border:1px solid #c92a2a;border-radius:999px;padding:.05rem .4rem}.admin-queue__btn{padding:.3rem .8rem;margin-left:.4rem;border:none;border-radius:var(--radius-sm, 4px);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.admin-queue__btn--publish{background:#2f9e44;color:#fff}.admin-queue__btn--reject{background:#c92a2a;color:#fff}.admin-queue__btn--archive{background:transparent;color:var(--text-secondary, #a09070);border:1px solid var(--border-color, #3a352c)}.admin-queue__btn--archive:hover{color:var(--text-primary, #e8dcc8);border-color:var(--fantasy-gold, #c9a227)}.admin-queue__detail-row td{background:var(--surface-1, #17150f)}.admin-queue__detail{padding:.75rem 1rem}.admin-queue__prior-reason{margin:0 0 .6rem;color:#ff6b6b;font-size:var(--font-size-sm)}.admin-queue__meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.5rem}.admin-queue__meta-row{display:flex;gap:.5rem;font-size:var(--font-size-sm)}.admin-queue__meta-label{color:var(--fantasy-gold, #c9a227);min-width:90px}.admin-queue__meta-value{color:var(--text-primary, #e8dcc8)}.admin-queue__pager{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);color:var(--text-secondary, #a09070);font-size:var(--font-size-sm)}.admin-queue__pager button{padding:.3rem .8rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);cursor:pointer}.admin-queue__pager button:disabled{opacity:.5;cursor:default}.admin-modal__backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.admin-modal{width:min(480px,92vw);background:var(--surface-1, #17150f);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);padding:var(--space-4)}.admin-modal__title{margin:0 0 .25rem;color:var(--fantasy-gold, #c9a227)}.admin-modal__subtitle{margin:0 0 var(--space-3);color:var(--text-secondary, #a09070)}.admin-modal__label{display:block;margin-bottom:.35rem;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8)}.admin-modal__checkbox{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8);cursor:pointer}.admin-modal__checkbox input[type=checkbox]{flex-shrink:0;accent-color:var(--fantasy-gold, #c9a227)}.admin-modal__hint{margin:.25rem 0 0;font-size:var(--font-size-xs);color:var(--text-secondary, #a09070)}.admin-modal__warning{margin:.5rem 0 0;padding:.5rem .75rem;font-size:var(--font-size-xs);color:var(--fantasy-gold, #c9a227);background:#c9a22714;border:1px solid rgba(201,162,39,.35);border-radius:var(--radius-sm, 4px)}.release-grant-batches{margin-top:.75rem}.release-grant-batches__list{list-style:none;margin:.25rem 0 0;padding:0}.release-grant-batches__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.4rem 0;font-size:var(--font-size-xs);color:var(--text-secondary, #a09070);border-top:1px solid var(--border-color, #3a352c)}.admin-modal__select-btn{display:block;text-align:left;cursor:pointer;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);padding:.5rem;width:100%;font-family:inherit;font-size:inherit}.admin-modal__textarea{width:100%;padding:.5rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-family:inherit;resize:vertical}.admin-modal__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:var(--space-3)}.admin-modal__btn{padding:.4rem 1rem;border:none;border-radius:var(--radius-sm, 4px);font-weight:600;cursor:pointer}.admin-modal__btn--cancel{background:var(--surface-2, #1c1a17);color:var(--text-primary, #e8dcc8);border:1px solid var(--border-color, #3a352c)}.admin-modal__btn--confirm{background:#c92a2a;color:#fff}.admin-modal__btn--confirm:disabled{opacity:.5;cursor:default}.admin-modal__btn--danger{background:#2f9e44;color:#fff}.admin-modal__btn--danger:disabled{opacity:.5;cursor:default}.admin-modal__error{color:#ff6b6b;font-size:var(--font-size-sm);margin:0 0 var(--space-2)}.admin-modal__picker{margin-top:.35rem;border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);background:var(--surface-2, #1c1a17);overflow:hidden}.admin-modal__picker-search{border:none;border-bottom:1px solid var(--border-color, #3a352c);border-radius:0;width:100%;box-sizing:border-box}.admin-modal__picker-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.admin-modal__picker-item{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;width:100%;text-align:left;padding:.45rem .7rem;background:none;border:none;cursor:pointer;color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm)}.admin-modal__picker-item:hover,.admin-modal__picker-item--selected{background:#c9a2271f}.admin-modal__picker-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-modal__picker-meta{flex:0 0 auto;color:var(--fantasy-gold, #c9a227);font-size:var(--font-size-xs)}.admin-modal__picker-id{color:var(--text-secondary, #a09070)}.admin-modal__picker-none{color:var(--text-secondary, #a09070);font-style:italic}.admin-modal__picker-empty{padding:.5rem .7rem;color:var(--text-secondary, #a09070);font-size:var(--font-size-sm)}.admin-settings__muted{color:var(--text-secondary, #a09070);font-style:italic;font-size:var(--font-size-xs)}.licenses-panel{max-width:640px;margin-top:var(--space-4)}.licenses-panel__select-wrap{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.licenses-panel__select{flex:1 1 auto;padding:.5rem .75rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-family:inherit;font-size:var(--font-size-base, .9rem);cursor:pointer}.licenses-panel__price{flex:0 0 auto;color:var(--fantasy-gold, #c9a227);font-size:var(--font-size-sm);white-space:nowrap}.licenses-panel__detail{background:var(--surface-1, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);padding:var(--space-4)}.licenses-panel__description{margin:0 0 var(--space-3);line-height:1.65;color:var(--text-primary, #e8dcc8)}.licenses-panel__terms{margin-top:var(--space-3)}.licenses-panel__terms-label{margin:0 0 var(--space-2);font-size:var(--font-size-sm);color:var(--text-secondary, #a09070);text-transform:uppercase;letter-spacing:.04em}.licenses-panel__terms-body{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.7;font-family:inherit;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8);background:var(--surface-2, #141210);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);padding:var(--space-3)}.licenses-panel__actions{margin-top:var(--space-3)}.audio-view__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3)}.audio-view__search{flex:1 1 auto;max-width:320px;padding:.4rem .6rem;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e8dcc8);font-family:inherit;font-size:var(--font-size-sm)}.audio-view__publish-all{padding:.4rem 1rem;background:#2f9e44;color:#fff;border:none;border-radius:var(--radius-sm, 4px);font-weight:600;cursor:pointer}.audio-view__publish-all:disabled{opacity:.5;cursor:default}.audio-state--success{color:#51cf66}.admin-import__toolbar{display:flex;align-items:center;gap:var(--space-3, .75rem);margin-bottom:var(--space-4);flex-wrap:wrap}.admin-import__hint{color:var(--text-muted, #9a9280);font-size:var(--font-size-sm)}.admin-import__error{border-left:3px solid #c92a2a;background:#c92a2a1a;color:#ff6b6b;padding:.65rem 1rem;margin-bottom:var(--space-4);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-sm)}.admin-import__summary{background:var(--surface-1, #17150f);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);padding:var(--space-4);margin-bottom:var(--space-4)}.admin-import__summary h3{margin:0 0 var(--space-3) 0;font-size:var(--font-size-md);color:var(--fantasy-gold, #c9a227)}.admin-import__summary ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5)}.admin-import__summary li{font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8)}.admin-import__errors{background:var(--surface-1, #17150f);border:1px solid #c92a2a;border-radius:var(--radius-md, 8px);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.admin-import__errors h4{margin:0 0 var(--space-2) 0;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:#ff6b6b}.admin-import__errors ul{margin:0;padding-left:1.25rem;font-size:var(--font-size-sm);color:var(--text-primary, #e8dcc8)}.admin-import__entities{margin-bottom:var(--space-5)}.admin-import__collapsible{border-bottom:1px solid var(--border-color, #3a352c)}.admin-import__collapsible-trigger{width:100%;text-align:left;background:none;border:none;padding:.65rem 0;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:var(--text-primary, #e8dcc8)}.admin-import__collapsible-trigger:hover{color:var(--fantasy-gold, #c9a227)}.admin-import__collapsible-icon{font-size:.75rem;color:var(--fantasy-gold, #c9a227)}.admin-import__collapsible-content{padding:.4rem 0 .9rem 1.25rem;margin:0;list-style:square;columns:2;font-size:var(--font-size-sm);color:var(--text-secondary, #a09070)}.admin-import__actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-color, #3a352c)}.admin-import__results{background:var(--surface-1, #17150f);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-md, 8px);padding:var(--space-5) var(--space-6);text-align:center}.admin-import__results h3{color:var(--fantasy-gold, #c9a227);margin:0 0 var(--space-3) 0;font-size:var(--font-size-md)}.admin-import__results p{color:var(--text-primary, #e8dcc8);font-size:var(--font-size-sm);margin:0}.admin-import__warnings{text-align:left;background:var(--surface-2, #1c1a17);border:1px solid var(--border-color, #3a352c);border-radius:var(--radius-sm, 4px);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0}.admin-import__warnings h4{margin:0 0 var(--space-2) 0;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--fantasy-gold, #c9a227)}.admin-import__warnings ul{margin:0;padding-left:1.25rem;font-size:var(--font-size-sm);color:var(--text-secondary, #a09070)}.text-danger{color:#ff6b6b;font-weight:600}.upload-dropzone--loading{opacity:.6;cursor:wait}:root{--z-sidebar: 200;--z-overlay: 250;--z-mobile-bar: 300}*{box-sizing:border-box;margin:0;padding:0}.App{display:flex;min-height:100vh}.sidebar{width:260px;background-color:var(--surface-sidebar);color:var(--fantasy-text);padding:var(--space-5) 0;box-shadow:2px 0 5px var(--overlay-dark-30);border-right:1px solid var(--fantasy-border);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:var(--z-sidebar)}.sidebar-mobile-bar,.mobile-overlay{display:none}.sidebar-header{padding:0 var(--space-5) var(--space-5);border-bottom:1px solid var(--overlay-light-05);margin-bottom:var(--space-5)}.sidebar-header h3{font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);color:var(--fantasy-gold);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.sidebar-tabs{list-style:none}.sidebar-tab{padding:var(--space-3) var(--space-5);cursor:pointer;transition:background-color .3s,color .3s;display:flex;align-items:center;color:var(--fantasy-text);border-left:3px solid transparent}.sidebar-tab:hover{background-color:var(--fantasy-gold-subtle);color:var(--fantasy-gold)}.sidebar-tab.active{background-color:var(--fantasy-gold-subtle);border-left:3px solid var(--fantasy-gold);color:var(--fantasy-gold)}.sidebar-tab-icon{margin-right:var(--space-2-5);width:20px;text-align:center}.sidebar__bottom{position:absolute;bottom:0;left:0;right:0}.App .sidebar>.sidebar__bottom{position:absolute}.sidebar-config-btn{width:100%;background:none;border:1px solid var(--fantasy-border);color:var(--fantasy-text);padding:var(--space-3) var(--space-5);border-radius:0;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);letter-spacing:.1em;text-transform:uppercase}.sidebar-config-btn:hover{background-color:var(--fantasy-gold-subtle);border-color:var(--fantasy-gold);color:var(--fantasy-gold)}.main-content{flex:1;padding:var(--space-5);overflow-y:auto;margin-left:260px}.promo-banner--bleed{margin-left:calc(-1 * var(--space-5));margin-right:calc(-1 * var(--space-5));margin-top:calc(-1 * var(--space-5));margin-bottom:var(--space-4)}.game-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-5);margin-bottom:var(--space-5);background-color:var(--surface-primary);padding:var(--space-5);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.game-info-item{text-align:center}.game-info-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-1)}.game-info-value{font-size:var(--font-size-xl);font-weight:700}.resources-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-5);margin:var(--space-5) 0}.resource-card{background-color:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);padding:var(--space-5);position:relative;overflow:hidden}.active-effects-card{display:flex;flex-direction:column}.active-effects-list{max-height:180px;overflow-y:auto;font-size:var(--font-size-sm)}.active-effects-empty{color:var(--text-secondary);font-style:italic;padding:var(--space-2-5) 0}.active-effects-table{width:100%;border-collapse:collapse}.active-effects-table th,.active-effects-table td{text-align:left;padding:var(--space-1) var(--space-px-6);border-bottom:1px solid var(--border-color)}.active-effects-table th{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--text-secondary);font-weight:600;position:sticky;top:0;background-color:var(--surface-secondary)}.active-effects-table .ae-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}.active-effects-table .ae-effect{white-space:nowrap;font-weight:600}.active-effects-table .ae-remaining{white-space:nowrap;color:var(--text-secondary);font-size:var(--font-size-xs)}.construction-queue-card{display:flex;flex-direction:column}.construction-queue-list{max-height:180px;overflow-y:auto;font-size:var(--font-size-sm)}.construction-queue-empty{color:var(--text-secondary);font-style:italic;padding:var(--space-2-5) 0}.resource-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);border-bottom:1px solid var(--border-color);padding-bottom:var(--space-2-5)}.resource-title{font-size:var(--font-size-lg);color:var(--text-secondary)}.resource-icon{font-size:var(--font-size-2xl)}.resource-value{font-size:1.8rem;font-weight:700;margin-bottom:var(--space-1)}.resource-unit{font-size:var(--font-size-sm);color:var(--text-secondary)}.resource-change{margin:var(--space-2-5) 0;font-weight:700}.resource-details{margin-top:var(--space-4);font-size:var(--font-size-sm)}.resource-detail-item{display:flex;justify-content:space-between;margin-bottom:var(--space-1)}.events-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4);margin-top:var(--space-4)}.month-name{font-weight:700;margin-bottom:var(--space-1)}.no-data-banner{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);background:var(--color-alert-danger-bg);border:1px solid var(--color-alert-danger-border);border-radius:var(--border-radius);color:var(--color-alert-danger-text);text-align:center;font-weight:var(--font-weight-bold)}.population-warning-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--fantasy-gold, #c9a227);border-radius:var(--radius-md, 8px);background:var(--fantasy-gold-12);color:var(--fantasy-text, inherit)}.population-warning-banner__text{flex:1}.population-warning-banner__dismiss{background:none;border:none;font-size:1.4em;line-height:1;cursor:pointer;color:inherit;padding:0 var(--space-2)}.population-warning-banner__dismiss:hover{opacity:.7}.dashboard-actions{display:flex;gap:var(--space-4);margin-bottom:var(--space-5);align-items:center}.next-cycle-btn{background:linear-gradient(135deg,var(--fantasy-gold) 0%,var(--gradient-header-end) 100%);color:var(--fantasy-text);border:none;padding:var(--space-3) var(--space-6);border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px var(--shadow-primary-xl)}.next-cycle-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px var(--shadow-primary-2xl)}.next-cycle-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.next-cycle-btn.is-flashing{animation:cycleBtnFlash .5s ease-out}@keyframes cycleBtnFlash{0%{box-shadow:0 4px 15px var(--shadow-primary-xl)}40%{box-shadow:0 0 24px 4px var(--fantasy-gold-90),0 4px 20px var(--fantasy-gold-60)}to{box-shadow:0 4px 15px var(--shadow-primary-xl)}}.edit-reserves-btn{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success) 100%);color:var(--fantasy-text);border:none;padding:var(--space-3) var(--space-6);border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px var(--shadow-btn-success-md)}.edit-reserves-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px var(--shadow-btn-success-lg)}.edit-reserves-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.tab-content h2{font-size:1.8rem;margin-bottom:var(--space-5);color:var(--text-primary);padding-bottom:var(--space-2-5);font-weight:500}.tab-content{display:none}.tab-content.active{display:block}.section{margin-bottom:var(--space-8)}@media(max-width:768px){.sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;max-height:80vh;padding:0;border-right:none;border-top:1px solid var(--fantasy-border);transform:translateY(100%);transition:transform var(--transition-base);z-index:var(--z-mobile-bar, 300)}.sidebar.is-open{transform:translateY(0)}.sidebar-header{display:none}.sidebar__bottom,.App .sidebar>.sidebar__bottom{position:static}.main-content{margin-left:0;padding-bottom:52px}.game-info{grid-template-columns:repeat(2,1fr)}.sidebar-mobile-bar{display:flex;align-items:center;justify-content:space-between;position:fixed;bottom:0;left:0;right:0;height:52px;background:var(--surface-sidebar);border-top:1px solid var(--fantasy-border);padding:0 var(--space-4);z-index:var(--z-mobile-bar, 300);gap:var(--space-3)}.sidebar-mobile-toggle{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;color:var(--fantasy-gold);font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);cursor:pointer;padding:0}.sidebar-mobile-menu-btn{display:flex;align-items:center;background:transparent;border:none;color:var(--fantasy-text);cursor:pointer;padding:var(--space-2)}.mobile-overlay{display:block;position:fixed;inset:0;background:var(--overlay-dark-50);z-index:calc(var(--z-mobile-bar, 300) - 1)}}:root,[data-theme=default]{--color-primary: #c9a84c;--color-primary-hover: #7a5f2a;--color-primary-light: rgba(201, 168, 76, .08);--color-secondary: #6b7280;--color-secondary-hover: #4b5563;--color-success: #059669;--color-success-hover: #047857;--color-success-dark: #218838;--color-warning: #d97706;--color-warning-hover: #b45309;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-info: #0891b2;--color-info-hover: #0e7490;--color-alert-danger-bg: rgba(220, 38, 38, .12);--color-alert-danger-border: rgba(220, 38, 38, .3);--color-alert-danger-text: #f87171;--color-alert-success-bg: rgba(5, 150, 105, .12);--color-alert-success-border: rgba(5, 150, 105, .3);--color-alert-success-text: #34d399;--color-alert-warning-bg: rgba(217, 119, 6, .12);--color-alert-warning-border: rgba(217, 119, 6, .3);--color-alert-warning-text: #fbbf24;--color-alert-info-bg: rgba(8, 145, 178, .12);--color-alert-info-border: rgba(8, 145, 178, .3);--color-alert-info-text: #38bdf8;--color-danger-light: rgba(220, 38, 38, .15);--color-danger-glow: rgba(220, 38, 38, .7);--color-warning-bg: rgba(217, 119, 6, .12);--color-warning-border: rgba(217, 119, 6, .5);--color-warning-text: #ffb74d;--danger-row-bg: rgba(220, 38, 38, .08);--danger-row-bg-hover: rgba(220, 38, 38, .14);--color-success-darker: #065f46;--color-danger-darker: #991b1b;--color-warning-darker: #92400e;--color-info-darker: #155e75;--color-secondary-darker: #334155;--color-disabled-bg: #9e9e9e;--color-disabled-hover: #757575;--color-tier-gold: #ffd700;--color-accent-coral: #ff6b6b;--color-crime-none: #059669;--color-crime-low: #d97706;--color-crime-moderate: #ea580c;--color-crime-high: #dc2626;--color-crime-critical: var(--fantasy-text);--accent-event-crime: #26dea1;--accent-event-moral: #9b59b6;--accent-event-famine: #f39c12;--accent-event-population: #411adf;--accent-event-treasury: #8dcc2e;--accent-event-majority: #be23d0;--accent-event-building: #46d7e1;--accent-event-default: #bdc3c7;--event-color-population: #7c9cbf;--event-color-health: #8fbc8f;--event-color-celebration: #c9a84c;--event-color-conflict: #b05a5a;--event-color-tragedy: #8b6a3e;--event-color-infrastructure: #7a7a9a;--event-color-diplomatic: #5f8fa0;--event-color-spiritual: #9b7db5;--event-color-natural_event: #6b9e6b;--event-color-narrative: #888888;--event-color-migration: #d49464;--font-fantasy-title: "Cinzel", serif;--font-fantasy-body: "Cormorant Garamond", serif;--fantasy-gold: #c9a84c;--fantasy-gold-dim: #7a5f2a;--fantasy-gold-subtle: rgba(201, 168, 76, .08);--fantasy-border: #2e2010;--fantasy-border-focus: #8b6f47;--fantasy-text: #e8e0d0;--fantasy-text-muted: #7a7060;--texture-sidebar: none;--texture-body: url(/apps/fcs/assets/rockywall-CnFlOpi3.webp);--texture-body-opacity: .4;--page-bg: #0e0b08;--surface-primary: #1a1208;--surface-secondary: #201608;--surface-tertiary: #261c0a;--surface-sidebar: #110d05;--surface-overlay: rgba(0, 0, 0, .7);--text-primary: #e8e0d0;--text-secondary: #a89880;--text-muted: #7a7060;--text-inverse: #0e0b08;--text-inverse-secondary: rgba(232, 224, 208, .75);--border-color: #2e2010;--border-color-strong: #4a3520;--border-radius-sm: .25rem;--border-radius: .5rem;--border-radius-lg: .75rem;--border-radius-circle: 50%;--border-width: 1px;--space-px-1: 1px;--space-px-2: 2px;--space-px-6: 6px;--space-1: .25rem;--space-2: .5rem;--space-2-5: .625rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--shadow-dark-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-dark-md: 0 2px 8px rgba(0, 0, 0, .4);--shadow-dark-lg: 0 4px 16px rgba(0, 0, 0, .5);--shadow-dark-xl: 0 6px 20px rgba(0, 0, 0, .4);--shadow-inset-sm: inset 0 2px 4px rgba(0, 0, 0, .3);--shadow-medium: var(--shadow-dark-md);--z-modal: 1000;--z-modal-nested: 1001;--transition-base: .2s ease;--transition-slow: .3s ease;--modal-header-gradient: var(--surface-tertiary);--gradient-header-end: var(--surface-tertiary);--focus-ring-primary: rgba(201, 168, 76, .25);--shadow-primary-sm: rgba(201, 168, 76, .1);--shadow-primary-md: rgba(201, 168, 76, .2);--shadow-primary-lg: rgba(201, 168, 76, .3);--shadow-primary-xl: rgba(201, 168, 76, .4);--shadow-primary-2xl: rgba(201, 168, 76, .6);--shadow-glow-primary-md: rgba(201, 168, 76, .5);--shadow-glow-primary-lg: rgba(201, 168, 76, .7);--shadow-danger-md: rgba(220, 38, 38, .2);--shadow-danger-lg: rgba(220, 38, 38, .3);--shadow-warning-md: rgba(217, 119, 6, .2);--shadow-warning-lg: rgba(217, 119, 6, .3);--shadow-glow-warning-lg: rgba(217, 119, 6, .8);--shadow-success-md: rgba(5, 150, 105, .2);--shadow-success-lg: rgba(5, 150, 105, .3);--shadow-info-md: rgba(8, 145, 178, .2);--shadow-info-lg: rgba(8, 145, 178, .3);--shadow-secondary-md: rgba(100, 116, 139, .2);--shadow-secondary-lg: rgba(100, 116, 139, .3);--btn-primary-bg: var(--fantasy-gold-dim);--btn-primary-fg: var(--surface-primary);--btn-primary-border: var(--fantasy-gold);--btn-primary-bg-hover: var(--fantasy-gold);--btn-primary-border-hover: var(--fantasy-gold);--btn-secondary-bg: var(--surface-tertiary);--btn-secondary-fg: var(--fantasy-text);--btn-secondary-border: var(--fantasy-border-focus);--btn-secondary-bg-hover: var(--border-color-strong);--btn-secondary-border-hover: var(--fantasy-gold);--btn-secondary-fg-hover: var(--fantasy-gold);--btn-edit-bg: rgba(217, 119, 6, .2);--btn-edit-fg: #fbbf24;--btn-edit-border: rgba(217, 119, 6, .4);--btn-edit-bg-hover: rgba(217, 119, 6, .35);--btn-success-bg: rgba(5, 150, 105, .2);--btn-success-fg: #34d399;--btn-success-border: rgba(5, 150, 105, .4);--btn-success-bg-hover: rgba(5, 150, 105, .35);--btn-danger-bg: rgba(200, 35, 35, .32);--btn-danger-fg: #fca5a5;--btn-danger-border: rgba(200, 35, 35, .6);--btn-danger-bg-hover: rgba(200, 35, 35, .5);--btn-info-bg: rgba(8, 145, 178, .2);--btn-info-fg: #38bdf8;--btn-info-border: rgba(8, 145, 178, .4);--btn-info-bg-hover: rgba(8, 145, 178, .35);--btn-warning-bg: rgba(217, 119, 6, .2);--btn-warning-fg: #fbbf24;--btn-warning-border: rgba(217, 119, 6, .4);--btn-warning-bg-hover: rgba(217, 119, 6, .35);--overlay-dark-05: rgba(0, 0, 0, .05);--overlay-dark-10: rgba(0, 0, 0, .1);--overlay-dark-25: rgba(0, 0, 0, .25);--overlay-dark-30: rgba(0, 0, 0, .3);--overlay-dark-35: rgba(0, 0, 0, .35);--overlay-dark-40: rgba(0, 0, 0, .4);--overlay-dark-45: rgba(0, 0, 0, .45);--overlay-dark-50: rgba(0, 0, 0, .5);--overlay-dark-60: rgba(0, 0, 0, .6);--overlay-dark-65: rgba(0, 0, 0, .65);--overlay-dark-70: rgba(0, 0, 0, .7);--overlay-dark-80: rgba(0, 0, 0, .8);--overlay-dark-95: rgba(0, 0, 0, .95);--overlay-light-03: rgba(255, 255, 255, .03);--overlay-light-05: rgba(255, 255, 255, .05);--overlay-light-08: rgba(255, 255, 255, .08);--overlay-light-10: rgba(255, 255, 255, .1);--overlay-light-15: rgba(255, 255, 255, .15);--overlay-light-20: rgba(255, 255, 255, .2);--overlay-light-30: rgba(255, 255, 255, .3);--overlay-light-45: rgba(255, 255, 255, .45);--overlay-light-80: rgba(255, 255, 255, .8);--page-bg-ambient: radial-gradient(ellipse at 30% 20%, rgba(120, 80, 20, .1) 0%, transparent 45%), radial-gradient(ellipse at 70% 80%, rgba(80, 40, 10, .12) 0%, transparent 45%), radial-gradient(ellipse at 50% 50%, rgba(160, 100, 30, .04) 0%, transparent 65%);--fantasy-gold-05: rgba(201, 168, 76, .05);--fantasy-gold-12: rgba(201, 168, 76, .12);--fantasy-gold-15: rgba(201, 168, 76, .15);--fantasy-gold-28: rgba(201, 168, 76, .28);--fantasy-gold-60: rgba(201, 168, 76, .6);--fantasy-gold-90: rgba(201, 168, 76, .9);--rarity-common: #aaaaaa;--rarity-uncommon: #6acd6a;--rarity-rare: #5aa6ff;--rarity-very-rare: #c87bff;--rarity-mythic: #ff9b6b;--rarity-legendary: var(--fantasy-gold);--stat-magic: #c084fc;--stat-magic-bg: rgba(147, 51, 234, .15);--stat-magic-bg-strong: rgba(147, 51, 234, .12);--stat-magic-border: rgba(147, 51, 234, .35);--stat-magic-border-strong: rgba(147, 51, 234, .45);--stat-physical: #7ad0ff;--stat-physical-bg: rgba(120, 200, 255, .1);--stat-physical-border: rgba(120, 200, 255, .35);--stat-danger: #ff7a7a;--stat-danger-bg: rgba(220, 50, 50, .12);--stat-danger-border: rgba(220, 50, 50, .45)}[data-theme=elven]{--color-primary: #5a7a38;--color-primary-hover: #4a6830;--color-primary-light: rgba(122, 158, 82, .08);--fantasy-gold: #8aaa62;--fantasy-gold-dim: #4a6830;--fantasy-gold-subtle: rgba(122, 158, 82, .08);--fantasy-border: #1e2e1a;--fantasy-border-focus: #4a7035;--fantasy-text: #ccd9bc;--fantasy-text-muted: #6a8558;--page-bg: #0a0c08;--surface-primary: #120f09;--surface-secondary: #131508;--surface-tertiary: #171a0c;--surface-sidebar: #070a06;--text-primary: #ccd9bc;--text-secondary: #8a9e78;--text-muted: #566845;--text-inverse: #090d08;--text-inverse-secondary: rgba(204, 217, 188, .75);--border-color: #1e2e1a;--border-color-strong: #2a4020;--focus-ring-primary: rgba(122, 158, 82, .25);--shadow-primary-sm: rgba(122, 158, 82, .1);--shadow-primary-md: rgba(122, 158, 82, .2);--shadow-primary-lg: rgba(122, 158, 82, .3);--shadow-primary-xl: rgba(122, 158, 82, .4);--shadow-primary-2xl: rgba(122, 158, 82, .6);--shadow-glow-primary-md: rgba(122, 158, 82, .5);--shadow-glow-primary-lg: rgba(122, 158, 82, .7);--fantasy-gold-05: rgba(122, 158, 82, .05);--fantasy-gold-12: rgba(122, 158, 82, .12);--fantasy-gold-15: rgba(122, 158, 82, .15);--fantasy-gold-28: rgba(122, 158, 82, .28);--fantasy-gold-60: rgba(122, 158, 82, .6);--fantasy-gold-90: rgba(122, 158, 82, .9);--page-bg-ambient: radial-gradient(ellipse 90% 70% at 50% 0%, rgba(40, 70, 25, .18) 0%, transparent 60%), radial-gradient(ellipse 70% 60% at 85% 100%, rgba(25, 50, 15, .12) 0%, transparent 55%);--texture-sidebar: url(/apps/fcs/assets/bark2-DpThtZI0.jpg);--texture-body: url(/apps/fcs/assets/tree_bark-B-ARtmdn.png);--texture-body-opacity: .4}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5;border:var(--border-width) solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.btn:focus{outline:2px solid var(--fantasy-gold);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn--primary,.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border:1px solid var(--btn-primary-border)}.btn--primary:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover);border-color:var(--btn-primary-border-hover);transform:translateY(-1px)}.btn--secondary,.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg);border:1px solid var(--btn-secondary-border)}.btn--secondary:hover:not(:disabled),.btn-secondary:hover:not(:disabled){border-color:var(--btn-secondary-border-hover);color:var(--btn-secondary-fg-hover);transform:translateY(-1px)}.btn--edit,.btn-edit{background:var(--btn-edit-bg);color:var(--btn-edit-fg);border:1px solid var(--btn-edit-border)}.btn--edit:hover:not(:disabled),.btn-edit:hover:not(:disabled){background:var(--btn-edit-bg-hover);transform:translateY(-1px)}.btn--success,.btn-success,.btn-constructive{background:var(--btn-success-bg);color:var(--btn-success-fg);border:1px solid var(--btn-success-border)}.btn--success:hover:not(:disabled),.btn-success:hover:not(:disabled),.btn-constructive:hover:not(:disabled){background:var(--btn-success-bg-hover);transform:translateY(-1px)}.btn--danger,.btn-danger,.btn-danger-icon{background:var(--btn-danger-bg);color:var(--btn-danger-fg);border:1px solid var(--btn-danger-border)}.btn--danger:hover:not(:disabled),.btn-danger:hover:not(:disabled),.btn-danger-icon:hover:not(:disabled){background:var(--btn-danger-bg-hover);transform:translateY(-1px)}.btn--info,.btn-info{background:var(--btn-info-bg);color:var(--btn-info-fg);border:1px solid var(--btn-info-border)}.btn--info:hover:not(:disabled),.btn-info:hover:not(:disabled){background:var(--btn-info-bg-hover);transform:translateY(-1px)}.btn--active,.btn--active:hover:not(:disabled){background:var(--fantasy-gold-subtle);border-color:var(--fantasy-gold-dim);box-shadow:var(--shadow-inset-sm);transform:translateY(1px)}.btn--ghost{background:transparent;color:var(--text-primary);border-color:var(--border-color)}.btn--ghost:hover:not(:disabled){background:var(--surface-secondary);border-color:var(--fantasy-gold);color:var(--fantasy-gold)}.btn--xs{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);gap:var(--space-1)}.btn--sm,.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);gap:var(--space-1)}.btn--loading{color:transparent}.btn--loading:after{content:"";position:absolute;width:1rem;height:1rem;border:2px solid transparent;border-top:2px solid currentColor;border-radius:var(--border-radius-circle);animation:btn-spin 1s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn--active{transform:translateY(1px);box-shadow:var(--shadow-sm)}.btn-group{display:inline-flex;border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm)}.btn-group .btn{border-radius:0;border-right-width:0}.btn-group .btn:first-child{border-top-left-radius:var(--border-radius);border-bottom-left-radius:var(--border-radius)}.btn-group .btn:last-child{border-top-right-radius:var(--border-radius);border-bottom-right-radius:var(--border-radius);border-right-width:var(--border-width)}.btn--icon{padding:var(--space-3);aspect-ratio:1}.btn--icon.btn--sm{padding:var(--space-2)}.btn__icon{font-size:1.1em;line-height:1}.btn svg,.btn img{vertical-align:middle}@media(max-width:768px){.btn{padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm)}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.btn-group{flex-direction:column}.btn-group .btn{border-right-width:var(--border-width);border-bottom-width:0}.btn-group .btn:first-child{border-radius:var(--border-radius) var(--border-radius) 0 0}.btn-group .btn:last-child{border-radius:0 0 var(--border-radius) var(--border-radius);border-bottom-width:var(--border-width)}}.job-action-btn{width:28px;height:28px;border:1px solid var(--border-color-strong);border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;font-size:var(--font-size-sm);transition:all .2s;color:var(--fantasy-text);display:flex;align-items:center;justify-content:center}.job-action-btn.increase{background-color:var(--color-success)}.job-action-btn.decrease{background-color:var(--color-danger)}.job-action-btn:hover{opacity:.9;transform:scale(1.05)}.job-action-btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--border-color-strong);color:var(--fantasy-text);transform:none}.job-action-btn:disabled:hover{background-color:var(--border-color-strong);opacity:.5;transform:none}.job-action-btn.shift{font-size:var(--font-size-xs)}.job-action-btn.pending{background-color:var(--color-disabled-bg);cursor:wait;animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.btn--warning,.btn-warning{background:var(--btn-warning-bg);color:var(--btn-warning-fg);border:1px solid var(--btn-warning-border)}.btn--warning:hover:not(:disabled),.btn-warning:hover:not(:disabled){background:var(--btn-warning-bg-hover);transform:translateY(-1px)}.btn--lg{padding:var(--space-4) var(--space-6);font-size:var(--font-size-base);gap:var(--space-3)}.btn--xl{padding:var(--space-5) var(--space-8);font-size:var(--font-size-lg);gap:var(--space-3)}.btn--icon.btn--lg{padding:var(--space-4)}.event-active-pill{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 var(--space-2);border-radius:9999px;border:1px solid var(--border-color);background:var(--surface-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s;flex-shrink:0}.event-active-pill.active{background:var(--btn-success-bg);color:var(--btn-success-fg);border-color:var(--color-success)}@media(max-width:768px){.btn--lg{padding:var(--space-4) var(--space-5);font-size:var(--font-size-base)}}.tri-state-pill{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;padding:0 var(--space-3);border-radius:14px;border:1px solid var(--border-color-strong);background:var(--surface-tertiary);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;-webkit-user-select:none;user-select:none}.tri-state-pill:hover:not(:disabled){border-color:var(--fantasy-gold-dim)}.tri-state-pill.state--on{background:var(--btn-success-bg);color:var(--btn-success-fg);border-color:var(--color-success)}.tri-state-pill.state--off{background:var(--btn-danger-bg);color:var(--btn-danger-fg);border-color:var(--color-danger)}.tri-state-pill.state--auto{background:var(--surface-secondary);color:var(--text-primary);border:1px dashed var(--fantasy-gold-dim)}.tri-state-pill:disabled{opacity:.5;cursor:not-allowed}.tri-state-indicator{width:8px;height:8px;border-radius:50%;background:currentColor}.save-btn svg path,.cancel-btn svg path{fill:var(--fantasy-gold)!important}.form{display:flex;flex-direction:column;gap:var(--space-6)}input,textarea,select{background:var(--surface-secondary);color:var(--fantasy-text);border:1px solid var(--fantasy-border);border-radius:var(--border-radius-sm);font-family:inherit;font-size:var(--font-size-base);transition:border-color var(--transition-base),box-shadow var(--transition-base)}input::placeholder,textarea::placeholder{color:var(--fantasy-text-muted)}input:focus,textarea:focus,select:focus{border-color:var(--fantasy-border-focus);outline:none;box-shadow:0 0 0 2px var(--focus-ring-primary)}select option{background:var(--surface-secondary);color:var(--fantasy-text)}@media(max-width:480px){.form{gap:var(--space-4)}}.form-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0;line-height:1.4}.form-input,.form-textarea,.form-select{padding:var(--space-3);line-height:1.5;width:100%}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--fantasy-border-focus);box-shadow:0 0 0 2px var(--focus-ring-primary)}.form-textarea{resize:vertical;min-height:6rem;font-family:inherit}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right var(--space-2) center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:var(--space-8);appearance:none}.form-help{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.4;margin:0;margin-top:var(--space-1)}.form-error{font-size:var(--font-size-sm);color:var(--color-danger);margin-top:var(--space-1);line-height:1.4}.form-input--error,.form-textarea.form-input--error,.form-select.form-input--error{border-color:var(--color-danger)}.form-input--error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.form-row{display:flex;gap:var(--space-4);align-items:flex-start}.form-row>.form-group:only-child{flex:1}@media(max-width:768px){.form-row{flex-direction:column}}.form-checkbox{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.form-checkbox input[type=checkbox]{flex-shrink:0;margin:0}.check-row{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;margin:0;white-space:nowrap}.check-row input[type=checkbox],.check-row input[type=radio]{flex-shrink:0;width:16px;height:16px;margin:0;cursor:pointer;appearance:auto}.check-grid-2col{display:grid;grid-template-columns:repeat(2,max-content);gap:var(--space-2) var(--space-8);justify-content:start}.check-grid-3col{display:grid;grid-template-columns:repeat(3,max-content);gap:var(--space-2) var(--space-6);justify-content:start}.check-stack{display:flex;flex-direction:column;gap:var(--space-2)}.data-table-container{background:var(--surface-primary);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.data-table thead{background:var(--surface-secondary)}.data-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color);white-space:nowrap}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.data-table th.sortable:hover{background-color:var(--surface-tertiary)}.data-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .2s}.data-table tbody tr:hover{background-color:var(--surface-secondary)}.data-table td{padding:var(--space-2) var(--space-4);vertical-align:middle}@media(max-width:768px){.data-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-5);margin-top:var(--space-4);background:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.pagination-btn{padding:var(--space-2) var(--space-4);background-color:var(--fantasy-gold);color:var(--fantasy-text);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:background-color var(--transition-base)}.pagination-btn:hover:not(:disabled){background-color:var(--fantasy-gold-dim)}.pagination-btn:disabled{background-color:var(--text-secondary);cursor:not-allowed;opacity:.6}.pagination-info{font-weight:500;color:var(--text-primary)}.modifiers-column{display:flex;flex-direction:column;gap:var(--space-4);min-height:0}.modifiers-column .modifier-table-container h3{font-size:1em;margin-bottom:var(--space-2-5);color:var(--text-primary)}.modifiers-column .modifier-table-container{margin-bottom:var(--space-4)}.positive{color:var(--color-success)}.negative{color:var(--color-danger)}.crime-level-none{color:var(--color-crime-none)}.crime-level-low{color:var(--color-crime-low)}.crime-level-moderate{color:var(--color-crime-moderate)}.crime-level-high{color:var(--color-crime-high)}.crime-level-critical{color:var(--color-crime-critical)}@media(max-width:1024px){.revenues-summary-full-width{grid-template-columns:1fr 1fr;gap:var(--space-4)}}@media(max-width:768px){.revenues-summary-full-width,.modifiers-grid{grid-template-columns:1fr;gap:var(--space-5)}}@media(max-width:480px){.modifiers-column-title{font-size:1.1em}}.worker-row{background-color:var(--surface-secondary)}.worker-row:hover{background-color:var(--border-color)}.building-row .building-name{display:flex;align-items:center;gap:var(--space-2);font-weight:500}.building-row .type-icon{font-size:var(--font-size-base)}.building-row .name-text{color:var(--text-primary)}.built-count-badge{display:inline-flex;align-items:center;vertical-align:middle;background-color:var(--color-success);color:var(--fantasy-text);padding:var(--space-px-2) var(--space-1);border-radius:var(--border-radius-sm);font-size:10px;font-weight:700;margin-left:var(--space-1)}.building-row-damaged{background-color:var(--danger-row-bg)}.building-row-damaged:hover{background-color:var(--danger-row-bg-hover)}.damaged-badge{display:inline-flex;align-items:center;gap:var(--space-1);background-color:var(--color-danger);color:var(--fantasy-text);padding:var(--space-px-2) var(--space-1);border-radius:var(--border-radius-sm);font-size:10px;font-weight:700;margin-left:var(--space-1)}.stats-cards{display:flex;gap:var(--space-5);margin-bottom:var(--space-8);flex-wrap:wrap}.stat-card{background:var(--surface-primary);border-radius:var(--border-radius);padding:var(--space-5);box-shadow:var(--shadow-dark-md);border:1px solid var(--fantasy-border);border-left:4px solid var(--fantasy-gold);flex:1;text-align:center;min-width:200px;transition:transform .2s,box-shadow .2s,border-color .2s}.stat-card:hover{transform:translateY(-2px);border-color:var(--fantasy-border-focus);border-left-color:var(--fantasy-gold);box-shadow:var(--shadow-dark-lg)}.stat-card-icon{font-size:var(--font-size-3xl);margin-bottom:var(--space-2-5);display:block}.stat-card h4,.stat-card-title{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:500}.stat-card-value{font-size:2.5em;font-weight:700;color:var(--text-primary);margin:var(--space-2-5) 0;font-family:Courier New,monospace}.stat-card-description{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.stat-card--primary{border-left-color:var(--fantasy-gold)}.stat-card-value--primary{color:var(--fantasy-gold)}@media(max-width:1024px){.stats-cards{gap:var(--space-4)}.stat-card{min-width:180px}}@media(max-width:768px){.stats-cards{flex-direction:column;gap:var(--space-4)}.stat-card{min-width:auto;flex:none}.stat-card-value{font-size:2em}}@media(max-width:480px){.stat-card{padding:var(--space-4)}.stat-card-value{font-size:1.8em}.stat-card h4,.stat-card-title{font-size:var(--font-size-sm)}}.loading{text-align:center;padding:var(--space-8);color:var(--text-secondary)}.error,.error-message{text-align:center;padding:var(--space-8);color:var(--color-danger)}.no-data{text-align:center;padding:var(--space-5);color:var(--text-secondary)}.empty-state-card{text-align:center;padding:var(--space-10) var(--space-5);color:var(--text-secondary);background:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.section-title{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--space-2);color:var(--text-primary)}.harmonized-tab{padding:0}.harmonized-tab h2{margin-bottom:var(--space-5)}.filter-bar,.population-controls{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--space-2-5);background:var(--surface-primary);border-radius:var(--border-radius);padding:var(--space-4);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm)}.filter-row,.filters{display:flex;gap:var(--space-4);align-items:end;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;min-width:150px}.filter-group label{display:flex;align-items:center;gap:var(--space-1);font-weight:500;margin-bottom:var(--space-1);color:var(--fantasy-text);font-size:var(--font-size-sm)}.filter-group input,.filter-group select,.filters select{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm)}.clear-filters-btn{padding:var(--space-2) var(--space-4);background:transparent;color:var(--fantasy-text);border:1px solid var(--fantasy-border-focus);border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-sm);height:fit-content;transition:all var(--transition-base)}.clear-filters-btn:hover{border-color:var(--fantasy-gold);color:var(--fantasy-gold)}.search-and-actions{display:flex;gap:var(--space-2-5);align-items:center}.search-form{position:relative;display:inline-flex}.search-form input{padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);min-width:200px;font-size:var(--font-size-sm);width:100%}.search-icon{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);pointer-events:none;font-size:var(--font-size-sm)}.search-form button{padding:var(--space-2) var(--space-3);border:1px solid var(--border-color);border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0;background-color:var(--surface-secondary);cursor:pointer;font-size:var(--font-size-sm);transition:background-color .2s}.search-form button:hover{background-color:var(--surface-tertiary)}@media(max-width:768px){.filter-row,.filters{flex-direction:column;align-items:stretch;gap:var(--space-3)}.filter-group{min-width:auto}.search-form input{min-width:auto;width:100%}.population-controls{flex-direction:column;gap:var(--space-4)}}@media(max-width:480px){.filter-bar,.population-controls{padding:var(--space-3)}.filter-group label{font-size:var(--font-size-sm)}.filter-group input,.filter-group select,.filters select{padding:var(--space-px-6) var(--space-2-5);font-size:var(--font-size-sm)}.clear-filters-btn{padding:var(--space-px-6) var(--space-3);font-size:var(--font-size-sm)}}.buildings-filter-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.buildings-filters{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}.buildings-search{display:flex;gap:var(--space-2-5);align-items:center}.view-toggle{display:flex;justify-content:flex-start;margin-bottom:var(--space-5);gap:var(--space-2-5)}.view-toggle .toggle-button{padding:var(--space-2-5) var(--space-5);border:1px solid var(--border-color-strong);background-color:var(--surface-primary);border-radius:var(--border-radius-sm);cursor:pointer;font-weight:500;display:flex;align-items:center;gap:var(--space-2);transition:all .2s;font-size:var(--font-size-sm);color:var(--text-primary)}.view-toggle .toggle-button:hover{background-color:var(--surface-secondary);border-color:var(--text-muted)}.view-toggle .toggle-button.active{background-color:var(--color-success);color:var(--fantasy-text);border-color:var(--color-success)}.view-toggle .toggle-button.active:hover{background-color:var(--color-success-dark);border-color:var(--color-success-dark)}.view-toggle .toggle-icon{font-size:var(--font-size-lg)}@media(max-width:768px){.view-toggle{flex-wrap:wrap;gap:var(--space-2)}.view-toggle .toggle-button{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);min-width:auto}.view-toggle .toggle-icon{font-size:var(--font-size-base)}}@media(max-width:480px){.view-toggle{gap:var(--space-1-5)}.view-toggle .toggle-button{flex:1;justify-content:center;padding:var(--space-2) var(--space-2)}}.config-section{margin-bottom:var(--space-6)}.config-section__header{display:flex;justify-content:space-between;align-items:center;background-color:var(--surface-tertiary);border-radius:var(--border-radius);padding:var(--space-3) var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none}.config-section__header--open{margin-bottom:var(--space-4)}.config-section__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary)}.config-section__chevron{font-size:var(--font-size-sm);color:var(--text-secondary)}.config-section__content{display:flex;flex-direction:column;gap:var(--space-3)}.config-section__row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.config-section__label{flex:1}.config-section__label-text{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-1)}.config-section__default{font-size:var(--font-size-sm);color:var(--text-muted)}.config-section__input{width:80px;padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-base);text-align:right;font-family:monospace}.config-modal__footer{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-1) var(--space-6);background-color:var(--surface-secondary)}.salary-config{margin-bottom:var(--space-6)}.salary-config__header{display:flex;justify-content:space-between;align-items:center;background-color:var(--surface-tertiary);border-radius:var(--border-radius);padding:var(--space-3) var(--space-4);cursor:pointer;-webkit-user-select:none;user-select:none}.salary-config__header--open{margin-bottom:var(--space-4)}.salary-config__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary)}.salary-config__chevron{font-size:var(--font-size-sm);color:var(--text-secondary)}.salary-config__loading{padding:var(--space-4);text-align:center;color:var(--text-muted)}.salary-config__error{padding:var(--space-4);color:var(--color-danger)}.salary-config__body{display:flex;flex-direction:column;gap:var(--space-3)}.salary-config__description{font-size:var(--font-size-base);color:var(--text-muted);margin-bottom:var(--space-2)}.salary-config__row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.salary-config__row-info{flex:1}.salary-config__name{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-1)}.salary-config__default{font-size:var(--font-size-sm);color:var(--text-muted)}.salary-config__salary-input{width:80px;flex-shrink:0;padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-base);text-align:right;font-family:monospace}.salary-config__reassignable{flex-shrink:0;display:flex;align-items:center;margin-top:var(--space-px-6)}.salary-config__warning{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background-color:var(--color-warning-light, rgba(217, 119, 6, .1));border-left:3px solid var(--color-warning);border-radius:var(--border-radius-sm);margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-3);font-size:var(--font-size-sm);color:var(--color-warning-hover)}.detail-modal__card{margin-bottom:var(--space-6)}.detail-modal__section-title{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);border-bottom:2px solid var(--fantasy-gold);padding-bottom:var(--space-2)}.detail-modal__section-title--primary{border-bottom-color:var(--color-primary)}.detail-modal__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.detail-modal__field{display:flex;flex-direction:column;gap:var(--space-1)}.detail-modal__field--full{grid-column:1 / -1}.detail-modal__field-label{font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--font-size-sm)}.detail-modal__field-value{color:var(--text-primary);font-size:var(--font-size-base)}.p-4{padding:var(--space-4)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-inverse{color:var(--fantasy-text)}.flex{display:flex}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:var(--space-4)}.border{border:var(--border-width) solid var(--border-color)}.border-r{border-right:var(--border-width) solid var(--border-color)}.result-panel{background:var(--surface-primary);border:1px solid var(--fantasy-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-dark-md);padding:var(--space-6)}.card{background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-dark-md);border:1px solid var(--fantasy-border);overflow:hidden}.card__header{padding:var(--space-6);border-bottom:var(--border-width) solid var(--border-color);background:var(--surface-secondary)}.card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.card__footer{padding:var(--space-6);border-top:var(--border-width) solid var(--border-color);background:var(--surface-secondary)}.alert{padding:var(--space-4);border-radius:var(--border-radius);border:var(--border-width) solid;margin-bottom:var(--space-4)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:var(--border-radius);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.025em}.spinner{width:1.5rem;height:1.5rem;border:2px solid var(--border-color);border-top:2px solid var(--fantasy-gold);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.md\:hidden{display:none}.md\:block{display:block}.md\:flex{display:flex}.md\:flex-col{flex-direction:column}.md\:text-center{text-align:center}}@media(max-width:480px){.sm\:hidden{display:none}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:flex-col{flex-direction:column}.sm\:text-center{text-align:center}.sm\:text-sm{font-size:var(--font-size-sm)}}@keyframes slideFromTop{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromBottom{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}.slide-from-top{animation:slideFromTop .3s ease-out}.slide-from-bottom{animation:slideFromBottom .3s ease-out}.slide-from-right{animation:slideFromRight .3s ease-out}.slide-from-left{animation:slideFromLeft .3s ease-out}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:var(--fantasy-border) transparent}*::-webkit-scrollbar{width:4px;height:4px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--fantasy-border);border-radius:2px}html,body,#root{margin:0;padding:0;min-height:100vh}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;background-color:var(--page-bg);background-image:var(--page-bg-ambient);background-attachment:fixed;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{position:relative;z-index:0}body:before{content:"";position:fixed;inset:0;background-image:var(--texture-body);background-size:300px;background-repeat:repeat;mix-blend-mode:screen;filter:invert(1);opacity:var(--texture-body-opacity);pointer-events:none;z-index:-1}.sidebar__bottom{padding:var(--space-3);border-top:1px solid var(--fantasy-border);background:var(--overlay-dark-10)}.hub-sidebar:before,.craft-sidebar:before,.crystal-sidebar:before,.metals-sidebar:before,.rerum-sidebar:before,.audio-sidebar:before,.App .sidebar:before{content:"";position:absolute;inset:0;background-image:var(--texture-sidebar);background-size:cover;mix-blend-mode:screen;opacity:.12;pointer-events:none;z-index:0}.hub-sidebar:after,.craft-sidebar:after,.crystal-sidebar:after,.metals-sidebar:after,.rerum-sidebar:after,.audio-sidebar:after,.App .sidebar:after{content:"";position:absolute;inset:0;background:linear-gradient(to right,#070a06b3,#070a0666);pointer-events:none;z-index:1}.hub-sidebar>*,.craft-sidebar>*,.crystal-sidebar>*,.metals-sidebar>*,.rerum-sidebar>*,.audio-sidebar>*,.App .sidebar>*{position:relative;z-index:2}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:60vh;text-align:center;padding:var(--space-8)}.empty-state__icon{font-size:4rem;color:var(--fantasy-gold);opacity:.25;line-height:1;animation:empty-state-float 4s ease-in-out infinite}.empty-state__title{font-family:var(--font-fantasy-title);font-size:var(--font-size-2xl);color:var(--text-primary);margin:0;letter-spacing:.04em}.empty-state__sub{font-size:var(--font-size-base);color:var(--text-muted);max-width:420px;line-height:1.6;margin:0;font-style:italic}@keyframes empty-state-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.promo-banner{min-height:40px;padding:10px 16px;background:#c9a84c1a;border-bottom:1px solid var(--fantasy-gold-dim);font-family:var(--font-fantasy-title);color:var(--fantasy-text);text-align:center;font-size:.9rem;line-height:1.3;box-sizing:border-box}.promo-banner a{color:var(--fantasy-gold);text-decoration:none;font-weight:600}.promo-banner a:hover{color:var(--fantasy-gold);text-decoration:underline}.simulation-options-form{width:100%}.loading-spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top:3px solid var(--fantasy-gold);border-radius:var(--border-radius-circle);animation:spin 1s linear infinite;margin-bottom:var(--space-4)}.options-section{margin-bottom:var(--space-8)}.section-description{color:var(--text-secondary);margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.detail-label{color:var(--text-secondary)}.detail-value{font-weight:500;color:var(--text-primary)}.options-group{margin-bottom:var(--space-6);padding:var(--space-4);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-secondary)}.group-title{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-4);color:var(--text-primary);border-bottom:1px solid var(--border-color);padding-bottom:var(--space-2)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.form-label{font-weight:500;margin-bottom:var(--space-1)}.form-input,.form-select{padding:var(--space-2);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);transition:border-color .2s ease}.form-input:focus,.form-select:focus{box-shadow:0 0 0 2px var(--shadow-primary-sm)}.form-input:disabled,.form-select:disabled{background-color:var(--surface-secondary);opacity:.6;cursor:not-allowed}.form-hint{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--space-1)}.checkbox-label{font-size:var(--font-size-sm);color:var(--text-primary)}.btn-icon{margin-right:var(--space-2)}.species-age-overrides{margin-top:var(--space-4);border-top:1px solid var(--border-color);padding-top:var(--space-4)}.species-age-overrides-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1) 0}.species-age-overrides-hint{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0 0 var(--space-3) 0}.species-age-overrides-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--border-color, var(--border-color))}.species-age-overrides-row:last-child{border-bottom:none}.species-age-overrides-name{flex:1;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);min-width:80px}.species-age-overrides-inputs{display:flex;gap:var(--space-3)}.species-age-overrides-field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--text-secondary)}.species-age-overrides-field .form-input{width:80px}.species-initial-counts{margin-top:var(--space-2)}.species-initial-counts-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1) 0}.species-initial-counts-hint{font-size:var(--font-size-xs);color:var(--text-secondary);margin:0 0 var(--space-3) 0}.species-initial-counts-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) 0}.species-initial-counts-row:last-of-type{border-bottom:none}.species-initial-counts-label{flex:1;font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);white-space:nowrap}.species-initial-counts-input{flex:0 0 80px;width:80px!important;text-align:right}.species-initial-counts-total{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--border-color);font-size:var(--font-size-sm);color:var(--text-primary)}@media(max-width:768px){.form-row{grid-template-columns:1fr}}.building-effects-display{display:flex;flex-wrap:wrap;gap:var(--space-1)}.effect-badge{display:inline-flex;align-items:center;gap:var(--space-1);background-color:var(--surface-tertiary);color:var(--text-primary);padding:var(--space-px-2) var(--space-2);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);border:1px solid var(--border-color);white-space:nowrap}.effects-loading,.effects-none{font-style:italic;color:var(--text-secondary);font-size:var(--font-size-sm)}.calendar-header{background:var(--surface-primary);padding:var(--space-5);border-radius:var(--border-radius);margin-bottom:var(--space-8);box-shadow:var(--shadow-sm);text-align:center}.current-date-display{display:flex;align-items:center;justify-content:center;gap:var(--space-8);flex-wrap:wrap}.current-month{display:flex;align-items:center;gap:var(--space-2-5);font-size:24px;font-weight:700;color:var(--fantasy-gold)}.month-icon{font-size:28px}.current-season{font-size:var(--font-size-lg);color:var(--text-secondary);font-weight:400;margin-left:var(--space-2-5)}.current-year{font-size:var(--font-size-xl);color:var(--text-secondary);font-weight:500}.calendar-name{font-size:var(--font-size-base);color:var(--text-secondary);font-style:italic}.calendar-main{display:grid;grid-template-columns:400px 1fr;gap:var(--space-5);padding:0;min-height:500px;align-items:start}@media(max-width:1200px){.calendar-main{grid-template-columns:1fr;grid-template-rows:auto auto}.calendar-center{order:1}.info-panel{order:2}}@media(max-width:768px){.calendar-main{min-height:auto;gap:var(--space-4)}.calendar-center{position:static;top:auto}.circular-calendar{padding:var(--space-3);width:100%}.circular-calendar svg{width:100%;height:auto;max-width:420px}}.calendar-panel{display:flex;flex-direction:column;gap:var(--space-5)}.panel-card{background:var(--surface-primary);border-radius:var(--border-radius);padding:var(--space-5);box-shadow:var(--shadow-sm)}.panel-card h3{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:600;border-bottom:2px solid var(--surface-secondary);padding-bottom:var(--space-2-5)}.calendar-center{display:flex;align-items:flex-start;justify-content:center;position:sticky;top:var(--space-5)}.circular-calendar{background:var(--surface-primary);border-radius:var(--border-radius-circle);padding:var(--space-5);box-shadow:var(--shadow-md)}.season-arc{cursor:pointer}.season-arc.active{filter:drop-shadow(0 0 8px var(--shadow-glow-primary-md))}.season-arc.selected{filter:drop-shadow(0 0 12px var(--shadow-glow-warning-lg));stroke-width:4}.month-node{cursor:pointer}.month-node.active .month-circle{filter:drop-shadow(0 0 8px var(--shadow-glow-primary-lg));animation:pulse 2s infinite}.month-node.selected .month-circle{filter:drop-shadow(0 0 12px var(--shadow-glow-warning-lg));animation:selectedPulse 1.5s infinite}.center-indicator{filter:drop-shadow(0 2px 4px var(--overlay-dark-10))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes selectedPulse{0%,to{opacity:1}50%{opacity:.8}}.welcome-info h3{margin:0 0 var(--space-4) 0;color:var(--text-primary);text-align:center;border:none;padding:0}.welcome-text p{color:var(--text-secondary);line-height:1.5;margin-bottom:var(--space-5);text-align:center}.current-overview{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2-5)}.overview-item{display:flex;flex-direction:column;align-items:center;padding:var(--space-2-5);background:var(--surface-secondary);border-radius:var(--border-radius);text-align:center}.overview-icon{font-size:20px;margin-bottom:var(--space-1)}.overview-label{font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--space-px-2)}.overview-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.month-details h3,.season-details h3{margin:0 0 var(--space-2-5) 0;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2-5);border:none;padding:0}.detail-icon{font-size:24px}.detail-subtitle{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-4);font-style:italic}.detail-description{color:var(--text-primary);line-height:1.5;margin-bottom:var(--space-5);padding:var(--space-2-5) 0}.detail-section{margin-bottom:var(--space-5)}.detail-section h4{margin:0 0 var(--space-2-5) 0;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600}.empty-state{text-align:center;padding:var(--space-5);color:var(--text-secondary)}.hint{font-size:var(--font-size-xs);font-style:italic;margin-top:var(--space-2-5)}.calendar-event-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0;font-size:var(--font-size-sm);border-bottom:1px solid var(--border-color)}.calendar-event-item:last-child{border-bottom:none}.modifiers-toggle{display:flex;align-items:center;gap:var(--space-2);background:none;border:none;padding:var(--space-2) 0;cursor:pointer;color:var(--text-primary);font-size:var(--font-size-sm);font-weight:600;width:100%;text-align:left}.modifiers-arrow{display:inline-block;transition:transform .15s ease;font-size:var(--font-size-xs);color:var(--text-secondary)}.modifiers-toggle.open .modifiers-arrow{transform:rotate(90deg)}.modifiers-table{width:100%;border-collapse:collapse;margin-top:var(--space-2);font-size:var(--font-size-sm)}.modifiers-table th,.modifiers-table td{padding:var(--space-1) var(--space-1);text-align:left;border-bottom:1px solid var(--surface-secondary)}.modifiers-table th{font-size:var(--font-size-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase}.modifier-col-name{width:85%}.modifier-col-value{width:15%;text-align:right}.modifier-name{color:var(--text-primary);min-width:0}.modifier-value{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.modifier-value.up{color:var(--color-success)}.modifier-value.down{color:var(--color-danger)}.modifier-value.neutral{color:var(--text-secondary)}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.form-row{display:flex;gap:var(--space-4)}.form-row .form-group{flex:1}.research-tree-container{position:relative;width:100%;height:800px;background:var(--surface-primary);border:none;border-radius:0;margin-top:0}.research-tree-section.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:var(--z-modal);background:var(--surface-primary)}.research-tree-section.fullscreen .research-tree-container{height:100%}.research-tree-section.fullscreen .section-actions{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);z-index:10;margin-bottom:0;padding:var(--space-2) var(--space-3);background:var(--overlay-dark-80);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--border-radius);box-shadow:var(--shadow-medium)}.fullscreen-stats{position:absolute;top:var(--space-3);left:var(--space-3);z-index:10;padding:var(--space-2);background:var(--overlay-dark-80);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--border-radius);box-shadow:var(--shadow-medium)}.research-node{width:100%;height:100%;border-radius:var(--border-radius-circle);border:3px solid;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:24px;font-weight:700;text-shadow:1px 1px 2px var(--overlay-dark-80);box-shadow:var(--shadow-medium);-webkit-user-select:none;user-select:none;z-index:5}.research-node.node--circle{border-radius:var(--border-radius-circle)}.research-node.node--square{border-radius:var(--border-radius)}.shape-selector{display:flex;gap:var(--space-2)}.research-node.available{background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-hover) 100%);border-color:var(--color-success);box-shadow:0 2px 8px var(--shadow-success-lg);color:var(--fantasy-text)}.research-node.unlocked{background:linear-gradient(135deg,var(--fantasy-gold) 0%,var(--fantasy-gold-dim) 100%);border-color:var(--fantasy-gold);box-shadow:0 2px 8px var(--shadow-primary-lg);color:var(--fantasy-text)}.research-node.locked{background:linear-gradient(135deg,var(--border-color-strong) 0%,var(--text-muted) 100%);border-color:var(--text-muted);opacity:.6;cursor:not-allowed;color:var(--text-secondary)}.research-node.conditions-not-met{border-color:var(--color-warning);box-shadow:0 0 0 2px var(--color-warning),var(--shadow-medium)}.research-node.conditions-error{border-color:var(--color-danger);box-shadow:0 0 0 2px var(--color-danger),var(--shadow-medium)}.research-node.editable{border:2px dashed var(--fantasy-gold)}.research-node.editable:hover{border-color:var(--fantasy-gold-dim)}.research-node:hover:not(.locked){z-index:11}.research-node .icon{font-size:28px}.research-node .title{font-size:10px;margin-top:var(--space-px-2);text-align:center;color:var(--fantasy-text);text-shadow:1px 1px 2px var(--overlay-dark-80);font-weight:700}.research-node.unlocked .title{color:var(--fantasy-text);text-shadow:1px 1px 2px var(--overlay-dark-80)}.research-node-unlock-overlay{position:absolute;inset:0;pointer-events:none;z-index:20;overflow:visible}.research-node-rune{position:absolute;color:var(--fantasy-gold);font-size:14px;font-weight:700;text-shadow:0 0 6px var(--fantasy-gold),0 0 2px #fff0c0;opacity:0;transform:translate(-50%,-50%) scale(.3);animation-name:researchRuneAppear,researchRuneFadeOut;animation-duration:.4s,1s;animation-timing-function:ease-out,ease-in;animation-delay:var(--rune-delay, 0s),.9s;animation-fill-mode:forwards,forwards;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes researchRuneAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes researchRuneFadeOut{0%{opacity:1}to{opacity:0}}.research-node-spark{position:absolute;top:50%;left:50%;border-radius:50%;opacity:0;transform:translate(-50%,-50%);animation-name:researchSparkBurst;animation-timing-function:ease-out;animation-fill-mode:forwards;pointer-events:none}@keyframes researchSparkBurst{0%{opacity:0;transform:translate(-50%,-50%) translate(0) scale(1)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) translate(var(--spark-dx),var(--spark-dy)) scale(.4)}}.research-node.is-unlocking{animation:researchNodeUnlockPulse 1.8s ease-out forwards}@keyframes researchNodeUnlockPulse{0%,50%{transform:scale(1)}60%{transform:scale(1.15)}to{transform:scale(1)}}.research-tooltip{position:absolute;background:var(--surface-primary);color:var(--fantasy-text);border-radius:var(--border-radius-lg);padding:var(--space-3);font-size:var(--font-size-sm);z-index:100;max-width:280px;pointer-events:none;opacity:0;transition:opacity .3s ease;box-shadow:var(--shadow-dark-xl)}.research-tooltip.visible{opacity:1}.research-tooltip__header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.research-tooltip__header h3{color:var(--color-tier-gold);margin:0;font-size:var(--font-size-base)}.research-tooltip__description{color:var(--fantasy-text);margin-bottom:var(--space-2);opacity:.85}.research-tooltip__section{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-px-2)}.research-tooltip__cost{color:var(--color-tier-gold);font-weight:700;margin-top:var(--space-2)}.research-tooltip__line{font-size:var(--font-size-xs);line-height:1.4}.research-tooltip__line.is-met{color:var(--color-success)}.research-tooltip__line.is-unmet{color:var(--color-warning)}.research-tooltip__line.is-error{color:var(--color-danger)}.research-loading{display:flex;justify-content:center;align-items:center;height:400px;font-size:var(--font-size-xl);color:var(--text-secondary)}.panel-title{margin:0;color:var(--text-primary);font-size:var(--font-size-base)}.section-actions{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2-5)}.section-title{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.effects-list{display:flex;flex-direction:column;gap:var(--space-2)}.effect-info{flex:1;display:flex;flex-direction:column;gap:var(--space-px-2)}.react-flow__node-research:has(.master){width:92px;height:92px}.research-node.master{width:100%;height:100%;border-color:var(--color-tier-gold)!important;box-shadow:0 0 14px var(--shadow-glow-primary-md),var(--shadow-medium)}.research-node.master .icon{font-size:32px}.edit-bubble,.link-bubble{position:absolute;top:-10px;width:20px;height:20px;border-radius:var(--border-radius-circle);border:2px solid var(--fantasy-text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--fantasy-text);font-weight:700;z-index:12;box-shadow:var(--shadow-dark-sm)}.edit-bubble{right:-10px;background:var(--btn-info-bg)}.link-bubble{left:-10px;background:var(--btn-success-bg)}.link-bubble--active{background:var(--btn-danger-bg)}.react-flow__node-research{width:80px;height:80px;background:none!important;border:none!important;border-radius:0!important;padding:0!important;font-size:inherit!important}.react-flow__handle{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important}.research-edge{stroke:var(--border-color-strong);stroke-width:2;opacity:.7;fill:none}.research-edge.active{stroke:var(--color-success);stroke-width:3;opacity:1}.react-flow__node.selected>div{outline:none}.react-flow__minimap{background:var(--surface-secondary)!important;border:1px solid var(--fantasy-border)!important}.react-flow__minimap-mask{fill:var(--overlay-dark-40, rgba(0,0,0,.4))!important}.react-flow__controls{background:transparent!important;border:none!important;box-shadow:none!important}.react-flow__controls-button{background:var(--surface-secondary)!important;border:1px solid var(--fantasy-border)!important;border-bottom:none!important;color:var(--text-primary)!important;fill:var(--text-primary)!important}.react-flow__controls-button:last-child{border-bottom:1px solid var(--fantasy-border)!important}.react-flow__controls-button:hover{background:var(--surface-primary)!important;border-color:var(--fantasy-gold-dim)!important}.react-flow__controls-button svg{fill:var(--text-primary)!important}.react-flow__attribution{display:none!important}@media(max-width:768px){.research-tree-container{height:400px}.react-flow__node-research{width:60px;height:60px}.research-node{font-size:var(--font-size-lg)}.stat-bar.research-stat-bar{grid-template-columns:repeat(2,1fr)}.btn-kbd-hint,.research-tree-container .react-flow__minimap,.section-actions .btn-warning{display:none}.section-actions{flex-wrap:wrap;gap:var(--space-1)}.section-actions .btn{min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm)}.research-tree-section{position:relative}.research-tree-section .section-actions{position:absolute;top:var(--space-3);right:var(--space-3);left:auto;transform:none;z-index:10;margin-bottom:0;justify-content:flex-end;max-width:calc(100% - 2 * var(--space-3))}.research-tree-section.fullscreen .fullscreen-stats{display:none}.research-tree-section.fullscreen .section-actions{display:grid;grid-template-columns:1fr 1fr;top:var(--space-3);left:var(--space-3);right:auto;transform:none;justify-content:stretch;max-width:none}.research-tooltip{position:fixed!important;left:50%!important;right:auto!important;top:auto!important;bottom:var(--space-3)!important;transform:translate(-50%)!important;width:calc(100vw - 2 * var(--space-4));max-width:calc(100vw - 2 * var(--space-4));max-height:25vh;overflow-y:auto;pointer-events:auto}}.events-tab{padding:0}.events-list-accordion{display:flex;flex-direction:column;gap:var(--space-2)}.event-card{display:flex;background-color:var(--surface-primary);border-radius:var(--border-radius);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:transform .2s}.event-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.event-icon{font-size:24px;margin-right:var(--space-4);display:flex;align-items:center;justify-content:center;width:40px}.event-content{flex:1}.event-cycle{font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--space-1)}.event-description{font-size:var(--font-size-sm)}.event-card.sickness{border-left:4px solid var(--color-danger)}.event-card.crime{border-left:4px solid var(--accent-event-crime)}.event-card.research{border-left:4px solid var(--fantasy-gold)}.event-card.famine{border-left:4px solid var(--accent-event-famine)}.event-card.treasury{border-left:4px solid var(--accent-event-treasury)}.event-card.retirement{border-left:4px solid var(--accent-event-famine)}.event-card.mortality{border-left:4px solid var(--color-danger)}.event-card.majority{border-left:4px solid var(--accent-event-majority)}.event-accordion-item.sickness{border-left:4px solid var(--color-danger)}.event-accordion-item.crime{border-left:4px solid var(--accent-event-crime)}.event-accordion-item.research{border-left:4px solid var(--fantasy-gold)}.event-accordion-item.famine{border-left:4px solid var(--accent-event-famine)}.event-accordion-item.treasury{border-left:4px solid var(--accent-event-treasury)}.event-accordion-item.building{border-left:4px solid var(--accent-event-building)}.event-accordion-item.population{border-left:4px solid var(--accent-event-population)}.event-accordion-item.moral{border-left:4px solid var(--accent-event-moral)}.event-accordion-item.retirement{border-left:4px solid var(--accent-event-famine)}.event-accordion-item.mortality{border-left:4px solid var(--color-danger)}.event-accordion-item.majority{border-left:4px solid var(--accent-event-majority)}.event-accordion-item.default{border-left:4px solid var(--accent-event-default)}.event-accordion-item.population{border-left:3px solid var(--event-color-population)}.event-accordion-item.health{border-left:3px solid var(--event-color-health)}.event-accordion-item.celebration{border-left:3px solid var(--event-color-celebration)}.event-accordion-item.conflict{border-left:3px solid var(--event-color-conflict)}.event-accordion-item.tragedy{border-left:3px solid var(--event-color-tragedy)}.event-accordion-item.infrastructure{border-left:3px solid var(--event-color-infrastructure)}.event-accordion-item.diplomatic{border-left:3px solid var(--event-color-diplomatic)}.event-accordion-item.spiritual{border-left:3px solid var(--event-color-spiritual)}.event-accordion-item.natural_event{border-left:3px solid var(--event-color-natural_event)}.event-accordion-item.narrative{border-left:3px solid var(--event-color-narrative)}.event-accordion-item.migration{border-left:3px solid var(--event-color-migration)}.events-filter-bar{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);background-color:var(--surface-primary);border-radius:var(--border-radius)}.events-filter-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.events-search-input{flex:1;min-width:200px;padding:var(--space-2) var(--space-3);background-color:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-primary);font-size:var(--font-size-sm)}.events-cycle-input{width:80px;padding:var(--space-2);background-color:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-primary);font-size:var(--font-size-sm)}.events-cycle-label{font-size:var(--font-size-xs);color:var(--text-secondary)}.events-chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2-5);border-radius:9999px;border:1px solid var(--border-color);background:var(--surface-secondary);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .15s,border-color .15s;opacity:.45}.events-chip.active{opacity:1;border-color:var(--chip-color, var(--border-color-strong));color:var(--text-primary)}.events-chip--toggle-all{opacity:1;border-color:var(--border-color-strong);color:var(--text-primary);font-weight:600;min-width:3rem;justify-content:center}.events-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--chip-color, var(--accent-event-default));margin-right:var(--space-1)}.events-load-more{display:flex;justify-content:center;padding:var(--space-3) 0}.events-load-more-status{font-size:var(--font-size-xs);color:var(--text-secondary)}.event-group-children{margin-top:var(--space-2);padding-left:var(--space-3);border-left:1px dashed var(--border-color-strong);display:flex;flex-direction:column;gap:var(--space-1)}.event-group-child{font-size:var(--font-size-xs);color:var(--text-secondary)}.event-group-toggle{background:none;border:none;color:var(--fantasy-gold);font-size:var(--font-size-xs);cursor:pointer;padding:0;margin-top:var(--space-1)}.event-accordion-item{background-color:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s}.event-accordion-item:hover{box-shadow:var(--shadow)}.event-accordion-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);cursor:pointer;transition:background-color .2s}.event-accordion-header:hover{background-color:var(--surface-secondary)}.event-summary{display:flex;align-items:center;flex:1}.event-basic-info{margin-left:var(--space-4);flex:1}.event-preview{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--space-px-2)}.event-expand-icon{font-size:var(--font-size-base);color:var(--text-secondary);margin-left:var(--space-2-5);transition:transform .2s}.event-accordion-content{padding:0 var(--space-4) var(--space-4) var(--space-4);border-top:1px solid var(--surface-secondary);background-color:var(--surface-secondary)}.event-full-description{font-size:var(--font-size-sm);line-height:1.5;margin-bottom:var(--space-2-5);color:var(--text-primary)}.event-metadata{display:flex;gap:var(--space-5);font-size:var(--font-size-xs);color:var(--text-secondary)}.event-type{font-weight:500}.event-date{font-style:italic}.no-events{text-align:center;padding:var(--space-10);color:var(--text-secondary);background-color:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.no-events p{margin:var(--space-2-5) 0}.no-events p:first-child{font-weight:500;font-size:var(--font-size-base)}.event-template-row{padding:var(--space-3);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.event-template-info{flex:1;min-width:0}.event-template-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.event-template-desc{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--space-1)}.event-template-count{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--space-1)}.event-template-actions{display:flex;gap:var(--space-2);flex-shrink:0}.event-template-buttons{display:contents}.events-templates-header{display:flex;justify-content:flex-end;gap:var(--space-2);margin-bottom:var(--space-3)}.event-cluster-row .event-cluster-info{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0;cursor:pointer}.event-cluster-row .event-cluster-toggle{font-size:var(--font-size-sm);color:var(--text-secondary);width:1em;flex-shrink:0}.event-cluster-row .event-cluster-text{flex:1;min-width:0}.event-cluster-children{display:flex;flex-direction:column;gap:var(--space-2);margin-left:var(--space-5);padding-left:var(--space-3);border-left:1px dashed var(--border-color-strong)}.event-cluster-empty{font-size:var(--font-size-sm);color:var(--text-secondary);font-style:italic;padding:var(--space-2)}.event-template-row--indented{background-color:var(--surface-secondary)}.event-cycle-tag{font-size:var(--font-size-xs);color:var(--text-secondary)}.error button{margin-top:var(--space-2-5);background-color:var(--color-danger);color:var(--fantasy-text);border:none;padding:var(--space-2) var(--space-4);border-radius:var(--border-radius-sm);cursor:pointer}.error button:hover{background-color:var(--color-danger-hover)}@media(max-width:768px){.events-chip{font-size:var(--font-size-xs);padding:var(--space-px-2) var(--space-2);min-height:32px}.events-chip-dot{width:6px;height:6px}.events-filter-row{gap:var(--space-1)}.event-accordion-item.event-template-row{display:grid;grid-template-columns:1fr 140px;align-items:start;gap:var(--space-2)}.event-template-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1)}.event-template-actions .event-active-pill{width:100%;justify-content:center}.event-template-buttons{display:flex;gap:var(--space-1)}.event-template-buttons .btn{flex:1;min-width:0;height:44px;min-height:44px;padding:0;justify-content:center}.events-search-input{min-width:0}}.seasonal-variables-management{display:flex;flex-direction:column;height:100%;min-height:0}.seasonal-variables-description{color:var(--text-secondary);margin:0 0 var(--space-4) 0;font-size:var(--font-size-sm)}.seasonal-variables-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background:var(--surface-primary);border:1px solid var(--border-color)}.seasonal-variables-table th{background-color:var(--surface-secondary);padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color);white-space:nowrap}.seasonal-variables-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--surface-secondary);vertical-align:middle}.category-column{min-width:200px;max-width:250px}.season-column{width:100px;text-align:center;font-weight:500}.category-name{font-weight:500;white-space:nowrap}.category-icon{font-size:var(--font-size-lg);margin-right:var(--space-2);vertical-align:middle}.variable-cell{text-align:center;position:relative}.variable-value{padding:var(--space-px-6) var(--space-2);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .2s;font-family:Courier New,monospace;font-weight:500;min-height:20px;display:flex;align-items:center;justify-content:center}.variable-value:hover:not(.disabled){background:var(--surface-secondary)}.edit-container{display:flex;flex-direction:column;gap:var(--space-1);align-items:center}.edit-input{width:80px;padding:var(--space-1) var(--space-px-6);border:2px solid var(--fantasy-gold);border-radius:var(--border-radius-sm);text-align:center;font-family:Courier New,monospace;font-size:var(--font-size-sm)}.edit-input:focus{outline:none;border-color:var(--fantasy-gold-dim)}.edit-actions{display:flex;gap:var(--space-1)}.save-btn,.cancel-btn{width:32px;height:32px;border-radius:var(--border-radius-sm);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.save-btn{background:var(--btn-success-bg)}.cancel-btn{background:var(--btn-danger-bg)}.save-btn svg,.cancel-btn svg{width:16px;height:16px}.save-btn svg path,.cancel-btn svg path{fill:#fff}.no-data{color:var(--text-secondary);font-style:italic}.seasonal-variables-loading,.seasonal-variables-error{padding:var(--space-10);text-align:center;background:var(--surface-primary);border-radius:var(--border-radius);border:1px solid var(--border-color)}.seasonal-variables-loading{color:var(--text-secondary)}.seasonal-variables-error{color:var(--color-danger);background:var(--color-alert-danger-bg);border-color:var(--color-alert-danger-border)}@media(max-width:768px){.seasonal-variables-table{font-size:var(--font-size-xs)}.seasonal-variables-table th,.seasonal-variables-table td{padding:var(--space-2) var(--space-3)}.category-column{min-width:150px}.season-column{width:80px}.edit-input{width:60px}}.modal-header{background:linear-gradient(135deg,var(--fantasy-gold) 0%,var(--gradient-header-end) 100%);padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-header h2{margin:0;font-size:var(--font-size-2xl);font-weight:600;color:var(--fantasy-text)}.modal-body{padding:var(--space-5);flex:1;overflow-y:auto}.form-group{margin-bottom:var(--space-6)}.form-label{display:block;margin-bottom:var(--space-2);font-weight:500;font-size:var(--font-size-base)}.form-label.required:after{content:" *";color:var(--color-danger)}.form-input{padding:var(--space-3) var(--space-4)}.form-input:focus{box-shadow:0 0 0 3px var(--shadow-primary-sm)}.form-input::placeholder{color:var(--text-muted)}.form-input.error{border-color:var(--color-danger);background:var(--color-alert-danger-bg)}.form-error{display:block;margin-top:var(--space-2);color:var(--color-danger);font-size:var(--font-size-sm)}.form-hint{display:block;margin-top:var(--space-2);color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.4}.form-textarea{min-height:80px;resize:vertical;font-family:inherit}.info-box{background:var(--color-alert-info-bg);border:1px solid var(--color-alert-info-border);border-radius:var(--border-radius);padding:var(--space-4);display:flex;gap:var(--space-3);margin-top:var(--space-4)}.info-box__icon{font-size:var(--font-size-xl);flex-shrink:0;color:var(--fantasy-gold)}.info-box__content p{margin:0;color:var(--fantasy-gold-dim);font-size:var(--font-size-sm);line-height:1.4}.modal-footer{padding:var(--space-6) var(--space-8);border-top:1px solid var(--border-color);background:var(--surface-secondary);display:flex;justify-content:flex-end;gap:var(--space-4);flex-shrink:0}.btn{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);font-weight:500;min-width:100px}.btn:disabled{opacity:.6;transform:none!important}.loading-spinner{width:16px;height:16px;border:2px solid var(--overlay-light-30);border-top:2px solid var(--surface-primary);border-radius:var(--border-radius-circle);animation:spin 1s linear infinite}.loading-spinner.small{width:14px;height:14px;border-width:1.5px}@media(max-width:768px){.btn{width:100%}}.delete-warning{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);background:var(--color-alert-danger-bg);border:1px solid var(--color-alert-danger-border);border-radius:var(--border-radius);margin-bottom:var(--space-6)}.warning-icon{font-size:var(--font-size-3xl);flex-shrink:0}.warning-content{flex:1}.warning-message{font-weight:600;color:var(--color-danger);margin-bottom:var(--space-2)}.warning-details{color:var(--color-alert-danger-text);font-size:var(--font-size-sm);margin:0}.simulation-details{background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-4);margin-bottom:var(--space-6)}.detail-item{display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.detail-item:last-child{margin-bottom:0}.detail-label{font-weight:500;color:var(--text-primary)}.detail-value{color:var(--text-secondary);text-align:right;max-width:60%;word-break:break-word}.confirmation-input{margin-bottom:var(--space-4)}.confirmation-text{font-weight:500;color:var(--text-primary);margin-bottom:var(--space-2)}.invite-code-input{font-family:monospace;font-size:var(--font-size-lg);letter-spacing:.1em;text-align:center}.terms-of-use__body{max-height:60vh;overflow-y:auto;line-height:1.7;color:var(--text-primary);font-size:var(--font-size-base)}.edit-simulation-modal{max-width:500px;width:90vw}.edit-simulation-form{display:flex;flex-direction:column;gap:var(--space-6)}.form-label{font-weight:600;color:var(--text-primary)}.form-input,.form-textarea{border:2px solid var(--border-color);transition:border-color .2s ease}.form-input:focus,.form-textarea:focus{box-shadow:0 0 0 3px var(--shadow-primary-sm)}.form-input.error,.form-textarea.error{border-color:var(--color-danger)}.form-textarea{min-height:80px}.form-error{color:var(--color-danger);font-size:var(--font-size-sm);font-weight:500}.character-count{font-size:var(--font-size-xs);color:var(--text-secondary);text-align:right;margin-top:-.25rem}.invite-code-section{display:flex;gap:var(--space-2);align-items:center}.invite-code-input{flex:1;font-family:Courier New,monospace;background:var(--surface-secondary);color:var(--text-primary)}.copy-btn{padding:var(--space-3);min-width:auto;display:flex;align-items:center;justify-content:center}.invite-code-help{font-size:var(--font-size-xs);color:var(--text-secondary);font-style:italic}.modal-actions{display:flex;gap:var(--space-4);justify-content:flex-end;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color)}.modal-actions .btn{min-width:100px}.btn{padding:var(--space-3) var(--space-6);border:none;font-weight:600}.btn:disabled{opacity:.6}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--fantasy-gold-dim) 0%,var(--fantasy-gold-dim) 100%)}.btn-secondary{background:var(--surface-tertiary);color:var(--text-primary);border:1px solid var(--border-color-strong);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--border-color-strong);border-color:var(--text-muted);transform:none;box-shadow:none}.btn-small{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}@media(max-width:640px){.edit-simulation-modal{width:95vw;max-width:none}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%}.invite-code-section{flex-direction:column;align-items:stretch}.copy-btn{align-self:flex-start}}@keyframes fx-rainbow-border{0%{border-color:#ff6b6b;box-shadow:0 0 4px #ff6b6b66}16%{border-color:#ffa94d;box-shadow:0 0 4px #ffa94d66}33%{border-color:#ffd43b;box-shadow:0 0 4px #ffd43b66}50%{border-color:#69db7c;box-shadow:0 0 4px #69db7c66}66%{border-color:#4dabf7;box-shadow:0 0 4px #4dabf766}83%{border-color:#cc5de8;box-shadow:0 0 4px #cc5de866}to{border-color:#ff6b6b;box-shadow:0 0 4px #ff6b6b66}}.formula-examples-trigger{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.5rem;height:1.5rem;margin-top:var(--space-1);padding:0;border:1.5px solid var(--fantasy-gold-dim);border-radius:var(--border-radius-circle);background:var(--surface-tertiary);color:var(--fantasy-gold);font-size:.9em;line-height:1;cursor:pointer;animation:fx-rainbow-border 3s linear infinite;transition:background .2s}.formula-examples-trigger:hover{background:var(--fantasy-gold-subtle)}.fx-desktop-panel{position:fixed;width:340px;max-width:calc(100vw - 2rem);display:flex;flex-direction:column;background:var(--surface-secondary);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-dark-xl);z-index:var(--z-modal-nested);overflow:hidden}.fx-mobile-overlay{position:fixed;inset:0;background:var(--surface-overlay);z-index:var(--z-modal-nested)}.fx-mobile-panel{display:flex;flex-direction:column;width:100%;height:100%;background:var(--surface-secondary)}.fx-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border-color);background:var(--surface-primary)}.fx-panel__title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.fx-panel__close{border:none;background:transparent;color:var(--text-secondary);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 var(--space-1)}.fx-panel__close:hover{color:var(--text-primary)}.fx-panel__body{padding:var(--space-4);overflow-y:auto}.fx-note{margin:0 0 var(--space-4) 0;padding:var(--space-2-5) var(--space-3);font-size:.8em;line-height:1.4;color:var(--text-secondary);background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}.fx-group{margin-bottom:var(--space-5)}.fx-group__intro{margin:0 0 var(--space-3) 0;font-size:.8em;line-height:1.4;color:var(--text-secondary)}.fx-group:last-child{margin-bottom:0}.fx-group__title{margin:0 0 var(--space-3) 0;font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.fx-example{margin-bottom:var(--space-3)}.fx-example:last-child{margin-bottom:0}.fx-example__code{display:block;font-family:Courier New,monospace;font-size:.85em;color:var(--fantasy-gold);background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:var(--space-2) var(--space-2-5);margin-bottom:var(--space-1);white-space:pre-wrap;word-break:break-word}.fx-example__desc{margin:0;font-size:.8em;color:var(--text-secondary);line-height:1.4}.fx-operators{width:100%;border-collapse:collapse;font-size:.8em;margin-bottom:var(--space-2)}.fx-operators tr+tr td{border-top:1px solid var(--border-color)}.fx-operators td{padding:var(--space-1-5) var(--space-2);vertical-align:top;line-height:1.4}.fx-operators td:first-child{color:var(--fantasy-gold);font-family:Courier New,monospace;white-space:nowrap;width:1%;padding-right:var(--space-3)}.fx-operators td:last-child{color:var(--text-secondary)}.mnm-modal .modal__content{padding:0;overflow:hidden;display:flex;flex-direction:row}.mnm-layout{display:flex;flex:1;min-height:500px;overflow:hidden}.mnm-track{display:contents}.mnm-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border-color);background-color:var(--surface-secondary);display:flex;flex-direction:column}.mnm-sidebar__heading{padding:var(--space-4);border-bottom:1px solid var(--border-color);background-color:var(--surface-tertiary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--text-secondary)}.mnm-sidebar__list{flex:1;overflow-y:auto}.mnm-nav-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:0;background:transparent;text-align:left;cursor:pointer;transition:all var(--transition-base);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:0;outline:none}.mnm-nav-btn__icon{display:flex;align-items:center;flex-shrink:0;font-size:1.2em;margin-right:var(--space-2)}.mnm-nav-btn__label{flex:1;min-width:0}.mnm-nav-btn__chevron{display:none;flex-shrink:0;color:var(--text-secondary)}.mnm-nav-btn__count{flex-shrink:0;min-width:1.4em;padding:0 var(--space-1);background:var(--fantasy-gold-subtle);color:var(--fantasy-gold);border:1px solid var(--fantasy-gold);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1.4;text-align:center}.mnm-nav-btn:hover{background:var(--fantasy-gold-subtle);color:var(--fantasy-gold)}.mnm-nav-btn--active,.mnm-nav-btn--active:hover{background:var(--fantasy-gold-subtle);color:var(--fantasy-gold);border-left:3px solid var(--fantasy-gold)}.mnm-nav-btn--disabled,.mnm-nav-btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.mnm-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.mnm-content__header{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-6);border-bottom:1px solid var(--border-color);background-color:var(--surface-secondary)}.mnm-content__header--no-title{padding:0;border-bottom:none;background:transparent}.mnm-content__back{display:none;align-items:center;gap:var(--space-1);background:none;border:none;padding:0;cursor:pointer;color:var(--fantasy-gold);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.mnm-content__title-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);width:100%}.mnm-content__header h2{margin:0;display:flex;align-items:center;gap:var(--space-2);min-width:0;color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.mnm-content__title-icon{display:inline-flex;align-items:center;flex-shrink:0}.mnm-content__header-action{flex-shrink:0}.mnm-content__body{flex:1;padding:var(--space-6);overflow-y:auto;line-height:1.6;color:var(--text-primary);font-size:var(--font-size-base)}.mnm-content__placeholder{margin:0;color:var(--text-secondary)}.mnm-content__body--raw{padding:0;display:flex;flex-direction:column}.mnm-paragraph{font-size:var(--font-size-base);margin-bottom:var(--space-4)}.mnm-paragraph--empty{margin-bottom:var(--space-2)}.mnm-content__body table{width:100%;border-collapse:collapse;margin:.75rem 0;font-size:var(--font-size-sm)}.mnm-content__body th,.mnm-content__body td{padding:.4rem .75rem;border:1px solid var(--fantasy-border);text-align:left}.mnm-content__body th{background:var(--surface-secondary);color:var(--fantasy-gold);font-weight:var(--font-weight-semibold)}.mnm-content__body tr:nth-child(2n) td{background:var(--overlay-dark-10)}.mnm-content__body a{color:var(--fantasy-gold);text-decoration:underline}@media(max-width:768px){.mnm-content__body.slide-from-top,.mnm-content__body.slide-from-bottom{animation:none}}@media(max-width:768px){.mnm-modal .modal__content{display:block}.mnm-layout{display:block;position:relative;min-height:0;height:70vh;overflow:hidden}.mnm-modal--with-footer .mnm-layout{height:60vh}.mnm-track{display:flex;width:200%;height:100%;transition:transform .3s ease}.mnm-sidebar,.mnm-content{width:50%;flex-shrink:0;height:100%;border-right:none}.mnm-layout--content .mnm-track{transform:translate(-50%)}.mnm-nav-btn{min-height:48px;font-size:var(--font-size-base)}.mnm-nav-btn__chevron,.mnm-content__back{display:inline-flex}.mnm-content__header--no-title{display:flex;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-color);background-color:var(--surface-secondary)}}.achv-toast-container{position:fixed;right:var(--space-5);top:var(--space-5);z-index:1200;display:flex;flex-direction:column;gap:var(--space-3);max-width:360px;width:100%;pointer-events:none}.achv-toast{position:relative;display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) var(--space-5);padding-right:var(--space-8);background:#1a1a14;border:1px solid var(--fantasy-gold);border-radius:var(--border-radius);box-shadow:0 8px 28px #00000080;overflow:hidden;pointer-events:auto;animation:achv-slide-in .4s cubic-bezier(.22,1,.36,1)}.achv-toast__topline{position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,transparent,var(--fantasy-gold),transparent)}.achv-toast__close{position:absolute;top:var(--space-2);right:var(--space-2);display:inline-flex;padding:2px;background:none;border:none;color:var(--text-muted);cursor:pointer;line-height:0;transition:color .15s}.achv-toast__close:hover{color:var(--fantasy-gold)}.achv-toast__badge{position:relative;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#12120d;border:1px solid var(--fantasy-gold)}.achv-toast__icon{color:var(--fantasy-gold);position:relative;z-index:1}.achv-toast__rays{position:absolute;inset:-14px;border-radius:50%;background:repeating-conic-gradient(var(--fantasy-gold) 0deg 1.5deg,transparent 1.5deg 15deg);-webkit-mask:radial-gradient(circle,transparent 23px,#000 25px,transparent 38px);mask:radial-gradient(circle,transparent 23px,#000 25px,transparent 38px);opacity:.45;animation:achv-rays-spin 9s linear infinite}.achv-toast__body{flex:1;min-width:0}.achv-toast__label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fantasy-gold);margin-bottom:2px}.achv-toast__name{font-family:var(--font-fantasy-title);font-size:var(--font-size-md);line-height:1.2;color:#f3e9d8;margin-bottom:2px}.achv-toast__desc{font-size:var(--font-size-sm);line-height:1.35;color:var(--text-muted)}.achv-toast__progress{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left center;background:var(--fantasy-gold);animation-name:achv-deplete;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes achv-slide-in{0%{transform:translate(16px,-110%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes achv-rays-spin{to{transform:rotate(360deg)}}@keyframes achv-deplete{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.achv-toast,.achv-toast__rays{animation:none}}@media(max-width:480px){.achv-toast-container{right:var(--space-2-5);left:var(--space-2-5);max-width:none}}.ss-layout{display:flex;min-height:100vh;width:100%}.ss-sidebar{width:260px;background:var(--surface-sidebar);border-right:1px solid var(--fantasy-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:var(--z-sidebar);overflow:hidden}.ss-sidebar__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--overlay-light-05);flex-shrink:0}.ss-sidebar__logo{display:flex;align-items:center;opacity:.85;text-decoration:none}.ss-sidebar__logo img{height:28px;width:auto;display:block}.ss-sidebar__title{font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);color:var(--fantasy-gold);font-weight:var(--font-weight-semibold);letter-spacing:.04em}.ss-sidebar__scroll{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.ss-actions{display:flex;flex-direction:column;gap:var(--space-2)}.ss-actions .sidebar-config-btn,.sc-back-btn{gap:var(--space-2)}.ss-search{width:100%;padding:var(--space-2) var(--space-3);background:var(--surface-secondary);border:1px solid var(--fantasy-border);border-radius:var(--border-radius-sm);color:var(--text-primary);font-family:inherit;font-size:var(--font-size-sm)}.ss-search:focus{outline:none;border-color:var(--fantasy-gold)}.ss-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.ss-list__empty{padding:var(--space-4);text-align:center;color:var(--text-muted);font-style:italic;font-size:var(--font-size-sm)}.ss-card{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--surface-secondary);border:1px solid var(--fantasy-border);border-radius:var(--border-radius-sm);cursor:pointer;text-align:left;font-family:inherit;color:var(--text-primary);transition:all var(--transition-base)}.ss-card:hover{border-color:var(--fantasy-border-focus);background:var(--overlay-dark-10)}.ss-card.is-active{border-color:var(--fantasy-gold);background:var(--fantasy-gold-subtle)}.ss-card__name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ss-main{flex:1;margin-left:260px;min-height:100vh;padding:var(--space-8);display:flex;flex-direction:column}.sc-panel{display:flex;flex-direction:column;gap:var(--space-6);width:100%}.sc-panel__header{border-bottom:1px solid var(--fantasy-border);padding-bottom:var(--space-5)}.sc-panel__title{font-family:var(--font-fantasy-title);font-size:var(--font-size-3xl);color:var(--fantasy-gold);letter-spacing:.06em;margin:0 0 var(--space-2)}.sc-panel__intro{font-family:var(--font-fantasy-body);font-style:italic;font-size:var(--font-size-lg);color:var(--fantasy-text-muted);line-height:1.5;margin:0;max-width:640px}.sc-panel__body{display:flex;flex-direction:column;gap:var(--space-4)}.sc-placeholder{min-height:160px;border:1px dashed var(--fantasy-border);border-radius:var(--border-radius-sm)}.sc-split{display:flex;gap:var(--space-4);min-height:480px;height:calc(100vh - 260px);max-height:680px}.sc-split__left{width:280px;flex-shrink:0;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:var(--border-radius-md);overflow:hidden;background:var(--surface-primary)}.sc-split__right{flex:1;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:var(--space-4);background:var(--surface-primary)}.sc-cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.sc-cal-title{margin:0;font-weight:var(--font-weight-semibold)}.sc-cal-toggle{display:flex;flex-shrink:0;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);overflow:hidden}.sc-cal-toggle button{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3);border:none;background:var(--surface-primary);color:var(--text-secondary);cursor:pointer}.sc-cal-toggle button+button{border-left:1px solid var(--border-color)}.sc-cal-toggle button.active{background:var(--color-primary);color:var(--fantasy-gold-dim);font-weight:var(--font-weight-semibold)}.sc-calendar-layout{display:grid;grid-template-columns:60% 40%;gap:var(--space-4);align-items:start}.sc-calendar-layout .calendar-center{position:static;min-width:0}.sc-calendar-layout .circular-calendar{padding:0;width:100%}.sc-calendar-layout .circular-calendar svg{display:block;width:100%;height:auto}.sc-seasonal-readonly{overflow-x:auto}.sc-create-error{display:block;margin-bottom:var(--space-2);text-align:center}.sc-research-canvas{width:100%;height:100%;min-height:460px;position:relative}.sc-cal-stats{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--font-size-sm);color:var(--text-primary)}.sc-cal-stat__label{color:var(--text-secondary);font-weight:var(--font-weight-semibold)}.sc-role-badges{display:flex;flex-wrap:wrap;gap:var(--space-1)}.sc-role-badge{font-size:var(--font-size-xs);background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:1px var(--space-1);white-space:nowrap;color:var(--text-primary)}.sc-filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);background:var(--surface-secondary);flex-shrink:0}.sc-filter-bar select{font-size:var(--font-size-xs);padding:2px var(--space-1);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--surface-primary);color:var(--text-primary);cursor:pointer}.sc-filter-label{font-size:var(--font-size-xs);color:var(--text-secondary);align-self:center}.sc-attr-dropdown{position:relative}.sc-attr-toggle{display:flex;align-items:center;gap:var(--space-1);min-width:120px;font-size:var(--font-size-xs);padding:2px var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--surface-primary);color:var(--text-primary);cursor:pointer}.sc-attr-count{font-size:var(--font-size-xs);background:var(--color-primary);color:var(--fantasy-gold-dim);border-radius:999px;padding:0 6px;font-weight:var(--font-weight-semibold)}.sc-attr-menu{position:absolute;top:calc(100% + 2px);left:0;z-index:20;min-width:200px;display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--surface-primary);box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .3))}.sc-attr-option{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--text-primary);cursor:pointer;padding:2px var(--space-1);border-radius:var(--border-radius-sm)}.sc-attr-option:hover{background:var(--surface-secondary)}.sc-species-controls{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);flex-shrink:0}.sc-species-search{flex:1;min-width:0;font-size:var(--font-size-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--surface-primary);color:var(--text-primary)}.sc-species-search:focus{outline:none;border-color:var(--fantasy-gold)}.sc-select-all-btn{flex-shrink:0;font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--surface-secondary);color:var(--text-primary);cursor:pointer;white-space:nowrap}.sc-select-all-btn:hover:not(:disabled){border-color:var(--fantasy-gold);color:var(--fantasy-gold)}.sc-select-all-btn:disabled{opacity:.5;cursor:not-allowed}.sc-template-list{overflow-y:auto;flex:1}.sc-template-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .12s;font-size:var(--font-size-sm)}.sc-template-item:last-child{border-bottom:none}.sc-template-item:hover{background:var(--surface-secondary)}.sc-template-item.previewing{background:var(--surface-secondary);font-weight:var(--font-weight-semibold)}.sc-template-item__check{flex-shrink:0;width:16px;height:16px;border:1.5px solid var(--border-color);border-radius:3px;display:flex;align-items:center;justify-content:center;background:var(--surface-primary);transition:background .12s,border-color .12s}.sc-template-item.selected .sc-template-item__check{background:var(--color-primary);border-color:var(--color-primary)}.sc-name-input{max-width:300px}.sc-template-item__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sc-sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sc-sortable-th:hover{color:var(--fantasy-gold)}.sc-pack-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border-color)}.sc-pack-item:last-child{border-bottom:none}.sc-pack-item__body{flex:1;min-width:0}.sc-pack-item__name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.sc-pack-item__name:hover{color:var(--color-primary)}.sc-pack-item__meta{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:2px}.sc-pack-toggle{flex-shrink:0;padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--surface-primary);color:var(--text-secondary);cursor:pointer;transition:background .12s,color .12s,border-color .12s;white-space:nowrap}.sc-pack-toggle.selected{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.sc-drill-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color)}.sc-drill-header__title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.sc-info-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.sc-info-table th{text-align:left;padding:var(--space-2) var(--space-3);background:var(--surface-secondary);font-weight:var(--font-weight-semibold);color:var(--text-secondary);border-bottom:1px solid var(--border-color);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}.sc-info-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);vertical-align:middle;color:var(--text-primary)}.sc-info-table tr:last-child td{border-bottom:none}.sc-info-table tr:hover td{background:var(--surface-secondary)}.sc-info-table .sc-bool-yes{color:var(--color-success, var(--color-primary));font-weight:var(--font-weight-semibold)}.sc-info-table .sc-bool-no{color:var(--text-muted, var(--text-secondary))}.sc-base-note{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:color-mix(in srgb,var(--color-warning, #b45309) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-warning, #b45309) 30%,transparent);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);color:var(--text-secondary);margin-bottom:var(--space-4);font-style:italic}.sc-no-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:120px;color:var(--text-secondary);font-style:italic;font-size:var(--font-size-sm);gap:var(--space-2);text-align:center}.ss-sidebar .sidebar-tabs{list-style:none;margin:0;padding:0}.ss-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-6)}.ss-welcome h1{font-family:var(--font-fantasy-title);font-size:2.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fantasy-gold);margin:0;padding:var(--space-4) var(--space-6);position:relative}.ss-welcome h1:before,.ss-welcome h1:after{content:"";position:absolute;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent 0%,var(--fantasy-gold-dim) 20%,var(--fantasy-gold) 50%,var(--fantasy-gold-dim) 80%,transparent 100%)}.ss-welcome h1:before{top:0}.ss-welcome h1:after{bottom:0}.ss-welcome p{font-family:var(--font-fantasy-body);font-style:italic;font-weight:300;font-size:var(--font-size-xl);color:var(--fantasy-text-muted);line-height:1.6;max-width:640px;margin:0}.ss-detail{display:flex;flex-direction:column;gap:var(--space-6);max-width:900px;width:100%;margin:0 auto}.ss-detail__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;border-bottom:1px solid var(--fantasy-border);padding-bottom:var(--space-5)}.ss-detail__title{font-family:var(--font-fantasy-title);font-size:var(--font-size-3xl);color:var(--fantasy-gold);letter-spacing:.06em;margin:0}.ss-detail__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.ss-detail__actions .sidebar-config-btn{width:auto;gap:var(--space-2)}.ss-enter-btn{border-color:var(--fantasy-gold-dim);color:var(--fantasy-gold)}.ss-detail__meta{display:flex;gap:var(--space-8);flex-wrap:wrap}.ss-field{display:flex;flex-direction:column;gap:var(--space-1)}.ss-field__label{font-size:var(--font-size-xs);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.ss-field__value{font-size:var(--font-size-base);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.ss-detail__description{font-family:var(--font-fantasy-body);font-style:italic;font-size:var(--font-size-lg);color:var(--fantasy-text-muted);line-height:1.5;margin:0}.ss-detail__section{display:flex;flex-direction:column;gap:var(--space-3)}.ss-detail__section-title{font-family:var(--font-fantasy-title);font-size:var(--font-size-lg);color:var(--fantasy-gold);letter-spacing:.04em;margin:0;border-bottom:1px solid var(--fantasy-border);padding-bottom:var(--space-2)}.ss-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.ss-stat{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--surface-secondary);border:1px solid var(--fantasy-border);border-radius:var(--border-radius-sm)}.ss-stat__icon{color:var(--fantasy-gold);flex-shrink:0}.ss-stat__label{flex:1;font-size:var(--font-size-sm);color:var(--text-secondary)}.ss-stat__value{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.ss-detail__loading{display:flex;justify-content:center;padding:var(--space-12)}.ss-state-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);text-align:center;padding:var(--space-8);color:var(--text-primary)}.ss-state-screen h2{color:var(--color-danger);margin:0}.ss-mobile-bar,.ss-mobile-overlay{display:none}@media(max-width:768px){.ss-sidebar{position:fixed;inset:auto 0 0;width:100%;height:auto;max-height:80vh;border-right:none;border-top:1px solid var(--fantasy-border);transform:translateY(100%);transition:transform var(--transition-base, .2s ease);z-index:var(--z-mobile-bar, 300);overflow-y:auto}.ss-sidebar.is-open{transform:translateY(0)}.ss-sidebar__header{display:none}.ss-main{margin-left:0;padding:var(--space-5) var(--space-4);padding-bottom:52px}.ss-mobile-bar{display:flex;align-items:center;justify-content:space-between;position:fixed;bottom:0;left:0;right:0;height:52px;background:var(--surface-sidebar);border-top:1px solid var(--fantasy-border);padding:0 var(--space-4);z-index:var(--z-mobile-bar, 300);gap:var(--space-3)}.ss-mobile-toggle{display:flex;align-items:center;gap:var(--space-2);background:transparent;border:none;color:var(--fantasy-gold);font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);cursor:pointer;padding:0}.ss-mobile-toggle__icon{font-size:.8em}.ss-mobile-menu-btn{display:flex;align-items:center;background:transparent;border:none;color:var(--fantasy-text);cursor:pointer;padding:var(--space-2);font-size:0}.ss-mobile-overlay{display:block;position:fixed;inset:0;background:var(--overlay-dark-50, rgba(0,0,0,.5));z-index:299}.ss-welcome h1{font-size:var(--font-size-3xl)}.ss-detail__header{flex-direction:column;align-items:flex-start}}@media(max-width:768px){.sc-split{flex-direction:column;height:auto;min-height:0;max-height:none}.sc-split__left{width:100%}.sc-template-list{flex:0 0 auto;overflow-y:visible}.sc-split__right{overflow-y:visible}.sc-no-preview{height:auto;min-height:80px}.sc-calendar-layout{grid-template-columns:1fr}.sc-research-canvas{height:60vh;min-height:320px}.sc-sortable-table,.sc-sortable-table tbody{display:block;width:100%}.sc-sortable-table thead{display:none}.sc-sortable-table tr{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-primary)}.sc-sortable-table tr:hover td{background:transparent}.sc-sortable-table td{flex:1 1 45%;padding:var(--space-1) var(--space-3);border-bottom:none}.sc-sortable-table td[data-label]:before{content:attr(data-label) ": ";color:var(--text-secondary);font-weight:500}.sc-sortable-table td:first-child{flex:1 1 100%;font-weight:var(--font-weight-semibold);padding-top:var(--space-2)}.sc-sortable-table td:last-child{flex:1 1 100%;padding-bottom:var(--space-2)}.sc-cal-toolbar{flex-direction:column;align-items:flex-start}.react-flow__minimap{display:none}}.role-badge{padding:var(--space-1) var(--space-3);border-radius:0;font-family:var(--font-fantasy-title);font-size:var(--font-size-xs);font-weight:400;text-transform:uppercase;letter-spacing:.15em;white-space:nowrap;background:transparent}.role-gamemaster,.role-badge.role-gamemaster{background:transparent;color:var(--fantasy-gold);border:1px solid var(--fantasy-gold-dim)}.role-player{background:transparent;color:var(--fantasy-text);border:1px solid var(--fantasy-border-focus)}.role-observer{background:transparent;color:var(--fantasy-text-muted);border:1px solid var(--fantasy-border)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top:3px solid var(--fantasy-gold);border-radius:var(--border-radius-circle);animation:spin 1s linear infinite}.cycle-modal-state{text-align:center;padding:var(--space-8)}.cycle-modal-state.error{color:var(--color-danger)}.cycle-modal-state.muted{color:var(--text-secondary)}.cycle-modal-state-icon{font-size:var(--font-size-xl);margin-bottom:var(--space-4)}.cycle-modal-state-subtext{font-size:var(--font-size-sm);color:var(--text-secondary)}.cycle-modal-content{display:flex;flex-direction:column;gap:var(--space-6)}.cycle-modal-section{margin-bottom:var(--space-4)}.cycle-modal-section-title{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.cycle-modal-events{display:flex;flex-direction:column;gap:var(--space-2)}.cycle-modal-event-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background-color:var(--surface-tertiary);border-radius:var(--border-radius-sm);border:1px solid var(--border-color)}.cycle-modal-event-icon{font-size:var(--font-size-lg)}.cycle-modal-event-text{color:var(--text-primary)}.cycle-modal-no-events{color:var(--text-secondary);font-style:italic}.cycle-modal-resources-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4)}.cycle-modal-panel{padding:var(--space-4);background-color:var(--surface-primary);border-radius:var(--border-radius-sm);border:1px solid var(--border-color)}.cycle-modal-panel-title{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.cycle-modal-rows{display:flex;flex-direction:column;gap:var(--space-2)}.cycle-modal-row{display:flex;justify-content:space-between}.cycle-modal-row-total{display:flex;justify-content:space-between;padding-top:var(--space-2);border-top:1px solid var(--border-color);font-weight:var(--font-weight-semibold)}.cycle-modal-val-positive{color:var(--color-success);font-weight:var(--font-weight-medium)}.cycle-modal-val-negative{color:var(--color-danger);font-weight:var(--font-weight-medium)}.cycle-modal-balance{font-weight:var(--font-weight-bold)}.cycle-modal-balance.positive{color:var(--color-success)}.cycle-modal-balance.negative{color:var(--color-danger)}.cycle-modal-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.cycle-modal-stat-card{padding:var(--space-3);background-color:var(--surface-primary);border-radius:var(--border-radius-sm);text-align:center}.cycle-modal-stat-icon{font-size:var(--font-size-lg);margin-bottom:var(--space-1)}.cycle-modal-stat-label{font-size:var(--font-size-sm);color:var(--text-secondary)}.cycle-modal-stat-value{font-weight:var(--font-weight-bold);color:var(--text-primary)}.cycle-modal-calendar{padding:var(--space-4);background-color:var(--color-primary-light);border-radius:var(--border-radius);border:1px solid var(--fantasy-gold)}.cycle-modal-calendar-title{margin:0 0 var(--space-3) 0;color:var(--fantasy-gold);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.cycle-modal-calendar-body{line-height:1.6}.cycle-modal-calendar-line{margin:0 0 var(--space-2) 0}.event-resolution-banner{display:block;width:calc(100% + 2 * var(--space-6));aspect-ratio:16 / 9;margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-4);background-size:cover;background-position:center;background-repeat:no-repeat}.admin-builder-footer{display:flex;justify-content:flex-end;gap:var(--space-4);width:100%}.admin-builder-footer--spread{justify-content:space-between}.admin-builder-footer__actions{display:flex;gap:var(--space-2)}@media(max-width:768px){.admin-builder-footer,.admin-builder-footer--spread{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);align-items:stretch}.admin-builder-footer>span:empty{display:none}.admin-builder-footer__actions{display:contents}.admin-builder-footer__actions .btn{min-width:0;width:100%}}.conditions-builder{padding:0}.conditions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:2px solid var(--border-color)}.conditions-list{margin-bottom:var(--space-6)}.no-conditions{text-align:center;padding:var(--space-8) var(--space-5);background:var(--surface-secondary);border-radius:var(--border-radius);color:var(--text-secondary);border:2px dashed var(--border-color)}.add-condition-form{background:var(--surface-primary);border:2px solid var(--fantasy-gold);border-radius:var(--border-radius);margin-bottom:var(--space-6);overflow:hidden}.form-header{background:var(--fantasy-gold);color:var(--fantasy-text);padding:var(--space-3) var(--space-5)}.form-header h4{margin:0;font-size:var(--font-size-base)}.form-content{padding:var(--space-5)}.form-actions{display:flex;gap:var(--space-4);justify-content:flex-end}.condition-item{display:block;background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);margin-bottom:var(--space-4);padding:0;transition:all .2s}.condition-item:hover{border-color:var(--fantasy-gold);box-shadow:0 2px 4px var(--shadow-primary-sm)}.condition-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-4);margin-bottom:var(--space-2);border-bottom:none}.condition-info{display:flex;align-items:flex-start;gap:var(--space-3);flex:1}.condition-icon{font-size:var(--font-size-2xl);flex-shrink:0;margin-top:var(--space-px-2)}.condition-details{flex:1}.condition-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-lg);margin-bottom:var(--space-1);display:block}.condition-description{color:var(--text-secondary);font-size:var(--font-size-sm);font-style:italic;line-height:1.4}.condition-actions{display:flex;gap:var(--space-2);flex-shrink:0;align-items:center}.condition-parameters{padding:var(--space-4);background:var(--surface-secondary)}.parameter-row{display:flex;gap:var(--space-4);align-items:flex-end}.parameter-group{flex:1}.parameter-label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:var(--space-px-6);font-size:var(--font-size-sm)}.parameter-select,.parameter-input{width:100%;padding:var(--space-2) var(--space-2-5);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);background:var(--surface-primary);color:var(--text-primary);transition:border-color .2s}.parameter-select::placeholder,.parameter-input::placeholder{color:var(--text-secondary);opacity:1}.parameter-select:focus,.parameter-input:focus{outline:none;border-color:var(--fantasy-gold)}.parameter-input[type=number]{text-align:center}.building-search-container{position:relative;width:100%}.building-search-results{position:absolute;top:100%;left:0;right:0;background:var(--surface-primary);border:1px solid var(--border-color);border-top:none;border-radius:0 0 var(--border-radius-sm) var(--border-radius-sm);max-height:220px;overflow-y:auto;z-index:1000;box-shadow:var(--shadow-sm)}.building-search-result{padding:var(--space-2) var(--space-3);cursor:pointer;transition:background .2s}.condition-types-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.condition-type-card{background:var(--surface-primary);border:2px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-4);cursor:pointer;transition:all .2s;text-align:left;display:flex;flex-direction:column;gap:var(--space-2)}.condition-type-card:hover{border-color:var(--fantasy-gold);background:var(--color-alert-info-bg)}.condition-type-icon{font-size:var(--font-size-2xl);margin-bottom:var(--space-1)}.condition-type-name{font-weight:600;color:var(--text-primary);font-size:var(--font-size-base)}.condition-type-description{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.3}.conditions-header-left{display:flex;gap:var(--space-2-5)}@media(max-width:768px){.conditions-header{flex-direction:column;align-items:stretch;gap:var(--space-4)}.form-actions{flex-direction:column}}.condition-parameters .parameter-row{display:flex!important;flex-direction:row!important;gap:var(--space-4);align-items:flex-end;flex-wrap:nowrap}.condition-parameters .parameter-group{flex:1 1 0;min-width:0}.condition-actions .btn--danger{width:32px!important;height:32px!important;padding:0!important;line-height:1!important;font-size:var(--font-size-base)!important}.condition-item.error .btn--danger{background-color:var(--btn-danger-bg)!important;border-color:var(--btn-danger-border, var(--btn-danger-bg))!important;color:var(--btn-danger-text, #fff)!important}.template-key-picker{position:relative;width:100%}.template-key-picker .parameter-input{width:100%}.template-key-suggestions{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.25));z-index:100;max-height:180px;overflow-y:auto;display:flex;flex-direction:column}.template-key-suggestion{padding:var(--space-2) var(--space-3);text-align:left;background:none;border:none;cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary);font-family:var(--font-mono, monospace)}.template-key-suggestion:hover,.template-key-suggestion--active{background:var(--surface-secondary);color:var(--fantasy-gold)}.condition-item--clickable{cursor:pointer}.condition-item--clickable:focus-visible{outline:2px solid var(--fantasy-gold);outline-offset:2px}.formula-preview{display:block;padding:var(--space-2) var(--space-3);background:var(--surface-primary);border:1px dashed var(--border-color);border-radius:var(--border-radius-sm);font-family:var(--font-mono, monospace);font-size:var(--font-size-sm);color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.formula-preview.empty{color:var(--text-secondary);font-style:italic}.formula-condition-editor{display:flex;flex-direction:column;gap:var(--space-4)}.formula-condition-editor__toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.media-library-modal{height:90vh}.media-library-modal .modal__content{overflow:hidden;display:flex;flex-direction:column}.media-library{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-4);overflow:hidden}.media-library__toolbar{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color);padding-bottom:var(--space-3);gap:var(--space-4);flex-wrap:wrap}.media-library__toolbar .view-toggle{margin-bottom:0}.media-library__toolbar-right{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto}.media-library__toolbar-right .search-form{width:200px}.media-library__body{flex:1;min-height:0;display:flex;flex-direction:row;gap:var(--space-4);align-items:stretch}.media-library__grid-wrap{flex:1;min-width:0;min-height:0;overflow-y:auto;position:relative;border:2px dashed transparent;border-radius:var(--border-radius);transition:border-color var(--transition-base),background var(--transition-base)}.media-library__grid-wrap--dragover{border-color:var(--color-primary);background:var(--color-primary-light)}.media-library__dropzone-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:var(--color-primary-light);border-radius:var(--border-radius);pointer-events:none;z-index:10;color:var(--color-primary);font-weight:600}.media-library__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-auto-rows:130px;gap:var(--space-3);min-height:300px;align-content:start;padding:var(--space-2)}.media-library__item{position:relative;padding:0;border:2px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-secondary);cursor:pointer;overflow:hidden;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.media-library__item:hover{border-color:var(--color-primary-light)}.media-library__item--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.media-library__item img{width:100%;height:100%;object-fit:cover;display:block}.media-library__badge{position:absolute;top:var(--space-1);right:var(--space-1);background:var(--color-primary);color:var(--surface-primary);padding:2px var(--space-2);font-size:var(--font-size-xs);border-radius:var(--border-radius-sm);font-weight:var(--font-weight-semibold)}.media-library__placeholder{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;min-height:200px;padding:var(--space-6);color:var(--text-secondary);font-style:italic;text-align:center}.media-library__panel{width:300px;flex-shrink:0;min-height:0;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow-y:auto}.media-library__preview{width:100%;aspect-ratio:16 / 9;background:var(--surface-primary);border-radius:var(--border-radius);overflow:hidden}.media-library__preview img{width:100%;height:100%;object-fit:contain}.media-library__actions{display:flex;flex-direction:column;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2)}.media-library__tag-input{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center;padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-primary);min-height:38px;cursor:text}.media-library__tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);color:var(--color-primary)}.media-library__tag-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0;line-height:1;opacity:.7}.media-library__tag-remove:hover{opacity:1}.media-library__tag-field{flex:1;min-width:80px;border:none;background:transparent;color:inherit;font-size:var(--font-size-sm);outline:none;padding:0}.media-library__tag-field::placeholder{color:var(--text-secondary)}.media-library__filename{margin:0 0 var(--space-2) 0;font-size:var(--font-size-base);word-break:break-word}.media-library__readonly-meta{font-size:var(--font-size-sm);color:var(--text-secondary)}.media-library__readonly-meta p{margin:0 0 var(--space-1) 0}.media-library__readonly-desc{font-style:italic;margin-top:var(--space-2)}@media(max-width:900px){.media-library__toolbar{flex-wrap:wrap}.media-library__toolbar-right{margin-left:0}.media-library__body{flex-direction:column;overflow-y:auto}.media-library__grid-wrap{max-height:40vh}.media-library__panel{width:100%}}.event-choice-resources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.resources-section-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.resources-section-header .form-label{margin-bottom:0}.resources-formula-toggle{background:none;border:1px solid transparent;border-radius:var(--radius-sm, 4px);cursor:pointer;padding:2px 5px;color:var(--text-muted, #888);line-height:1;transition:color .15s,border-color .15s,background .15s}.resources-formula-toggle:hover,.resources-formula-toggle.active{color:var(--color-primary, #6ba4f5);border-color:var(--color-primary, #6ba4f5);background:var(--surface-hover, rgba(107,164,245,.08))}.resource-formula-badge{display:inline-block;margin-left:4px;font-size:.7rem;font-style:italic;font-weight:600;color:var(--color-primary, #6ba4f5);opacity:.85;vertical-align:super;cursor:default}.resource-formula-panel{background:var(--surface-secondary, #1e2128);border:1px solid var(--border-color, #3a3a3a);border-radius:var(--radius-md, 6px);box-shadow:var(--shadow-xl, 0 8px 32px rgba(0,0,0,.45));overflow-y:auto;z-index:9999;font-size:var(--font-size-xs, .8rem)}.resource-formula-panel-header{padding:var(--space-2) var(--space-3);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted, #888);border-bottom:1px solid var(--border-color, #3a3a3a);background:var(--surface-tertiary, #17191f);border-radius:var(--radius-md, 6px) var(--radius-md, 6px) 0 0;position:sticky;top:0}.resource-formula-category{padding:var(--space-2) var(--space-3) var(--space-1)}.resource-formula-category-header{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, #888);margin-bottom:var(--space-1)}.resource-formula-category-vars{display:flex;flex-wrap:wrap;gap:4px}.resource-formula-var-btn{background:var(--surface-primary, #13151a);border:1px solid var(--border-color, #3a3a3a);border-radius:var(--radius-sm, 4px);color:var(--text-primary, #e0e0e0);font-size:.72rem;font-family:var(--font-mono, monospace);padding:2px 6px;cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.resource-formula-var-btn:hover{background:var(--color-primary, #6ba4f5);border-color:var(--color-primary, #6ba4f5);color:#fff}.effect-row{display:flex;flex-direction:column;border:1px solid var(--border-color, #3a3a3a);border-radius:var(--radius-md, 6px);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.effect-row__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.effect-row__label{font-size:.8rem;font-weight:600;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.04em}.species-management{display:flex;flex-direction:column;height:100%;min-height:0}.species-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background:var(--surface-primary);border:1px solid var(--border-color)}.species-table th{background-color:var(--surface-secondary);padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color);white-space:nowrap}.species-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.species-table th.sortable:hover{background-color:var(--surface-tertiary)}.species-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--surface-secondary);vertical-align:middle}.species-row{cursor:pointer;transition:background-color .2s}.species-row:hover,.species-row--striped{background-color:var(--surface-secondary)}.species-row.inactive{opacity:.6;background-color:var(--surface-secondary)}.species-row.inactive:hover{background-color:var(--surface-tertiary)}.number-cell{text-align:right;font-family:Courier New,monospace;font-weight:500}.status-badge{padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-lg);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase}.status-badge.active{background-color:var(--color-alert-success-bg);color:var(--color-alert-success-text)}.status-badge.inactive{background-color:var(--color-alert-danger-bg);color:var(--color-alert-danger-text)}.actions-column{width:120px;text-align:center}.actions-cell{display:flex;justify-content:flex-end;gap:var(--space-2)}.species-loading,.species-error{text-align:center;padding:var(--space-10);font-size:var(--font-size-lg)}.species-error{color:var(--color-danger);background-color:var(--color-alert-danger-bg);border-radius:var(--border-radius)}.species-table th.actions-column{width:120px;text-align:center}.species-table td.actions-cell{text-align:center}.species-table td.center{text-align:center;color:var(--text-secondary)}.species-empty__icon{font-size:3rem;margin-bottom:var(--space-4);opacity:.5}.species-empty{text-align:center;padding:var(--space-10);color:var(--text-secondary)}.species-empty p{margin-bottom:var(--space-5);font-size:var(--font-size-lg)}@media(max-width:768px){.species-table{font-size:var(--font-size-xs)}.species-table th,.species-table td{padding:var(--space-2) var(--space-3)}.actions-cell{flex-direction:column;gap:var(--space-1)}.btn--xs{padding:var(--space-1);font-size:var(--font-size-sm)}}.modal-overlay{position:fixed;inset:0;background:var(--surface-overlay);display:flex;align-items:flex-start;justify-content:center;z-index:var(--z-modal);padding:0;animation:modal-overlay-appear var(--transition-base)}.modal-overlay--nested{z-index:var(--z-modal-nested);background:var(--overlay-dark-60)}.modal-overlay--centered{align-items:center}.modal{background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;animation:modal-appear var(--transition-slow)}@keyframes modal-appear{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes modalEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal__content,.modal-content{animation:modalEnter .3s ease-out}.modal-container{background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:42rem;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modal-appear var(--transition-slow)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--fantasy-border-focus);background:var(--surface-tertiary);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;flex-shrink:0}.modal-header h2,.modal-header h3,.modal-header .modal__title{font-family:var(--font-fantasy-title);color:var(--fantasy-gold);letter-spacing:.06em}.modal-content{flex:1;overflow-y:auto;padding:var(--space-6)}.modal-footer{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-6);border-top:var(--border-width) solid var(--border-color);background:var(--surface-secondary);flex-shrink:0}.modal--xs{max-width:20rem}.modal--sm{max-width:28rem}.modal--md{max-width:42rem}.modal--lg{max-width:56rem}.modal--xl{max-width:72rem}.modal--full{max-width:90vw}.modal--centered{align-self:center}.modal--with-sidebar{display:flex;flex-direction:row}.modal__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);border-bottom:1px solid var(--fantasy-border-focus);background:var(--surface-tertiary);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;flex-shrink:0}.modal__title{margin:0;font-family:var(--font-fantasy-title);color:var(--fantasy-gold);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);letter-spacing:.06em;line-height:1.2}.modal__close{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--text-secondary);padding:var(--space-2);width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-circle);transition:all var(--transition-base)}.modal__close:hover{background:var(--border-color);color:var(--text-primary)}.modal__content{flex:1;overflow-y:auto;padding:var(--space-6)}.modal__content--no-padding{padding:0}.modal__content--with-tabs{padding:0;display:flex;flex-direction:column}.modal__description{background:var(--fantasy-gold-subtle);padding:var(--space-4) var(--space-6);color:var(--fantasy-text);font-size:var(--font-size-sm);line-height:1.5;border-bottom:1px solid var(--fantasy-border);margin:0}.modal__footer{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-1) var(--space-6);border-top:var(--border-width) solid var(--border-color);background:var(--surface-secondary);flex-shrink:0}.modal__footer--space-between{justify-content:space-between}.modal__footer--center{justify-content:center}.modal__footer--sticky{position:sticky;bottom:0;background:var(--surface-secondary);box-shadow:0 -2px 10px var(--overlay-dark-10);z-index:10}.modal__sidebar{width:280px;min-width:280px;background:var(--surface-secondary);border-right:var(--border-width) solid var(--border-color);overflow-y:auto;flex-shrink:0}.modal__main{flex:1;display:flex;flex-direction:column;min-width:0}.modal__loading,.modal__error{display:flex;align-items:center;justify-content:center;padding:var(--space-10);text-align:center;font-size:var(--font-size-lg)}.modal__error{color:var(--color-danger);background:var(--color-alert-danger-bg);border-radius:var(--border-radius);margin:var(--space-6)}@keyframes modal-overlay-appear{0%{opacity:0}to{opacity:1}}.cancel-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5;border:var(--border-width) solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;background:var(--surface-tertiary);color:var(--fantasy-text);border-color:var(--border-color-strong);box-shadow:0 2px 4px var(--shadow-secondary-md)}.cancel-btn:hover{background:var(--border-color-strong);border-color:var(--text-muted);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-secondary-lg)}.delete-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5;border:var(--border-width) solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-danger) 0%,var(--color-danger-hover) 100%);color:var(--fantasy-text);border-color:var(--color-danger);box-shadow:0 2px 4px var(--shadow-danger-md)}.delete-button:hover{background:linear-gradient(135deg,var(--color-danger-hover) 0%,var(--color-danger-darker) 100%);border-color:var(--color-danger-hover);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-danger-lg)}.separate-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5;border:var(--border-width) solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-warning-hover) 100%);color:var(--fantasy-text);border-color:var(--color-warning);box-shadow:0 2px 4px var(--shadow-warning-md)}.separate-button:hover{background:linear-gradient(135deg,var(--color-warning-hover) 0%,var(--color-warning-darker) 100%);border-color:var(--color-warning-hover);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-warning-lg)}.assign-partner-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.5;border:var(--border-width) solid transparent;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--color-success) 0%,var(--color-success-hover) 100%);color:var(--fantasy-text);border-color:var(--color-success);box-shadow:0 2px 4px var(--shadow-success-md)}.assign-partner-button:hover{background:linear-gradient(135deg,var(--color-success-hover) 0%,var(--color-success-darker) 100%);border-color:var(--color-success-hover);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-success-lg)}.modal-header-gradient{background:var(--surface-tertiary);color:var(--fantasy-gold);border-bottom:1px solid var(--fantasy-border-focus);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.modal-header-gradient .modal__title,.modal-header-gradient h2{margin:0;font-family:var(--font-fantasy-title);font-size:var(--font-size-2xl);font-weight:600;letter-spacing:.06em;color:var(--fantasy-gold)}.modal-header-gradient .modal__close{background:none;border:none;font-size:var(--font-size-2xl);cursor:pointer;color:var(--fantasy-text-muted);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-circle);transition:background-color .2s,color .2s}.modal-header-gradient .modal__close:hover{background-color:var(--fantasy-gold-subtle);color:var(--fantasy-gold)}.card-hover-blue{background:var(--surface-secondary);border-radius:var(--border-radius);padding:var(--space-5);border:2px solid var(--border-color)}.input-focus-blue{padding:var(--space-2-5) var(--space-3);border:2px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);transition:border-color .3s ease,box-shadow .3s ease}.input-focus-blue:focus{outline:none;border-color:var(--color-secondary-hover);box-shadow:0 0 0 3px var(--shadow-primary-sm)}.tab-navigation{display:flex;background:var(--surface-secondary);border-radius:var(--border-radius-lg);padding:var(--space-1);gap:var(--space-1)}.tab-navigation__item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:none;background:transparent;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);border-radius:var(--border-radius-md);text-align:left;width:100%}.tab-navigation__item:hover:not(:disabled){background:var(--surface-tertiary);color:var(--text-primary)}.tab-navigation__item--active{background:var(--fantasy-gold-subtle);color:var(--fantasy-gold);font-weight:var(--font-weight-semibold)}.tab-navigation__item--disabled{opacity:.5;cursor:not-allowed}.tab-navigation__icon{font-size:var(--font-size-lg);flex-shrink:0}.tab-navigation__label{flex:1}.tab-navigation__count{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:var(--font-weight-normal)}.tab-navigation--horizontal{flex-direction:row;border-bottom:1px solid var(--border-color)}.tab-navigation--vertical{flex-direction:column;width:280px;flex-shrink:0;border-right:1px solid var(--border-color);border-bottom:none;background:var(--surface-secondary);padding:0;border-radius:0}.tab-navigation--horizontal .tab-navigation__item{border-radius:var(--border-radius-md) var(--border-radius-md) 0 0;border-bottom:2px solid transparent;padding:var(--space-3) var(--space-4)}.tab-navigation--vertical .tab-navigation__item{justify-content:flex-start;padding:var(--space-4);margin:0;border-radius:0;border-left:3px solid transparent}.tab-navigation--horizontal .tab-navigation__item--active{border-bottom-color:var(--fantasy-gold);background:var(--fantasy-gold-subtle)}.tab-navigation--vertical .tab-navigation__item--active{border-left-color:var(--fantasy-gold);background:var(--fantasy-gold-subtle)}.sidebar-btn{width:100%;display:flex;align-items:center;padding:var(--space-3) var(--space-4);border:0;background:transparent;text-align:left;cursor:pointer;transition:all var(--transition-base);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:0;outline:none}.sidebar-btn:hover{background:var(--fantasy-gold-subtle);color:var(--fantasy-gold)}.sidebar-btn--active,.sidebar-btn--active:hover{background:var(--fantasy-gold-subtle);color:var(--fantasy-gold);border-left:3px solid var(--fantasy-gold)}.sidebar-btn--disabled,.sidebar-btn--disabled:hover{opacity:.5;cursor:not-allowed;background:transparent}.sidebar-btn--sub{padding-left:var(--space-8);font-weight:var(--font-weight-normal)}.sidebar-btn__icon{margin-right:var(--space-2);font-size:var(--font-size-lg);width:20px;text-align:center;flex-shrink:0}.sidebar-btn__label{flex:1;font-size:var(--font-size-sm)}.sidebar-btn__count{margin-left:var(--space-2);padding:0 var(--space-2);min-width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--surface-tertiary);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);flex-shrink:0}.sidebar-btn--active .sidebar-btn__count{background:var(--fantasy-gold-subtle);color:var(--fantasy-gold)}.universe-content-header{padding:var(--space-6);border-bottom:1px solid var(--border-color);background-color:var(--surface-secondary);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.universe-content-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.universe-content-body{flex:1;padding:var(--space-6);overflow-y:auto;min-height:0}@media(max-width:768px){.universe-content-header{padding:var(--space-3) var(--space-4);gap:var(--space-2)}.universe-content-header h3{display:flex;align-items:center;gap:var(--space-2);flex:1 1 auto;min-width:0;font-size:var(--font-size-lg)}.universe-content-header .btn{flex:0 0 auto;width:auto}}.ie-mobile-note{display:none}@media(max-width:768px){.import-export-modal .ie-fs-only{display:none}.import-export-modal .ie-mobile-note{display:block;margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}}.universe-modal-content .jobs-management,.mnm-content__body--raw .jobs-management{display:flex;flex-direction:column;height:100%;min-height:0;gap:0}@media(max-width:768px){.jobs-management .actions-cell .btn,.jobs-management .universe-content-header .btn{min-height:44px}}.modal-form-body{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6)}.modal-form-info{padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--border-radius-md);border:1px solid var(--border-color)}.modal-form-info h4{margin:0 0 var(--space-2) 0;color:var(--color-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.modal-form-info p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.4}.modal-color-swatch{width:40px;height:40px;border:2px solid var(--border-color);border-radius:var(--border-radius-md);cursor:pointer;flex-shrink:0}.modal-color-row{display:flex;align-items:center;gap:var(--space-3)}.modal-color-value{font-family:monospace;font-size:var(--font-size-sm);color:var(--text-secondary)}.modal-footer-actions{display:flex;justify-content:center;gap:var(--space-4);width:100%}.calendar-management{display:flex;flex-direction:column;height:100%;min-height:0}.calendar-management .btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2-5) var(--space-4);border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;white-space:nowrap}.calendar-management .btn-small{padding:var(--space-px-6) var(--space-3);font-size:var(--font-size-xs)}.calendar-management .btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.calendar-management .items-list{display:flex;flex-direction:column;gap:var(--space-3)}.calendar-management .item-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--surface-secondary);border:1px solid var(--surface-tertiary);border-radius:var(--border-radius);transition:all .2s ease}.calendar-management .item-card:hover{background:var(--surface-tertiary);border-color:var(--border-color)}.calendar-management .item-info{flex:1}.calendar-management .item-name{font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1);font-size:var(--font-size-base)}.calendar-management .item-details{color:var(--text-secondary);font-size:var(--font-size-sm)}.calendar-management .item-actions{display:flex;gap:var(--space-2);align-items:center}.calendar-management .form-group{margin-bottom:var(--space-5)}.calendar-management .form-group>label:not(.check-row),.calendar-management .form-group .form-label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--text-primary);font-size:var(--font-size-sm)}.calendar-management .form-group input,.calendar-management .form-group select{width:100%;padding:var(--space-2-5) var(--space-3);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-sm);transition:border-color .2s ease}.calendar-management .form-group input:focus,.calendar-management .form-group select:focus{outline:none;border-color:var(--fantasy-gold);box-shadow:0 0 0 3px var(--focus-ring-primary)}.calendar-management .loading{text-align:center;padding:var(--space-10);color:var(--text-secondary);font-style:italic}.calendar-error{color:var(--color-danger);padding:var(--space-3);background:var(--color-alert-danger-bg);border-radius:var(--border-radius);margin-bottom:var(--space-4)}.calendar-management .form-row--end{justify-content:space-between;align-items:flex-end}.calendar-info-box{margin-top:var(--space-5);padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--border-radius);border-left:3px solid var(--color-info, var(--fantasy-gold));font-size:var(--font-size-sm)}.calendar-info-box p{margin:0 0 var(--space-2) 0}.calendar-info-box p:last-child{margin-bottom:0}.calendar-summary{margin-top:var(--space-8);padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--border-radius)}.calendar-summary h4{margin:0 0 var(--space-3) 0;color:var(--text-primary)}.calendar-summary p{margin:var(--space-1) 0;color:var(--text-secondary)}.items-count{margin-bottom:var(--space-5);color:var(--text-secondary)}.lang-indicator{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:400}.item-delete-confirm{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-danger)}@media(max-width:768px){.calendar-management .item-card{flex-direction:column;gap:var(--space-3);align-items:stretch}.calendar-management .item-actions{justify-content:center;flex-wrap:wrap}.calendar-management .item-actions .btn{flex:0 0 auto;padding:var(--space-2);width:auto}}.progress-bar{width:100%;height:20px;background-color:var(--border-color);border-radius:var(--border-radius-lg);overflow:hidden;margin-bottom:var(--space-1)}.progress-bar--compact{height:5px;margin-bottom:0}.progress-fill{height:100%;background:linear-gradient(90deg,var(--color-success),var(--color-success));transition:width .3s ease;border-radius:var(--border-radius-lg)}.progress-text{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center}.construction-queue-item{padding:var(--space-2) 0;border-bottom:1px solid var(--border-color)}.construction-queue-item:last-child{border-bottom:none}.construction-queue-item--compact{border-bottom:none}.construction-queue-item-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.population-tab{padding:0;max-width:100%}@media(max-width:768px){.population-stats{flex-direction:column}}.list-view{width:100%}.quick-add-button{padding:var(--space-2) var(--space-4);background-color:var(--fantasy-gold);color:var(--fantasy-text);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:500;transition:background-color .2s}.quick-add-button:hover{background-color:var(--fantasy-gold-dim)}.list-actions{display:flex;gap:var(--space-2-5);align-items:center;align-self:flex-end}.list-actions__create,.filter-search-mobile{display:none}.data-table tbody tr.sick{background-color:var(--color-alert-danger-bg)}.data-table tbody tr.sick:hover{background-color:var(--color-alert-danger-border)}.pc-badge{background-color:var(--color-success);color:var(--fantasy-text);padding:var(--space-px-2) var(--space-px-6);border-radius:var(--border-radius-sm);font-size:.8em;margin-left:var(--space-2)}.pregnancy-badge{font-size:var(--font-size-base);margin-left:var(--space-2);vertical-align:middle}.close{position:absolute;top:var(--space-2-5);right:15px;font-size:24px;cursor:pointer}@media(max-width:768px){.list-view .filter-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);align-items:end}.filter-search-mobile{display:block}.filter-search-mobile input{width:100%}.list-view .filter-row .clear-filters-btn{grid-column:1 / -1;justify-self:center;width:auto;min-height:36px;padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.search-and-actions{width:100%;margin-top:var(--space-2-5);flex-direction:column;align-items:stretch;gap:var(--space-2-5)}.search-and-actions>.filter-group{display:none}.search-form,.search-form input,.list-actions{width:100%}.list-actions__create{display:block}.list-actions>*{flex:1}.quick-add-button{min-height:44px}.list-view .data-table tbody td,.list-view .data-table th{padding-top:var(--space-3);padding-bottom:var(--space-3)}.list-view .data-table .btn{min-height:44px}}.status-sick{color:var(--color-danger);background-color:var(--color-alert-danger-bg);padding:var(--space-2);border-radius:var(--border-radius-sm)}.status-healthy{color:var(--color-success-hover);background-color:var(--color-alert-success-bg);padding:var(--space-2);border-radius:var(--border-radius-sm)}.inh-edit-portrait-zone{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-6)}.inh-edit-portrait-box{width:120px;height:160px;border:2px dashed var(--border-color);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;overflow:hidden}.inh-edit-portrait-input{display:none}.family-section{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.partner-info,.no-partner-info{display:flex;align-items:center;gap:var(--space-4)}.partner-info .separate-button,.no-partner-info .assign-partner-button{margin-left:auto;flex-shrink:0}.inh-edit-parent-selector{position:relative}.inh-edit-chip-row{display:flex;align-items:center;gap:var(--space-2)}.inh-edit-chip{padding:var(--space-1) var(--space-2);background:var(--surface-tertiary);border-radius:var(--border-radius);flex:1}.inh-edit-chip-clear{padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);background:var(--surface-secondary);border-radius:var(--border-radius);cursor:pointer}.inh-edit-dropdown{position:absolute;top:100%;left:0;right:0;max-height:220px;overflow-y:auto;margin:var(--space-1) 0 0 0;padding:0;list-style:none;background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);z-index:5}.inh-edit-dropdown-empty{padding:var(--space-2);color:var(--text-secondary)}.inh-edit-dropdown-item{padding:var(--space-2);cursor:pointer;border-bottom:1px solid var(--border-color)}.inh-edit-dropdown-item:hover{background:var(--surface-secondary)}.inh-edit-dropdown-meta{color:var(--text-secondary)}.inh-edit-modal-body{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6)}.inh-edit-info-panel{padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--border-radius);border:1px solid var(--border-color);text-align:center}.inh-edit-info-panel p{margin:0;color:var(--text-primary)}.inh-edit-empty-panel{text-align:center;padding:var(--space-8);background:var(--surface-secondary);border-radius:var(--border-radius);border:2px dashed var(--border-color)}.inh-edit-empty-panel--sm{padding:var(--space-6)}.inh-edit-empty-panel__icon{font-size:3rem;margin-bottom:var(--space-4);opacity:.5}.inh-edit-empty-panel__text{margin:0;color:var(--text-secondary);font-style:italic}.inh-edit-partner-list{display:flex;flex-direction:column;gap:var(--space-3)}.inh-edit-partner-card{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--border-radius);border:1px solid var(--border-color);transition:all var(--transition-base)}.inh-edit-partner-card:hover{background:var(--surface-tertiary);border-color:var(--color-primary)}.inh-edit-partner-name{font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-1);display:flex;align-items:center;gap:var(--space-2)}.inh-edit-same-sex-badge{font-size:var(--font-size-xs);padding:var(--space-px-2) var(--space-px-6);border-radius:var(--border-radius-sm);background:var(--color-alert-warning-bg);color:var(--color-alert-warning-text);border:1px solid var(--color-alert-warning-border)}.pregnancy-info,.no-pregnancy-info{display:flex;align-items:center;gap:var(--space-4)}.pregnancy-details p{margin:0}.pregnancy-info-text{font-size:var(--font-size-sm);color:var(--text-secondary)}.no-pregnancy-info button{margin-left:auto;flex-shrink:0}.quick-add-modal-body{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6)}.quick-add-modal-footer{display:flex;justify-content:center;gap:var(--space-4);width:100%}.quick-add-field-label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.quick-add-input-full{width:100%}.quick-add-section-title{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.quick-add-options-list{display:flex;flex-direction:column;gap:var(--space-3)}.quick-add-checkbox{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;color:var(--text-primary)}.quick-add-checkbox input[type=checkbox]{transform:scale(1.2)}.quick-add-instruction{text-align:center;margin-bottom:var(--space-4);padding:var(--space-4);background:var(--surface-secondary);border-radius:var(--border-radius-md);border:1px solid var(--border-color)}.quick-add-instruction p{margin:0;color:var(--text-primary);font-size:var(--font-size-base)}.quick-add-job-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-secondary);border-radius:var(--border-radius-md);border:1px solid var(--border-color)}.quick-add-job-label{min-width:120px;font-weight:var(--font-weight-semibold);color:var(--text-primary)}.quick-add-job-select{flex:1}.inhabitant-details-title{display:flex;align-items:center;gap:var(--space-3)}.inhabitant-details-title-icon{font-size:2rem}.inhabitant-details-title-name{display:flex;align-items:center;gap:var(--space-2)}.inhabitant-details-pc-badge{background:var(--color-primary-light);color:var(--fantasy-gold);padding:var(--space-px-2) var(--space-2);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.inhabitant-details-pregnant-icon{font-size:1.2rem}.inhabitant-details-title-meta{color:var(--text-inverse-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);margin-top:var(--space-px-2)}.inhabitant-details-footer{display:flex;justify-content:center;gap:var(--space-4);width:100%}.inhabitant-details-body{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6)}.inhabitant-details-top{display:grid;grid-template-columns:1fr 200px;gap:var(--space-4);align-items:start}.inhabitant-details-cards-col,.inhabitant-details-portrait-col{min-width:0}.inhabitant-details-bottom{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.inhabitant-details-portrait{margin:0 auto;width:200px;aspect-ratio:3 / 4;border:1px solid var(--fantasy-border);border-radius:var(--border-radius);outline:2px solid var(--fantasy-gold-dim);outline-offset:3px;background-color:var(--surface-secondary, #f3f3f3);background-position:center;background-size:cover;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.inhabitant-details-portrait.is-readonly{cursor:default}.inhabitant-details-portrait-error{color:var(--color-danger, #c00);font-size:var(--font-size-xs);margin-top:var(--space-2);text-align:center}@media(max-width:720px){.inhabitant-details-top{grid-template-columns:1fr}.inhabitant-details-portrait{width:160px}}.inhabitant-details-subtext{font-size:var(--font-size-sm);color:var(--text-secondary)}.inhabitant-details-health.is-sick{color:var(--color-danger);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.inhabitant-details-health.is-healthy{color:var(--color-success);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.inhabitant-details-options{display:flex;flex-wrap:wrap;gap:var(--space-1)}.inhabitant-details-tag{color:var(--fantasy-text);padding:var(--space-px-2) var(--space-px-6);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs)}.inhabitant-details-tag.tag-warning{background:var(--color-warning)}.inhabitant-details-tag.tag-info{background:var(--color-info)}.inhabitant-details-tag.tag-secondary{background:var(--color-secondary)}.inhabitant-details-empty{color:var(--text-secondary);font-size:var(--font-size-sm)}.inhabitant-details-pregnancy{padding:var(--space-3);background:var(--color-alert-warning-bg);border:1px solid var(--color-alert-warning-border);border-radius:var(--border-radius-md, var(--border-radius))}.inhabitant-details-pregnancy-title{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1)}.inhabitant-details-stack{display:flex;flex-direction:column;gap:var(--space-4)}.inhabitant-details-subsection-title{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.inhabitant-details-prose{padding:var(--space-3);background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-md, var(--border-radius));line-height:1.5}.inhabitant-details-prose-pre{white-space:pre-wrap}.inhabitant-details-placeholder{color:var(--text-secondary);font-style:italic}.create-inhabitant-card{background-color:var(--surface-primary);border:none;border-radius:var(--border-radius);padding:var(--space-4);text-align:center;box-shadow:var(--shadow);cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;font:inherit;color:inherit}.create-inhabitant-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.create-inhabitant-icon{font-size:24px;margin-bottom:var(--space-2-5);color:var(--color-success)}.create-inhabitant-text{font-weight:500;color:var(--text-primary)}@media(max-width:768px){.create-inhabitant-card{flex-direction:row;height:44px;min-height:44px;padding:var(--space-2) var(--space-4);gap:var(--space-2);width:100%;justify-content:center}.create-inhabitant-icon{margin-bottom:0;font-size:1.1em}}.summary-view{width:100%}.jobs-management{display:flex;flex-direction:column;gap:var(--space-5)}.summary-view .data-table{font-size:var(--font-size-base)}.data-table tbody tr.worker-row{background-color:var(--surface-secondary)}.data-table tbody tr.worker-row:hover{background-color:var(--border-color)}.worker-info{padding:var(--space-1) var(--space-2-5);background-color:var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-secondary);font-size:.9em;font-style:italic}.job-name{display:flex;align-items:center;gap:var(--space-2)}.stat-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--space-5);background-color:var(--surface-primary);padding:var(--space-5);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.stat-bar-item{text-align:center}.stat-bar-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-1)}.stat-bar-value{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary)}@media(max-width:768px){.population-stat-bar{grid-template-columns:repeat(3,1fr);gap:var(--space-3);padding:var(--space-3)}.population-stat-bar .stat-bar-value{font-size:var(--font-size-lg)}}.deceased-details-title{display:flex;align-items:center;gap:var(--space-3)}.deceased-details-title-icon{font-size:2rem;flex-shrink:0}.deceased-details-title-name{display:flex;align-items:center;gap:var(--space-2)}.deceased-details-title-meta{color:var(--text-inverse-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);margin-top:var(--space-px-2)}.deceased-details-footer{display:flex;justify-content:center;gap:var(--space-4);width:100%}@media(max-width:768px){.deceased-details-footer{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);align-items:stretch}.deceased-details-footer .btn{min-width:0;width:100%}}.deceased-details-body{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-6)}.deceased-details-cause{color:var(--color-alert-danger-text);font-weight:var(--font-weight-medium)}.deceased-details-stack{display:flex;flex-direction:column;gap:var(--space-4)}.deceased-details-subsection-title{margin:0 0 var(--space-2) 0;color:var(--text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.deceased-details-prose{padding:var(--space-3);background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-md, var(--border-radius));line-height:1.5}.deceased-details-prose--pre{white-space:pre-wrap}.deceased-view{padding:0;background-color:transparent;min-height:auto}.deceased-view .stat-bar{margin-bottom:var(--space-4)}.deceased-view .data-table-container{margin-bottom:var(--space-5)}.deceased-view .data-table th{position:sticky;top:0;z-index:10}.clickable-row{cursor:pointer;transition:background-color .2s ease}.clickable-row:hover{background-color:var(--color-alert-info-bg)!important}.number-cell{text-align:right;font-family:Courier New,monospace}.no-data{text-align:center;padding:var(--space-10);color:var(--text-secondary);font-style:italic}.modal-body{padding:var(--space-5)}.detail-item{display:flex;flex-direction:column;gap:var(--space-1)}.detail-item.full-width{grid-column:1 / -1}.detail-item strong{color:var(--text-primary);font-weight:600}@media(max-width:768px){.deceased-view .filter-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);align-items:end}.deceased-view .filter-row .clear-filters-btn{width:100%;min-height:44px}.deceased-view .data-table{font-size:var(--font-size-xs)}.deceased-view .data-table th,.deceased-view .data-table td{padding:var(--space-2) var(--space-1)}.detail-item.full-width{grid-column:1}}.population-stats{margin-bottom:var(--space-5)}.population-stats-row{display:flex;flex-direction:row;align-items:stretch;gap:var(--space-4)}.population-stats-row .population-stat-bar{flex:1}.sick-stat .stat-bar-value{color:var(--text-primary)}@media(max-width:768px){.population-stats .create-inhabitant-card{display:none}}.calc-card{background:var(--surface-primary);border-radius:var(--border-radius);padding:var(--space-5);box-shadow:var(--shadow-sm)}.calc-card h3{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:1.3em;text-align:center;border-bottom:2px solid var(--fantasy-gold);padding-bottom:var(--space-2-5)}.calc-card-table{width:100%;border-collapse:collapse;font-size:.95em}.calc-card-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color)}.calc-card-table td:first-child{font-weight:500;color:var(--text-primary)}.calc-card-table td:last-child{text-align:right;font-weight:600;color:var(--text-primary)}.calc-card-total{background:var(--surface-tertiary);border-top:2px solid var(--fantasy-gold)}.calc-card-total td{padding:var(--space-3);font-size:1.05em}.calc-card-separator td{border-top:1px solid var(--text-muted);padding-top:var(--space-2)}.calc-card-summary{background:linear-gradient(135deg,var(--fantasy-gold-dim) 0%,var(--gradient-header-end) 100%);color:var(--fantasy-text);box-shadow:var(--shadow)}.calc-card-summary h3{color:var(--fantasy-text);text-shadow:0 1px 2px var(--overlay-dark-30)}.calc-card-summary .calc-card-table td{color:var(--fantasy-text);border-bottom:1px solid var(--overlay-light-30)}.calc-card-summary .calc-card-total{background:var(--overlay-light-10);border-top:2px solid var(--overlay-light-80)}.calc-card-table td.calc-card-value--positive{color:var(--color-success)!important}.calc-card-table td.calc-card-value--negative{color:var(--color-danger)!important}.calc-card-summary .calc-card-table td.calc-card-value--positive,.calc-card-summary .calc-card-table td.calc-card-value--negative{color:var(--fantasy-text)!important}.revenues-summary-full-width .calc-card:first-child{display:flex;flex-direction:column;height:100%}.revenues-summary-full-width .calc-card:first-child .calc-card-table{flex:1}.revenues-summary-full-width{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin-bottom:var(--space-10);width:100%;align-items:start}.modifiers-section{margin-top:var(--space-10)}.modifiers-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}.modifiers-column{display:flex;flex-direction:column;gap:var(--space-4)}.modifiers-column-title{color:var(--text-primary);margin:0 0 var(--space-5) 0;font-size:1.2em;border-bottom:2px solid var(--fantasy-gold);padding-bottom:var(--space-2);text-align:center}@media(max-width:768px){.calc-card{padding:var(--space-4)}.calc-card-table{font-size:.9em}.calc-card-table td{padding:var(--space-px-6) var(--space-2)}.revenues-summary-full-width,.modifiers-grid{grid-template-columns:1fr;gap:var(--space-5)}.modifiers-column-title{font-size:1.1em}}@media(max-width:480px){.calc-card h3{font-size:1.1em}.calc-card-table{font-size:.85em}}.modifiers-table-container{margin-bottom:var(--space-8);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm)}.modifiers-table-header{background-color:var(--surface-secondary);padding:var(--space-4);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modifiers-table-header h2{margin:0;font-size:var(--font-size-xl);color:var(--text-primary)}.total-effect{font-weight:700}.modifiers-table{width:100%;border-collapse:collapse}.modifiers-table th,.modifiers-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-color)}.modifiers-table th{background-color:var(--surface-secondary);font-weight:700}.modifiers-table tr:last-child td{border-bottom:none}.modifiers-table tr:hover{background-color:var(--surface-secondary)}.add-modifier-form{padding:var(--space-4);background-color:var(--surface-secondary);border-top:1px solid var(--border-color)}.add-modifier-form h3{margin-top:0;margin-bottom:var(--space-4);font-size:var(--font-size-lg)}.form-buttons{display:flex;gap:var(--space-2-5);margin-top:var(--space-4)}.form-row{display:flex;gap:var(--space-4);margin-bottom:var(--space-4)}.form-group{flex:1;margin-bottom:var(--space-4)}.form-group input{width:100%;padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}.add-btn,.save-btn,.cancel-btn{padding:var(--space-px-6) var(--space-3);border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-weight:700;transition:background-color .3s}.add-btn{background-color:var(--color-success);color:var(--fantasy-text)}.add-btn:hover{background-color:var(--color-success-dark)}.save-btn{background-color:var(--color-success);color:var(--fantasy-text);margin-right:var(--space-1)}.save-btn:hover{background-color:var(--color-success-dark)}.cancel-btn{background-color:var(--surface-tertiary);color:var(--fantasy-text)}.cancel-btn:hover{background-color:var(--border-color-strong)}.modifiers-section{display:flex;flex-direction:column;gap:var(--space-5)}.action-buttons{display:flex;justify-content:flex-end;gap:var(--space-1)}.action-buttons button{flex:0 0 auto;min-width:80px}.modifiers-table-container.compact{margin-bottom:var(--space-4)}.modifiers-table-container.compact .modifiers-table-header h3{font-size:1em;margin-bottom:var(--space-2-5);color:var(--text-primary)}.action-buttons.compact{gap:var(--space-1)}.action-buttons.compact button{padding:var(--space-px-2) var(--space-1);font-size:var(--font-size-xs);min-width:24px;height:24px;display:flex;align-items:center;justify-content:center}.modifiers-table-title-row{display:flex;align-items:center;gap:var(--space-2)}.add-modifier-btn-compact{width:24px;height:24px;border:none;border-radius:var(--border-radius-sm);background:var(--color-success);color:var(--fantasy-text);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s;flex-shrink:0}.add-modifier-btn-compact:hover,.add-modifier-btn-compact:active{background:var(--color-success-dark)}.save-btn.compact,.cancel-btn.compact,.add-btn.compact{width:24px;height:24px;padding:0;min-width:24px;font-size:var(--font-size-xs);border-radius:var(--border-radius-sm);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.save-btn.compact{background:var(--color-success);color:var(--fantasy-text)}.save-btn.compact:hover{background:var(--color-success-dark)}.cancel-btn.compact{background:var(--color-danger);color:var(--fantasy-text)}.cancel-btn.compact:hover{background:var(--color-danger-hover)}.add-btn.compact{background:var(--btn-success-bg);color:var(--btn-success-fg)}.add-btn.compact:hover{background:var(--btn-success-bg-hover)}.modifiers-table th:nth-child(1){width:18%}.modifiers-table th:nth-child(2){width:12%}.modifiers-table th:nth-child(3){width:38%}.modifiers-table th:nth-child(4){width:18%}.modifiers-table th:nth-child(5){width:14%;text-align:right}.modifiers-table td:nth-child(5){text-align:right}.modifiers-table td.duration-cell{white-space:nowrap;font-size:.85em;color:var(--text-secondary)}.modifiers-table .action-buttons{display:flex;justify-content:flex-end;gap:var(--space-1)}.modifiers-table .action-buttons.compact{gap:var(--space-1);justify-content:flex-end}.modifiers-table td[title]{cursor:help}.building-modifier-info,.research-modifier-info{color:var(--text-secondary);white-space:nowrap;cursor:default}.modifiers-table td:last-child .building-modifier-info,.modifiers-table td:last-child .research-modifier-info{cursor:default}@media(max-width:768px){.modifiers-table,.modifiers-table tbody{display:block;width:100%}.modifiers-table thead{display:none}.modifiers-table tr{position:relative;display:grid;grid-template-columns:7fr 3fr;grid-template-rows:auto auto auto;gap:0;margin:var(--space-2) var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-primary, var(--surface-secondary));overflow:hidden}.modifiers-table td:nth-child(1){grid-column:1 / -1;grid-row:1;font-weight:700;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3) var(--space-1);border-bottom:none}.modifiers-table td:nth-child(2){grid-column:2;grid-row:2;font-weight:700;font-size:var(--font-size-base);padding:0 var(--space-3) var(--space-2) var(--space-2);border-bottom:none;text-align:right;align-self:start;white-space:nowrap}.modifiers-table td:nth-child(3){grid-column:1;grid-row:2;width:100%!important;font-size:var(--font-size-xs);color:var(--text-secondary);padding:0 var(--space-2) var(--space-2) var(--space-3);border-bottom:none}.modifiers-table td:nth-child(3):empty{display:none}.modifiers-table td:nth-child(4){grid-column:1 / -1;grid-row:3;font-size:var(--font-size-xs);color:var(--text-secondary);padding:var(--space-2) 80px var(--space-2) var(--space-3);border-top:1px solid var(--border-color);border-bottom:none;white-space:normal;align-self:center}.modifiers-table td:nth-child(5){position:absolute;right:var(--space-3);bottom:var(--space-1);padding:0;border-bottom:none;text-align:right}.modifiers-table .action-buttons{gap:var(--space-1)}.modifiers-table .action-buttons button,.action-buttons button{min-width:0}.modifiers-table tr:last-child{margin-bottom:var(--space-2)}}.modifiers-table th:last-child,.modifiers-table td:last-child{text-align:right;width:180px}.modifiers-table th:nth-child(3),.modifiers-table td:nth-child(3){width:40%}.moral-title{font-weight:700;margin-bottom:var(--space-1);font-size:var(--font-size-xl)}.moral-value{font-size:var(--font-size-2xl);font-weight:700}@media(max-width:768px){.modifiers-table th:last-child,.modifiers-table td:last-child{width:auto}}.tab-content .tab-header{margin-bottom:var(--space-8)}.tab-header h2{color:var(--text-primary);margin:0;font-size:2em}.right-column{display:flex;flex-direction:column;gap:var(--space-5);height:100%}@media(max-width:480px){.tab-content{padding:var(--space-4)}.tab-header h2{font-size:1.6em}}.charges-tab{padding:0}.moral-main-container{display:flex;flex-direction:row;gap:var(--space-5);margin-bottom:var(--space-5)}@media(max-width:768px){.moral-main-container{flex-direction:column}}.moral-left-panel{flex:1;background-color:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--space-5);display:flex;justify-content:center;align-items:center}.moral-global-circle{display:flex;flex-direction:column;align-items:center}.moral-circle{width:120px;height:120px;border-radius:var(--border-radius-circle);display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--fantasy-text);margin-bottom:var(--space-2-5);box-shadow:var(--shadow-md)}.moral-emoji{font-size:36px;margin-bottom:var(--space-1)}.moral-value{font-size:28px;font-weight:700}.moral-title{font-size:var(--font-size-xl);font-weight:700;margin-top:var(--space-2);text-align:center}.moral-right-panel{flex:1;display:flex;flex-direction:column}.moral-effects-card{background-color:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--space-5);height:100%}.effects-title{font-size:var(--font-size-lg);font-weight:700;margin-bottom:var(--space-5);color:var(--text-primary)}.effect-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);position:relative}.effect-label{font-size:var(--font-size-base);color:var(--text-primary);flex:1}.effect-value{font-size:var(--font-size-base);font-weight:700;text-align:right;flex:1;margin-right:var(--space-5)}.effect-info{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:right;flex:1}.health-tab{padding:0}.health-tab h2{margin-bottom:var(--space-5)}.loading{display:flex;justify-content:center;align-items:center;height:300px;font-size:var(--font-size-xl);color:var(--text-secondary)}.error-message{display:flex;justify-content:center;align-items:center;height:300px;font-size:var(--font-size-xl);color:var(--color-danger);background-color:var(--color-alert-danger-bg);border-radius:var(--border-radius);padding:var(--space-5)}.error-message--mb{margin-bottom:var(--space-4)}.form-label--inline{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.template-selector{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-5);margin-bottom:var(--space-5)}.template-selector h4{margin:0 0 var(--space-4) 0;color:var(--text-primary)}.template-name{font-weight:700;color:var(--text-primary);display:block;margin-bottom:var(--space-1)}.template-description{font-size:.85em;color:var(--text-secondary);line-height:1.3}.effects-list{display:flex;flex-direction:column;gap:var(--space-4)}.effect-info{display:flex;align-items:center;gap:var(--space-2-5)}.parameter-row{display:flex;flex-direction:column;margin-bottom:var(--space-4)}.parameter-label{font-weight:500;color:var(--text-primary);margin-bottom:var(--space-1);font-size:.9em}.parameter-label .required{color:var(--color-danger);margin-left:var(--space-1)}.parameter-input{padding:var(--space-2) var(--space-3);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-sm);font-size:.9em;transition:border-color .2s}.parameter-input:focus{outline:none;border-color:var(--fantasy-gold);box-shadow:0 0 0 2px var(--focus-ring-primary)}.parameter-input:disabled{background-color:var(--surface-tertiary);opacity:.6}.condition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);font-weight:500}.building-search{position:relative;min-width:200px}.formula-input-container{width:100%}.formula-input-wrapper{margin-bottom:var(--space-4)}.formula-input-with-equals{display:flex;align-items:flex-start;gap:var(--space-2)}.formula-equals{font-size:1.2em;font-weight:700;color:var(--text-primary);padding-top:var(--space-2-5);line-height:1;font-family:Courier New,monospace}.formula-textarea{flex:1;min-height:80px;font-family:Courier New,monospace;font-size:.9em;resize:vertical;padding:var(--space-2-5);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-sm);background:var(--surface-primary)}.formula-textarea:focus{outline:none;border-color:var(--fantasy-gold);box-shadow:0 0 0 2px var(--focus-ring-primary);background:var(--surface-primary)}.formula-helpers{background:var(--surface-secondary);border:1px solid var(--surface-tertiary);border-radius:var(--border-radius);padding:var(--space-4);margin-top:var(--space-2-5)}.variables-main-header{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:.95em;font-weight:600}.variable-category{margin-bottom:var(--space-3)}.variable-category-header{padding:0 0 var(--space-1) 0;margin:0 0 var(--space-1) 0;color:var(--text-secondary);font-size:.8em;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.variable-buttons{display:flex;flex-wrap:wrap;gap:var(--space-px-6);padding:0 0 var(--space-2) 0}.variable-button{background:var(--surface-tertiary);color:var(--fantasy-gold);border:1px solid var(--fantasy-gold-dim);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);cursor:pointer;font-size:.8em;transition:all .2s;white-space:nowrap}.variable-button:hover{background:var(--fantasy-gold-subtle);border-color:var(--fantasy-gold);transform:translateY(-1px)}.operators-section h5{margin:0 0 var(--space-2-5) 0;color:var(--text-primary);font-size:.95em;font-weight:600}.operators-help{display:flex;flex-direction:column;gap:var(--space-1)}.operator-help{font-family:Courier New,monospace;font-size:.8em;color:var(--text-secondary);background:var(--surface-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);border:1px solid var(--surface-tertiary)}.info-text{font-style:italic}@media(max-width:768px){.effect-info{flex-wrap:wrap}.building-search{min-width:0}}.building-search-container{position:relative}.building-search-results{position:absolute;top:100%;left:0;right:0;background:var(--surface-primary);border:1px solid var(--border-color);border-top:none;border-radius:0 0 var(--border-radius-sm) var(--border-radius-sm);max-height:200px;overflow-y:auto;z-index:100;box-shadow:var(--shadow)}.building-search-result{padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--surface-secondary)}.building-search-result:hover{background:var(--surface-secondary)}.building-search-result:last-child{border-bottom:none}.renown-tab,.justice-defense-tab{padding:0}.justice-defense-tab h2{margin-bottom:var(--space-5);color:var(--text-primary)}.defense-means-section{background-color:var(--surface-primary);border-radius:var(--border-radius);box-shadow:var(--shadow-sm);padding:var(--space-5);margin-bottom:var(--space-8)}.defense-means-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.defense-means-header h3{margin:0}.add-defense-button{background-color:var(--fantasy-gold);color:var(--fantasy-text);border:none;border-radius:var(--border-radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;font-weight:700}.add-defense-button:hover{background-color:var(--fantasy-gold-dim)}.add-defense-form{background-color:var(--surface-secondary);border-radius:var(--border-radius);padding:var(--space-4);margin-bottom:var(--space-5)}.form-group{margin-bottom:var(--space-4)}.form-group>label:not(.check-row),.form-group .form-label{display:block;margin-bottom:var(--space-1);font-weight:700}.form-group input,.form-group textarea{width:100%;padding:var(--space-2);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-sm)}.form-group textarea{height:100px;resize:vertical}.submit-button{background-color:var(--color-success);color:var(--fantasy-text);border:none;border-radius:var(--border-radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;font-weight:700}.submit-button:hover{background-color:var(--color-success-dark)}.defense-means-table{width:100%;border-collapse:collapse}.defense-means-table th,.defense-means-table td{padding:var(--space-3);text-align:left;border-bottom:1px solid var(--border-color)}.defense-means-table th{background-color:var(--surface-secondary);font-weight:700}.defense-means-table .no-data{text-align:center;color:var(--text-secondary);padding:var(--space-5)}.delete-button{background-color:var(--color-danger);color:var(--fantasy-text);border:none;border-radius:var(--border-radius-sm);padding:var(--space-px-6) var(--space-3);cursor:pointer}.delete-button:hover{background-color:var(--color-danger-hover)}.defense-means-table .amount-input{width:8rem;padding:var(--space-1) var(--space-2);border:1px solid var(--border-color-strong);border-radius:var(--border-radius-sm)}.defense-means-table .amount-readonly{color:var(--text-secondary)}.construction-tab{padding:0}.construction-tab-loading{text-align:center;padding:var(--space-10);font-size:1.1em;color:var(--text-secondary)}.construction-tab-error{background:var(--color-alert-danger-bg);color:var(--color-alert-danger-text);border:1px solid var(--color-alert-danger-border);border-radius:var(--border-radius);padding:var(--space-5);margin:var(--space-5) 0;text-align:center}@media(max-width:1024px){.construction-tab .revenues-summary-full-width{grid-template-columns:1fr;gap:var(--space-4)}.construction-tab .modifiers-grid{grid-template-columns:1fr;gap:var(--space-5)}}.construction-queue-section{margin:var(--space-8) 0;background:var(--surface-primary);border-radius:var(--border-radius);padding:var(--space-5);box-shadow:var(--shadow-sm)}.construction-queue-section h3{margin:0 0 var(--space-5) 0;color:var(--text-primary);border-bottom:2px solid var(--border-color);padding-bottom:var(--space-2-5)}.construction-queue{display:flex;flex-direction:column;gap:var(--space-4)}.queue-item{background:var(--surface-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:var(--space-4);transition:all .2s ease}.queue-item:hover{border-color:var(--fantasy-gold);box-shadow:0 2px 8px var(--shadow-primary-sm)}.queue-item-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-2-5)}.queue-position{background:var(--fantasy-gold);color:var(--fantasy-text);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:700;min-width:30px;text-align:center}.building-name{flex:1;margin:0;color:var(--text-primary);font-size:var(--font-size-lg)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);border-radius:var(--border-radius-sm);border:none;cursor:pointer;transition:background-color .2s}.queue-item-progress{margin-bottom:var(--space-2-5)}.queue-item-details{display:flex;gap:var(--space-5);font-size:var(--font-size-sm);color:var(--text-secondary)}.no-construction{text-align:center;padding:var(--space-10) var(--space-5);color:var(--text-secondary)}.no-construction p{margin:var(--space-2-5) 0}.construction-tab.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.construction-tab-error{background-color:var(--color-alert-danger-bg);color:var(--color-alert-danger-text);padding:var(--space-4);border-radius:var(--border-radius-sm);margin-bottom:var(--space-5)}.building-detail-banner{display:block;width:calc(100% + 2 * var(--space-6));aspect-ratio:16 / 9;margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-6);background-size:cover;background-position:center;background-repeat:no-repeat}.building-conditions-display{border-radius:var(--border-radius);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.building-conditions-display.loading{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--surface-primary);border:1px solid var(--border-color);color:var(--text-secondary)}.loading-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.building-conditions-display.error{padding:var(--space-4);background:var(--color-alert-danger-bg);border:1px solid var(--color-alert-danger-border);color:var(--color-alert-danger-text)}.building-conditions-display.compact{display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:none;background:none;line-height:1;font-size:var(--font-size-base)}.building-conditions-display.full{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.conditions-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--surface-secondary);border-bottom:1px solid var(--border-color)}.conditions-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-lg)}.overall-status{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:20px;font-weight:500;font-size:var(--font-size-sm)}.overall-status.can-build{background:var(--color-alert-success-bg);color:var(--color-alert-success-text);border:1px solid var(--color-alert-success-border)}.overall-status.cannot-build{background:var(--color-alert-danger-bg);color:var(--color-alert-danger-text);border:1px solid var(--color-alert-danger-border)}.conditions-section{padding:var(--space-4);border-bottom:1px solid var(--border-color)}.conditions-section:last-child{border-bottom:none}.conditions-section h4{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:var(--font-size-base);border-bottom:1px solid var(--border-color);padding-bottom:var(--space-2)}.conditions-list{display:flex;flex-direction:column;gap:var(--space-3)}.condition-status{padding:var(--space-3);border-radius:var(--border-radius);border-left:4px solid}.condition-status.met{background:var(--color-alert-success-bg);border-left-color:var(--color-success)}.condition-status.not-met{background:var(--color-alert-danger-bg);border-left-color:var(--color-danger)}.condition-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.condition-name{font-weight:500;color:var(--text-primary)}.condition-description{color:var(--text-secondary);font-size:var(--font-size-sm);margin-bottom:var(--space-2);line-height:1.4}.condition-message{color:var(--text-primary);font-size:var(--font-size-sm);margin-bottom:var(--space-2);padding:var(--space-2);background:var(--overlay-dark-05);border-radius:var(--border-radius-sm)}.condition-parameters{font-size:var(--font-size-xs);color:var(--text-secondary)}.condition-parameters strong{color:var(--text-primary)}.condition-parameters ul{margin:var(--space-1) 0 0 var(--space-4);padding:0}.condition-parameters li{margin-bottom:var(--space-1)}.no-conditions{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-6);text-align:center;color:var(--text-secondary);font-style:italic;justify-content:center}.blocking-summary{padding:var(--space-4);background:var(--color-alert-warning-bg);border-top:1px solid var(--color-alert-warning-border)}.blocking-summary h4{margin:0 0 var(--space-3) 0;color:var(--color-alert-warning-text);font-size:var(--font-size-base)}.blocking-summary ul{margin:0;padding:0;list-style:none}.blocking-condition{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);margin-bottom:var(--space-2);background:var(--surface-tertiary);border-radius:var(--border-radius-sm);border-left:3px solid var(--color-warning);color:var(--color-alert-warning-text)}.blocking-condition:last-child{margin-bottom:0}.construction-status{padding:var(--space-4);background:var(--surface-secondary);border-top:1px solid var(--border-color)}.status-message{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--border-radius);font-weight:500}.status-message.success{background:var(--color-alert-success-bg);color:var(--color-alert-success-text);border:1px solid var(--color-alert-success-border)}.status-message.error{background:var(--color-alert-danger-bg);color:var(--color-alert-danger-text);border:1px solid var(--color-alert-danger-border)}.status-icon{font-size:var(--font-size-xl);flex-shrink:0}@media(max-width:768px){.conditions-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.overall-status{align-self:stretch;justify-content:center}.condition-header{flex-wrap:wrap}.status-message{flex-direction:column;text-align:center;gap:var(--space-2)}}.condition-status{transition:all .3s ease}.condition-status:hover{transform:translate(2px);box-shadow:var(--shadow-sm)}.buildings-tab{padding:0}.building-name{margin:0 0 var(--space-1) 0;color:var(--text-primary)}.conditions-cell{vertical-align:middle;white-space:nowrap;text-align:center}@media(max-width:768px){.building-row .actions-cell .btn{min-height:44px}}.building-plan-detail-banner{display:block;width:calc(100% + 2 * var(--space-6));aspect-ratio:16 / 9;margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) var(--space-6);background-size:cover;background-position:center;background-repeat:no-repeat}.building-plans-tab{padding:0}.data-table th:last-child{text-align:right}.building-row .actions-cell{text-align:right;display:flex;justify-content:flex-end;align-items:center}.building-row .actions-cell .btn{margin:0 var(--space-px-2)}.unique-badge-small{background-color:var(--color-warning);color:var(--text-primary);padding:var(--space-px-2) var(--space-1);border-radius:var(--border-radius-sm);font-size:10px;font-weight:700}.cost-value,.effort-value,.maintenance-value,.cycles-value,.habitations-value{font-family:Courier New,monospace;text-align:right;color:var(--text-primary)}.status-cell{text-align:center}.status-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-px-2) var(--space-2);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;border:1px solid transparent;line-height:1.4}.status-badge:before{content:"";width:6px;height:6px;border-radius:var(--border-radius-circle);background:currentColor;flex-shrink:0;opacity:.85}.conditions-cell{text-align:center;white-space:nowrap;padding:var(--space-2)}.action-buttons{display:flex;gap:var(--space-2);justify-content:flex-end;align-items:center}.building-row .actions-cell .btn--secondary{background:var(--surface-tertiary);color:var(--text-primary);border-color:var(--border-color-strong)}.building-row .actions-cell .btn--secondary:hover:not(:disabled){background:var(--surface-secondary);border-color:var(--border-color-strong)}.btn-sm{padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs)}.btn-disabled{background-color:var(--text-secondary);color:var(--fantasy-text);cursor:not-allowed;opacity:.6}.btn:disabled{cursor:not-allowed;opacity:.6}.queued-text{color:var(--color-alert-warning-text);font-style:italic;font-size:var(--font-size-xs)}.built-text{color:var(--fantasy-gold-dim);font-weight:700;font-size:var(--font-size-xs)}@media(max-width:768px){.building-plans-tab .population-controls{flex-direction:column;gap:var(--space-4)}.building-plans-tab .filters,.building-plans-tab .search-and-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}.building-plans-tab .filters{gap:var(--space-3)}.building-plans-tab .search-and-actions{gap:var(--space-2-5)}.building-plans-tab .filters>*,.building-plans-tab .search-and-actions>*{width:100%}.building-plans-tab .search-and-actions>*:only-child{grid-column:1 / -1}.building-plans-tab .data-table,.building-plans-tab .data-table tbody{display:block;width:100%}.building-plans-tab .data-table thead{display:none}.building-plans-tab .building-row{display:flex;flex-wrap:wrap;align-items:center;margin:var(--space-2);padding:var(--space-1) 0 var(--space-2);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-primary)}.building-plans-tab .building-name{order:1;flex:1 1 55%;display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-weight:700}.building-plans-tab .status-cell{order:2;flex:0 0 45%;text-align:right;padding:var(--space-2) var(--space-3)}.building-plans-tab .cost-value,.building-plans-tab .effort-value,.building-plans-tab .maintenance-value,.building-plans-tab .habitations-value,.building-plans-tab .cycles-value{order:3;flex:0 0 auto;text-align:left;padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.building-plans-tab .building-row td[data-label]:before{content:attr(data-label) ": ";color:var(--text-secondary);font-weight:500}.building-plans-tab .effects-cell{order:4;flex:1 1 100%;padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-color);margin-top:var(--space-1)}.building-plans-tab .building-row .actions-cell{order:5;flex:1 1 100%;width:100%;height:auto;justify-content:flex-end;gap:var(--space-2);padding:var(--space-1) var(--space-3) var(--space-1)}.building-plans-tab .building-row .actions-cell .action-buttons{flex-wrap:nowrap;width:100%}.building-plans-tab .building-row .actions-cell .btn{height:44px;width:auto;flex:1}}.btn.btn-primary[title="Ajouter à la file de construction"]{background-color:var(--color-success)!important;border-color:var(--color-success)!important;color:var(--fantasy-text)!important}.btn.btn-primary[title="Ajouter à la file de construction"]:hover{background-color:var(--color-success-dark)!important;border-color:var(--color-success-dark)!important;color:var(--fantasy-text)!important}.btn.add-to-queue-btn{max-width:80px!important;font-size:var(--font-size-xs)!important;padding:var(--space-1) var(--space-2)!important;background-color:var(--color-success)!important;border-color:var(--color-success)!important;color:var(--fantasy-text)!important}.btn.add-to-queue-btn:hover{background-color:var(--color-success-dark)!important;border-color:var(--color-success-dark)!important;color:var(--fantasy-text)!important}.status-green{background-color:var(--color-alert-success-bg);color:var(--color-alert-success-text)}.status-orange{background-color:var(--color-alert-warning-bg);color:var(--color-alert-warning-text)}.status-red{background-color:var(--color-alert-danger-bg);color:var(--color-alert-danger-text)}.status-blue{background-color:var(--color-alert-info-border);color:var(--fantasy-gold-dim)}.dev-toolbar{position:fixed;bottom:12px;right:12px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.dev-toolbar-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#fff;border:2px dashed;border-radius:999px;cursor:pointer;box-shadow:0 2px 8px #00000059;transition:background-color .12s ease-in-out,transform 80ms ease-in-out}.dev-toolbar-btn:active{transform:translateY(1px)}.dev-toolbar-btn__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dev-toolbar-btn--role{background:#6b21a8;border-color:#f0abfc}.dev-toolbar-btn--role:hover{background:#7e22ce}.dev-toolbar-btn--role .dev-toolbar-btn__dot{background:#fbcfe8;box-shadow:0 0 6px #f9a8d4}.dev-toolbar-btn--role.is-active{background:#db2777;border-color:#fbcfe8;animation:dev-toolbar-pulse-role 1.6s ease-in-out infinite}.dev-toolbar-btn--role.is-active .dev-toolbar-btn__dot{background:#fff;box-shadow:0 0 8px #fff}.dev-toolbar-btn--patreon{background:#166534;border-color:#86efac}.dev-toolbar-btn--patreon:hover{background:#15803d}.dev-toolbar-btn--patreon .dev-toolbar-btn__dot{background:#86efac;box-shadow:0 0 6px #4ade80}.dev-toolbar-btn--patreon.is-active{background:#16a34a;border-color:#4ade80;animation:dev-toolbar-pulse-patreon 1.6s ease-in-out infinite}.dev-toolbar-btn--patreon.is-active .dev-toolbar-btn__dot{background:#fff;box-shadow:0 0 8px #fff}@keyframes dev-toolbar-pulse-role{0%,to{box-shadow:0 2px 8px #00000059}50%{box-shadow:0 2px 14px #db2777a6}}@keyframes dev-toolbar-pulse-patreon{0%,to{box-shadow:0 2px 8px #00000059}50%{box-shadow:0 2px 14px #16a34aa6}}
