body{margin:0;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: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%);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}.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}@media(max-width:768px){.icon-category-sidebar{width:120px}.icon-category-button{padding:var(--space-2-5);font-size:var(--font-size-xs)}.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)}.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}*{box-sizing:border-box;margin:0;padding:0}.App{display:flex;min-height:100vh}.sidebar{width:250px;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:1000}.sidebar-header{padding:0 var(--space-5) var(--space-5);border-bottom:1px solid var(--fantasy-border);margin-bottom:var(--space-5)}.sidebar-header h3{font-family:var(--font-fantasy-title);color:var(--fantasy-gold);letter-spacing:.08em;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-config{position:absolute;bottom:var(--space-5);left:0;right:0;padding:0 var(--space-5)}.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;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:250px}.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)}.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}.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)}:root{--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-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;--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);--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: transparent;--btn-secondary-fg: var(--fantasy-text);--btn-secondary-border: var(--fantasy-border-focus);--btn-secondary-bg-hover: transparent;--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-30: rgba(0, 0, 0, .3);--overlay-dark-60: rgba(0, 0, 0, .6);--overlay-dark-80: rgba(0, 0, 0, .8);--overlay-dark-95: rgba(0, 0, 0, .95);--overlay-light-10: rgba(255, 255, 255, .1);--overlay-light-20: rgba(255, 255, 255, .2);--overlay-light-30: rgba(255, 255, 255, .3);--overlay-light-80: rgba(255, 255, 255, .8)}.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:inset 0 2px 4px #0000004d;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)}@media(max-width:768px){.btn--lg{padding:var(--space-4) var(--space-5);font-size:var(--font-size-base)}}.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 #c9a84c26}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 #c9a84c26}.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, rgba(220, 38, 38, .15))}.form-row{display:flex;gap:var(--space-4);align-items:flex-start}.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}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-2-5);margin-top:var(--space-5)}.pagination button{padding:var(--space-1) var(--space-2-5);border:1px solid var(--border-color-strong);background-color:var(--surface-secondary);cursor:pointer;border-radius:var(--border-radius-sm)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span{margin:0 var(--space-2-5)}.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:#dc262614}.building-row-damaged:hover{background-color:#dc262624}.damaged-badge{display:inline-flex;align-items:center;gap:var(--space-1);background-color:var(--color-danger, #dc2626);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:0 2px 8px #0006;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:0 4px 16px #00000080}.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)}.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,.deceased-filters,.population-controls{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{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,.deceased-filters,.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}.population-controls{display:flex;justify-content:space-between;margin-bottom:var(--space-5);flex-wrap:wrap;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{flex-direction:column;gap:var(--space-2)}.view-toggle .toggle-button{justify-content:center;width:100%}}.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__rename{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.salary-config__rename-input{width:200px;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);font-weight:var(--font-weight-medium);color:var(--text-primary);background-color:var(--surface-primary)}.salary-config__rename-input--custom{border-color:var(--color-primary, var(--fantasy-gold))}.salary-config__reset-btn{flex-shrink:0;border:none;background:none;cursor:pointer;color:var(--text-muted);font-size:var(--font-size-lg);line-height:1;padding:0 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}.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)}.card{background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:0 2px 8px #0006;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}.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}.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)}.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{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:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-secondary-hover) 100%);color:var(--fantasy-text);border-color:var(--color-secondary);box-shadow:0 2px 4px var(--shadow-secondary-md)}.cancel-btn:hover{background:linear-gradient(135deg,var(--color-secondary-hover) 0%,var(--color-secondary-darker) 100%);border-color:var(--color-secondary-hover);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}.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)}.species-initial-counts-input{width:90px}.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}}.template-selector{padding:var(--space-4) 0}.template-selector.loading{display:flex;flex-direction:column;align-items:center;padding:var(--space-8);text-align:center}.template-selector.error{padding:var(--space-4);text-align:center}.template-section{margin-bottom:var(--space-8)}.section-title{display:block;font-size:var(--font-size-base);font-weight:500;margin:0 0 var(--space-2) 0}.section-description{color:var(--text-secondary);margin-bottom:var(--space-4);font-size:var(--font-size-sm);line-height:1.4}.template-cards-scroll{max-height:220px;overflow-y:auto;padding-right:var(--space-2);margin-bottom:var(--space-4)}.template-cards-scroll::-webkit-scrollbar{width:6px}.template-cards-scroll::-webkit-scrollbar-track{background:var(--surface-secondary);border-radius:var(--border-radius-sm)}.template-cards-scroll::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--border-radius-sm)}.template-cards-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.template-item{border:1px solid var(--border-color, var(--border-color));border-radius:var(--border-radius);overflow:hidden;background:var(--surface-primary)}.template-item:hover{border-color:var(--fantasy-gold);box-shadow:0 2px 8px var(--shadow-primary-sm)}.template-item:has(input[type=checkbox]:checked),.template-item:has(input[type=radio]:checked){border-color:var(--fantasy-gold);box-shadow:0 0 0 3px var(--color-primary-light)}.template-item:has(input[type=checkbox]:checked) .checkbox-content,.template-item:has(input[type=radio]:checked) .checkbox-content{border-radius:var(--border-radius)}.template-checkbox{display:block;cursor:pointer;padding:var(--space-4);width:100%;height:100%}.template-checkbox input[type=checkbox]{margin-right:var(--space-3);transform:scale(1.2)}.template-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.checkbox-content{display:flex;flex-direction:column;gap:var(--space-2)}.template-name{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.template-description{color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.3}.template-stats{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:var(--font-size-xs)}.template-stats span{background:var(--surface-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);color:var(--text-secondary)}.template-stats .category{font-weight:500}.template-stats .category.specialist{background:var(--color-warning);color:var(--fantasy-text)}.template-stats .category.worker{background:var(--color-success);color:var(--fantasy-text)}.template-stats .category.special{background:var(--color-secondary);color:var(--fantasy-text)}.theme-badge{font-size:.7rem;padding:var(--space-1) var(--space-2);border-radius:var(--border-radius-sm);font-weight:500;text-transform:uppercase;margin-left:var(--space-2)}.theme-badge.human{background:var(--color-info);color:var(--fantasy-text)}.theme-badge.dwarf{background:var(--color-warning);color:var(--fantasy-text)}.theme-badge.elf{background:var(--color-success);color:var(--fantasy-text)}.theme-badge.generic{background:var(--color-secondary);color:var(--fantasy-text)}.theme-badge.classic{background:var(--surface-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.building-preview{font-size:var(--font-size-xs);background:var(--surface-secondary);padding:var(--space-px-2) var(--space-1);border-radius:var(--border-radius-sm);color:var(--text-secondary);border:1px solid var(--border-color)}.validation-message{font-size:var(--font-size-sm);margin-top:var(--space-2);padding:var(--space-2);border-radius:var(--border-radius-sm)}.validation-message.error{background:var(--color-alert-danger-bg);color:var(--color-danger);border:1px solid var(--color-alert-danger-border)}.validation-message.recommendation{background:var(--color-alert-success-bg);color:var(--color-success);border:1px solid var(--color-alert-success-border)}.loading-spinner{width:2rem;height:2rem;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)}.error-message{color:var(--color-danger);font-weight:500}@media(max-width:768px){.template-grid{grid-template-columns:1fr}.template-selector{padding:var(--space-2) 0}.template-section{margin-bottom:var(--space-6)}}.species-card .template-checkbox input[type=checkbox].visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;transform:none}.species-card.template-item:has(input[type=checkbox]:checked),.species-card.template-item:has(input[type=checkbox]:checked):hover{border:2px solid var(--color-success);box-shadow:none}.species-card.template-item:hover{border-color:var(--color-success);box-shadow:none}.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)}.btn-danger{background:var(--color-danger);color:var(--fantasy-text);border:1px solid var(--color-danger)}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.invite-code-input{font-family:monospace;font-size:var(--font-size-lg);letter-spacing:.1em;text-align:center}.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-secondary);color:var(--text-primary);border:1px solid var(--border-color-strong);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--border-color);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}}.help-modal .modal__content{padding:0;overflow:hidden;display:flex;flex-direction:row}.help-modal-layout{display:flex;flex:1;min-height:500px;gap:0;overflow:hidden}.help-modal-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border-color);background-color:var(--surface-secondary);display:flex;flex-direction:column}.help-modal-sidebar-title{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)}.help-modal-sidebar-list{flex:1;overflow-y:auto}.help-modal-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.help-modal-content-header{padding:var(--space-6);border-bottom:1px solid var(--border-color);background-color:var(--surface-secondary)}.help-modal-content-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.help-modal-content-body{flex:1;padding:var(--space-6);overflow-y:auto;line-height:1.6;color:var(--text-primary)}.help-modal-paragraph{font-size:var(--font-size-base);margin-bottom:var(--space-4)}.help-modal-paragraph--empty{margin-bottom:var(--space-2)}.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}.simulation-selector{min-height:100vh;width:100%;background:transparent;color:var(--text-primary);padding:var(--space-8);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;overflow:hidden}.simulation-selector:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--fantasy-border) 1px,transparent 1px),linear-gradient(90deg,var(--fantasy-border) 1px,transparent 1px);background-size:48px 48px;opacity:.3;pointer-events:none;z-index:0}.simulation-selector>:not(.modal-overlay){position:relative;z-index:1}.ss-topbar{width:calc(100% + 2 * var(--space-8));margin:calc(-1 * var(--space-8)) calc(-1 * var(--space-8)) 0;padding:var(--space-2) var(--space-6);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--fantasy-border);background:var(--surface-primary);position:relative;z-index:10}.ss-topbar__logo{display:flex;align-items:center;opacity:.75;transition:opacity var(--transition-base);text-decoration:none}.ss-topbar__logo:hover{opacity:1}.ss-topbar__logo-img{height:28px;width:auto;display:block}.ss-topbar__menu{position:relative}.ss-topbar__menu-btn{background:transparent;border:1px solid var(--fantasy-gold-dim);color:var(--fantasy-gold);border-radius:0;padding:var(--space-1) var(--space-3);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:all var(--transition-base);font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);letter-spacing:.1em}.ss-topbar__menu-btn:hover{background:var(--fantasy-gold-subtle);border-color:var(--fantasy-gold);box-shadow:0 0 8px #c9a84c26}.ss-topbar__overlay{position:fixed;inset:0;z-index:98;background:transparent}.ss-topbar__dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:99;background:var(--surface-primary);border:1px solid var(--fantasy-gold-dim);border-radius:0;min-width:200px;display:flex;flex-direction:column;box-shadow:0 8px 24px #00000080}.ss-topbar__dropdown-item{background:transparent;border:none;border-bottom:1px solid var(--fantasy-border);color:var(--fantasy-gold);font-family:var(--font-fantasy-title);font-size:var(--font-size-sm);letter-spacing:.12em;text-transform:uppercase;padding:var(--space-3) var(--space-4);cursor:pointer;display:flex;align-items:center;gap:var(--space-3);text-align:left;transition:background var(--transition-base)}.ss-topbar__dropdown-item:last-child{border-bottom:none}.ss-topbar__dropdown-item:hover{background:var(--fantasy-gold-subtle)}.simulation-selector__header{text-align:center;margin-bottom:var(--space-12);margin-top:var(--space-12);max-width:720px;background:transparent;padding:var(--space-8) var(--space-4);border-radius:0;box-shadow:none}.simulation-selector__header 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 0 var(--space-6);position:relative;display:inline-block;padding:var(--space-4) var(--space-6);background:none;-webkit-background-clip:initial;-webkit-text-fill-color:currentColor;background-clip:initial}.simulation-selector__header h1:before,.simulation-selector__header 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%)}.simulation-selector__header h1:before{top:0}.simulation-selector__header h1:after{bottom:0}.simulation-selector__header 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;margin:0}.simulation-selector__actions{display:flex;gap:var(--space-6);margin-bottom:var(--space-12);flex-wrap:wrap;justify-content:center}.simulation-selector__actions .btn,.btn-large{padding:var(--space-4) var(--space-8);font-family:var(--font-fantasy-title);font-size:var(--font-size-base);font-weight:400;letter-spacing:.15em;text-transform:uppercase;min-width:220px;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:transparent;color:var(--fantasy-gold);border:1px solid var(--fantasy-gold-dim);border-radius:0;cursor:pointer;transition:all var(--transition-base);box-shadow:none}.simulation-selector__actions .btn:hover:not(:disabled),.btn-large:hover{background:var(--fantasy-gold-subtle);border-color:var(--fantasy-gold);color:var(--fantasy-gold);transform:none;box-shadow:0 0 12px #c9a84c26}.btn-primary.btn-large,.btn-secondary.btn-large{background:transparent;color:var(--fantasy-gold);box-shadow:none}.btn-primary.btn-large:hover,.btn-secondary.btn-large:hover{background:var(--fantasy-gold-subtle);box-shadow:0 0 12px #c9a84c26}.btn-icon{font-size:var(--font-size-xl)}.simulation-selector__content{width:100%;max-width:1200px;flex:1}.simulation-selector__empty{display:flex;justify-content:center;align-items:center;min-height:300px}.empty-state{text-align:center;padding:var(--space-12);background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);max-width:500px}.empty-state__icon{font-size:4rem;display:block;margin-bottom:var(--space-4);color:var(--text-secondary)}.empty-state h3{font-size:var(--font-size-2xl);margin-bottom:var(--space-4);color:var(--text-primary)}.empty-state p{color:var(--text-secondary);font-size:var(--font-size-lg);line-height:1.6}.simulations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--space-6);padding:var(--space-4) 0}.simulation-card{background:var(--surface-primary);border:1px solid var(--fantasy-border);border-radius:0;padding:var(--space-6);transition:all .3s ease;box-shadow:none;display:flex;flex-direction:column;min-height:200px;overflow:hidden;min-width:0}.simulation-card:hover{transform:translateY(-2px);border-color:var(--fantasy-border-focus);box-shadow:0 0 16px #c9a84c14}.simulation-card__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4);gap:var(--space-4)}.simulation-card__header-actions{display:flex;align-items:center;gap:var(--space-2)}.simulation-card__title{font-family:var(--font-fantasy-title);font-size:var(--font-size-xl);font-weight:600;letter-spacing:.06em;color:var(--fantasy-gold);margin:0;flex:1;line-height:1.3}.simulation-card__description{font-family:var(--font-fantasy-body);font-style:italic;font-weight:300;color:var(--fantasy-text-muted);font-size:var(--font-size-lg);line-height:1.5;margin-bottom:var(--space-6);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.simulation-card__meta{margin-bottom:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}.simulation-card__owner,.simulation-card__activity{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm)}.meta-label{color:var(--text-secondary);font-weight:500}.meta-value{color:var(--text-primary);font-weight:600}.simulation-card__footer{margin-top:auto;padding-top:var(--space-4)}.simulation-card__actions{display:flex;gap:var(--space-2);align-items:center;justify-content:space-between;width:100%;flex-wrap:wrap;row-gap:var(--space-2)}.simulation-card__actions--left,.simulation-card__actions--center{display:flex;gap:var(--space-2);align-items:center;flex-shrink:1;min-width:0}.simulation-card__actions--right{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0;min-width:0}.btn-small{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);border:none;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);white-space:nowrap;flex-shrink:0}.btn-primary.btn-small{background:linear-gradient(135deg,var(--fantasy-gold) 0%,var(--fantasy-gold-dim) 100%);color:var(--fantasy-text);box-shadow:0 2px 4px var(--shadow-primary-md)}.btn-primary.btn-small:hover{background:linear-gradient(135deg,var(--fantasy-gold-dim) 0%,var(--fantasy-gold-dim) 100%);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-primary-lg)}.btn-secondary.btn-small{background:var(--surface-secondary);color:var(--text-primary);border:1px solid var(--border-color-strong);box-shadow:0 1px 2px var(--overlay-dark-05)}.btn-secondary.btn-small:hover{background:var(--border-color);border-color:var(--text-muted);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-danger-icon.btn-small{background:var(--color-danger);color:var(--fantasy-text);padding:var(--space-2);min-width:auto;box-shadow:0 2px 4px var(--shadow-danger-md)}.btn-danger-icon.btn-small:hover{background:var(--color-danger-hover);transform:translateY(-1px);box-shadow:0 4px 8px var(--shadow-danger-lg)}.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)}.simulation-selector__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--space-4);background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);padding:var(--space-12);max-width:500px;margin:0 auto}.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}.simulation-selector__error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;gap:var(--space-4);background:var(--surface-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow);padding:var(--space-12);max-width:500px;margin:0 auto}.simulation-selector__error h2{color:var(--color-danger);margin-bottom:var(--space-2)}.simulation-selector__error p{color:var(--text-secondary);margin-bottom:var(--space-6)}@media(max-width:768px){.simulation-selector{padding:var(--space-4)}.ss-topbar{width:calc(100% + 2 * var(--space-4));margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) 0;padding:var(--space-2) var(--space-4)}.simulation-selector__header h1{font-size:var(--font-size-3xl)}.simulation-selector__actions{flex-direction:column;align-items:center}.btn-large{width:100%;max-width:300px}.simulations-grid{grid-template-columns:1fr;gap:var(--space-4)}.simulation-card__header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.simulation-card__meta{gap:var(--space-3)}.simulation-card__owner,.simulation-card__activity{flex-direction:column;align-items:flex-start;gap:var(--space-1)}}.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}.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);transition:border-color .2s}.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}.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}.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 #c9a84c26}.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{width:95vw;margin:var(--space-5)}.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)}}.species-edit-modal .modal__content{padding:0;overflow:hidden;display:flex;flex-direction:row}.species-edit-modal-layout{display:flex;flex:1;min-height:600px;gap:0;overflow:hidden}.species-edit-modal-content{flex:1;min-width:0;overflow-y:auto;background:var(--surface-primary)}.species-management{display:flex;flex-direction:column;height:100%;min-height:0}.species-table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--surface-primary)}.species-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.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.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:center;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)}}.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)}.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}}.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-container{background:var(--surface-primary);border-radius:var(--border-radius);border:1px solid var(--border-color);overflow-x:auto;box-shadow:var(--shadow-sm)}.seasonal-variables-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-sm)}.seasonal-variables-table th{background:var(--surface-secondary);color:var(--text-primary);font-weight:600;padding:var(--space-3) var(--space-2);text-align:left;border-bottom:2px solid var(--border-color);border-right:1px solid var(--border-color);position:sticky;top:0;z-index:10}.seasonal-variables-table th:last-child{border-right:none}.seasonal-variables-table td{padding:var(--space-2-5) var(--space-2);border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);vertical-align:middle;height:50px}.seasonal-variables-table td:last-child{border-right:none}.seasonal-variables-table tr:last-child td{border-bottom:none}.category-column{min-width:200px;max-width:250px}.season-column{width:100px;text-align:center;font-weight:500}.category-name{display:flex;align-items:center;gap:var(--space-2);font-weight:500;height:100%;min-height:40px}.category-icon{font-size:var(--font-size-lg)}.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:24px;height:24px;border:none;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center}.save-btn{background:var(--color-success);color:var(--fantasy-text)}.save-btn:hover{background:var(--color-success-dark)}.cancel-btn{background:var(--color-danger);color:var(--fantasy-text)}.cancel-btn:hover{background:var(--color-danger-hover)}.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-container{font-size:var(--font-size-xs)}.seasonal-variables-table th,.seasonal-variables-table td{padding:var(--space-2) var(--space-1)}.category-column{min-width:150px}.season-column{width:80px}.edit-input{width:60px}}.universe-modal .modal__content{padding:0;overflow:hidden;display:flex;flex-direction:row}.universe-modal-layout{display:flex;flex:1;min-height:600px;gap:0;overflow:hidden}.universe-modal-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border-color);background-color:var(--surface-secondary);display:flex;flex-direction:column}.universe-modal-sidebar-title{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)}.universe-modal-sidebar-list{flex:1;overflow-y:auto}.universe-modal-accordion-chevron{font-size:var(--font-size-xs);opacity:.7;margin-left:var(--space-2)}.universe-modal-accordion-panel{max-height:0;overflow:hidden;transition:max-height var(--transition-base) ease}.universe-modal-accordion-panel--open{max-height:240px}.universe-modal-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--surface-primary)}.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)}.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}.events-templates-header{display:flex;justify-content:flex-end;margin-bottom:var(--space-3)}.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)}.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)}.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}}.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)}.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)}.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){.population-controls{flex-direction:column}.search-and-actions{width:100%;margin-top:var(--space-2-5);flex-direction:column;align-items:flex-start;gap:var(--space-2-5)}.search-form,.search-form input,.quick-add-button{width:100%}}.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)}.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{max-height:70vh;overflow-y:auto;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-card{margin-bottom:var(--space-6)}.inhabitant-details-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)}.inhabitant-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.inhabitant-details-field{display:flex;flex-direction:column;gap:var(--space-1)}.inhabitant-details-field-full{grid-column:1 / -1}.inhabitant-details-field-label{font-weight:var(--font-weight-semibold);color:var(--text-secondary);font-size:var(--font-size-sm)}.inhabitant-details-field-value{color:var(--text-primary);font-size:var(--font-size-base)}.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}.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)}.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}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-5);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)}.pagination-btn:hover:not(:disabled){background-color:var(--fantasy-gold-dim)}.pagination-btn:disabled{background-color:var(--text-secondary);cursor:not-allowed}.pagination-info{font-weight:500;color:var(--text-primary)}.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 .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)}.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)}.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(--color-disabled-bg);color:var(--fantasy-text)}.cancel-btn:hover{background-color:var(--color-disabled-hover)}.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}.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}.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)}.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)}.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-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:0 6px 20px #0006}.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 #ffd70073,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:0 2px 4px #0000004d}.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)}}.admin-builder-modal .modal__content{padding:0;overflow:hidden;display:flex;flex-direction:row}.admin-builder-modal-layout{display:flex;flex:1;min-height:600px;gap:0;overflow:hidden}.admin-builder-modal-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border-color);background-color:var(--surface-secondary);display:flex;flex-direction:column;outline:none}.admin-builder-modal-sidebar-title{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)}.admin-builder-modal-sidebar-list{flex:1;overflow-y:auto}.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)}.admin-builder-modal-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--surface-primary);line-height:1.6;color:var(--text-primary)}.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-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}.btn-danger{background-color:var(--color-danger);color:var(--fantasy-text)}.btn-danger:hover{background-color:var(--color-danger-hover)}.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)}.no-buildings{text-align:center;padding:var(--space-8);color:var(--text-secondary)}.conditions-cell{vertical-align:middle;white-space:nowrap;text-align:center}.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{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}.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}.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)}.no-plans{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)}@media(max-width:768px){.population-controls{flex-direction:column}}.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)}
