*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#0a0a0f;color:#e0e0e0;font-family:JetBrains Mono,Fira Code,Courier New,monospace;height:100vh;overflow:hidden;display:flex;flex-direction:column}.page-header{display:flex;align-items:center;gap:1rem;padding:.45rem 1.2rem;background:#0a0a0ffa;border-bottom:1px solid #1a1a2e;flex-shrink:0;z-index:1000}.back-link{color:#00d4ff;text-decoration:none;font-size:.7rem;letter-spacing:.05em;white-space:nowrap}.back-link:hover{text-decoration:underline}.page-title{font-size:.85rem;font-weight:700;color:#e0e0e0;letter-spacing:.12em}.page-title .accent{color:#00d4ff;font-weight:400;font-size:.65rem}.exp-badge{margin-left:auto;font-size:.55rem;color:#ff6b35;border:1px solid #ff6b3540;background:#ff6b3514;padding:.15rem .5rem;border-radius:3px;letter-spacing:.1em}.control-bar{display:flex;align-items:center;gap:1rem;padding:.4rem 1.2rem;background:#0a0a0ff7;border-bottom:1px solid #1a1a2e;flex-shrink:0;flex-wrap:wrap;z-index:999}.control-group{display:flex;align-items:center;gap:.5rem}.control-label{font-size:.45rem;color:#444;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}.faction-select{font-family:JetBrains Mono,monospace;font-size:.55rem;background:#0f0f1a;color:#ccc;border:1px solid #2a2a3a;border-radius:3px;padding:.2rem .5rem;cursor:pointer;outline:none;min-width:220px}.faction-select:focus{border-color:#00d4ff50}.faction-select option{background:#0f0f1a}.faction-select optgroup{color:#555;font-size:.5rem}.budget-info{display:flex;align-items:center;gap:.75rem;margin-left:auto;font-size:.5rem}.budget-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem}.budget-stat-val{font-size:.75rem;font-weight:700;color:#fff;line-height:1}.budget-stat-lbl{font-size:.4rem;color:#444;letter-spacing:.12em;text-transform:uppercase}.budget-tier-badge{padding:.15rem .5rem;border-radius:3px;font-size:.5rem;font-weight:700;letter-spacing:.08em;border:1px solid currentColor}.budget-divider{width:1px;height:24px;background:#1a1a2e}.ideo-filter-row{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.ideo-btn{font-family:JetBrains Mono,monospace;font-size:.45rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:.15rem .45rem;border-radius:3px;border:1px solid #1a1a2e;background:transparent;color:#333;cursor:pointer;transition:all .15s;white-space:nowrap}.ideo-btn:hover{color:#888;border-color:#2a2a3a}.ideo-btn.active{border-color:currentColor;opacity:1}.ideo-btn[data-ideology=all]{color:#555}.ideo-btn[data-ideology=all].active{color:#e0e0e0;border-color:#666;background:#ffffff0f}.ideo-btn[data-ideology=religious]{color:#6a5000}.ideo-btn[data-ideology=religious].active{color:gold;border-color:#ffd70060;background:#ffd70014}.ideo-btn[data-ideology=resistance]{color:#6a1800}.ideo-btn[data-ideology=resistance].active{color:#ff4500;border-color:#ff450060;background:#ff450014}.ideo-btn[data-ideology=labor]{color:#0a3a18}.ideo-btn[data-ideology=labor].active{color:#22c55e;border-color:#22c55e60;background:#22c55e14}.ideo-btn[data-ideology=extremist]{color:#4a0000}.ideo-btn[data-ideology=extremist].active{color:#ff3b3b;border-color:#ff3b3b60;background:#ff3b3b14}.ideo-btn[data-ideology=cultural]{color:#320a50}.ideo-btn[data-ideology=cultural].active{color:#a855f7;border-color:#a855f760;background:#a855f714}.ideo-btn[data-ideology=philosophical]{color:#3a0a46}.ideo-btn[data-ideology=philosophical].active{color:#e879f9;border-color:#e879f960;background:#e879f914}.ideo-btn[data-ideology=civil-liberties]{color:#004050}.ideo-btn[data-ideology=civil-liberties].active{color:#00d4ff;border-color:#00d4ff60;background:#00d4ff14}.main-layout{display:flex;flex:1;overflow:hidden}.map-pane{flex:1;position:relative;overflow:hidden}#map{width:100%;height:100%;background:#0a0a0f}.side-panel{flex:0 0 300px;background:#0a0a0f;border-left:1px solid #1a1a2e;display:flex;flex-direction:column;overflow:hidden;position:relative}.side-panel:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,212,255,.008) 2px,rgba(0,212,255,.008) 4px);pointer-events:none;z-index:1}.panel-header{padding:.75rem 1rem .6rem;border-bottom:1px solid #1a1a2e;flex-shrink:0;position:relative;z-index:2}.panel-sys-label{font-size:.42rem;color:#00d4ff;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.2rem;opacity:.7}.panel-title-main{font-size:.9rem;font-weight:700;color:#fff;line-height:1.2}.panel-title-sub{font-size:.48rem;color:#444;margin-top:.2rem;letter-spacing:.05em}.panel-body{flex:1;overflow-y:auto;padding:.65rem .85rem;position:relative;z-index:2}.panel-body::-webkit-scrollbar{width:3px}.panel-body::-webkit-scrollbar-track{background:#0a0a0f}.panel-body::-webkit-scrollbar-thumb{background:#1a1a2e;border-radius:2px}.idle-message{font-size:.52rem;color:#2a2a3a;line-height:1.7;padding-top:.5rem}.idle-message .hint{color:#333;font-size:.45rem;margin-top:.5rem}.subsector-id-tag{font-size:.65rem;font-weight:700;color:#00d4ff;letter-spacing:.15em}.subsector-sector-name{font-size:.45rem;color:#555;margin-top:.1rem;letter-spacing:.05em}.subsector-area{font-size:.42rem;color:#333;margin-top:.05rem}.faction-list-header{font-size:.42rem;color:#00d4ff;letter-spacing:.18em;text-transform:uppercase;margin:.75rem 0 .4rem;padding-bottom:.25rem;border-bottom:1px solid #0f0f1f;opacity:.7}.faction-row{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid #0c0c18}.faction-row:last-child{border-bottom:none}.faction-rank{font-size:.4rem;color:#333;width:1.2rem;text-align:right;flex-shrink:0}.faction-swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}.faction-name-col{flex:1;min-width:0}.faction-name-text{font-size:.5rem;color:#aaa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.faction-ideo-tag{font-size:.38rem;color:#444;letter-spacing:.05em}.faction-bar-col{width:70px;flex-shrink:0}.faction-bar-bg{height:4px;background:#111;border-radius:2px;overflow:hidden}.faction-bar-fill{height:100%;border-radius:2px;transition:width .3s}.faction-intensity-val{font-size:.4rem;color:#555;text-align:right;margin-top:.1rem}.no-factions-msg{font-size:.5rem;color:#2a2a3a;font-style:italic;padding:.5rem 0}.legend-block{margin-top:.8rem;padding-top:.6rem;border-top:1px solid #0f0f1f}.legend-title{font-size:.4rem;color:#333;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.4rem}.legend-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.legend-swatch{width:22px;height:8px;border-radius:2px;flex-shrink:0}.legend-lbl{font-size:.42rem;color:#444}.leaflet-container{background:#0a0a0f!important}.leaflet-tile-pane{filter:brightness(.3) saturate(.4)}.leaflet-control-attribution{background:#0a0a0fb3!important;color:#333!important;font-size:.4rem!important}.leaflet-control-attribution a{color:#444!important}.leaflet-control-zoom a{background:#0f0f1a!important;color:#555!important;border-color:#1a1a2e!important}.leaflet-control-zoom a:hover{background:#1a1a2e!important;color:#aaa!important}
