/* Final terminal finish. Geographic artwork and House sigils remain original assets. */
:root{--steel:#a39caf;--energy:#c294ef;--recess:#080d16}
body{padding:14px;background:radial-gradient(ellipse at 50% -10%,#35203f 0,transparent 60%),repeating-linear-gradient(130deg,#0b0e14 0 2px,#0d1119 3px,#090c12 5px)}
.console{border-width:14px;box-shadow:0 0 0 1px #77708033,0 28px 100px #000,inset 0 0 80px #0008}
header{min-height:172px;padding:24px 27px 29px;background:#0b1019}
.terminal-panorama{position:absolute;inset:0;background:linear-gradient(90deg,#0a0f18f5 0,#0a0f187d 29%,#090c15a8 48%,#0b101860 78%,#0a0e15e8),linear-gradient(0deg,#090d18 0,transparent 75%),url('assets/grelock-unified.webp') center 38%/cover;opacity:.68;pointer-events:none}
.header-copy{width:39%}.imperial-mantle{height:172px;width:625px;z-index:0}.terminal-crest{height:156px;width:104px;top:4px;filter:brightness(1.45)}
header .eyebrow{font-size:10px;letter-spacing:3px;color:#c5b5d4}h1{font-size:clamp(29px,2.5vw,43px);letter-spacing:1.2px}.subtitle{color:#c3a5d5;font-size:9px}
.status{border-color:#75617b80;outline-color:#a698b916;background:linear-gradient(135deg,#171925e0,#0a1019e6);box-shadow:inset 0 1px #c0a6d21a,0 10px 28px #0004}
.house-registry{padding:7px 16px;background:linear-gradient(#211c2b,#10141f);border-bottom-color:#6b5975;gap:22px}
.house-registry button{min-height:36px;padding:3px 13px;border-bottom:1px solid #80718725;transition:background .15s,border-color .15s}
.house-registry svg{filter:brightness(1.7);width:24px;height:30px}.house-registry button:hover,.house-registry button:focus-visible{background:#2b2138;border-color:#ae89c8;color:#fff}
.toolbar{padding:10px 17px;gap:10px}.toolbar button{min-height:36px;font-size:11px;padding:8px 13px;border-color:#5d5068}
.toolbar button[aria-pressed=true]{background:linear-gradient(#4c365e,#231c32);border-color:#c19ed6;box-shadow:inset 0 1px #e3c7ff40,0 0 12px #b97df018}
.primary-controls{gap:7px}.zoom button{min-width:36px}.zoom output{width:49px}.navigation{padding:11px 17px;gap:19px}.search{flex-basis:320px}.search input,select{min-height:38px;border-color:#655270;border-bottom-color:#94809d;color:#eee8f3}
.search input:focus,select:focus{border-color:#d3aceb;box-shadow:inset 0 2px 6px #0009,0 0 14px #b97aec20}
#network-controls{padding:10px 17px;background:linear-gradient(100deg,#1c1726,#101722 70%,#181623)}
#filters{gap:7px}#filters button{min-height:32px;font-size:10px;border-left:3px solid var(--key);border-bottom-color:#7c648d;background:linear-gradient(#292336,#151925)}
#filters button[aria-pressed=true]{background:linear-gradient(#32263f,#1b1b2a);box-shadow:inset 0 -2px color-mix(in srgb,var(--key) 24%,transparent);border-top-color:#897198;border-left-color:var(--key);color:#f0e8f7}
#filters button[aria-pressed=false]{opacity:.62;border-bottom-color:#413948}.legend{font:10px/1.6 Segoe UI;gap:13px;margin-top:9px}.caution{margin-left:auto;font-size:9px;color:#a79caf}
.workspace{padding:9px 7px 0;grid-template-columns:minmax(0,1fr) 300px}.map-section{position:relative;border-color:#8d759a;box-shadow:0 0 0 3px #060a10,0 0 0 4px #5a456526,0 8px 24px #0005}
#viewport{background:radial-gradient(ellipse at 48% 45%,#192136,#060b14);isolation:isolate}
#viewport:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 28px #0008,inset 0 0 0 1px #c4aee91f;z-index:0}
.map-tag{z-index:1;letter-spacing:1.3px;font-size:9px;background:linear-gradient(110deg,#291c35ed,#0b1421f0);border-color:#9474a7;padding:8px 10px;box-shadow:0 5px 14px #0007}
.map-tag span{color:#d2b2ef}.compass{z-index:1;right:12px;color:#e0c2f4;border-color:#947ea5;background:#111423de;box-shadow:0 0 0 3px #070d1460}
.map-feature text{font:16px Segoe UI;fill:#f0e9f6;stroke:#070b15;stroke-width:4px;stroke-linejoin:round;letter-spacing:.2px}
.map-feature .capital-label{font:600 17px Segoe UI;letter-spacing:.2px}.map-feature .minor-label{font:14px Segoe UI;fill:#d3bfdc;letter-spacing:0}
.sigil-frame{fill:#0b101bea;rx:2;stroke-width:1.5}.house-sigil{filter:brightness(1.7)}
.map-feature.active .sigil-frame,.map-feature:focus-visible .sigil-frame{stroke:#f2d9ff;filter:drop-shadow(0 0 4px #b680ef)}
.map-feature.active .icon,.map-feature:focus-visible .icon{stroke:#fff;filter:drop-shadow(0 0 4px #c39eec)}
.map-feature:hover .sigil-frame,.map-feature:hover .icon{stroke:#fff}
.route-item.active .route-visible{filter:drop-shadow(0 0 3px #95e6ea)}
.map-foot{padding:9px 11px;font:9px/1.5 Consolas;background:linear-gradient(#201b2c,#101622);border-top-color:#8d759a}.map-hint{font-size:10px;bottom:10px;background:#090f1de0;color:#bfb3cc;border-left:1px solid #876698}
#record{margin-left:10px;border-color:#80678f;background:radial-gradient(ellipse at 0 0,#32203f,transparent 65%),linear-gradient(125deg,#141b27,#0d1420);box-shadow:inset 0 1px #d2b5e320,0 8px 20px #0005;scrollbar-gutter:stable;overscroll-behavior:contain}
.record-top{padding:12px 15px;font-size:9px;min-height:44px;letter-spacing:1.1px;background:linear-gradient(#392747,#1d192b);border-color:#92719f}
.record-top button{width:32px;height:28px;line-height:1;color:#e4d1ee;border:1px solid #9b7ba144;background:#0b101870;font-size:24px}
.record-top button:hover{background:#64436e}.record-top button:focus-visible{outline-offset:1px}
#recordImage{aspect-ratio:1.65;object-position:center;border-color:#8b6ba0}.record-body{padding:20px}#recordName{font:small-caps 32px/1.1 Georgia;margin-bottom:11px;color:#f4ebf7}.role{color:#d3b8e3;line-height:1.6}
#recordDesc{font-size:13px;line-height:1.75;color:#d0c9d8}dd{color:#d7d0dc;font-size:12px;line-height:1.65}dt{color:#c1a7ce;font-size:9px;letter-spacing:1.2px}
#overviewCaption{font:9px Consolas;letter-spacing:1px;padding:7px 14px;margin:0;background:#1c1828;border-bottom:1px solid #685177;color:#c0a5d0}
.house-badge{background:linear-gradient(90deg,#39244255,transparent);padding:12px 6px;border-color:#92709f55}.house-badge span{color:#dfcbe9}
#bookExcerpts{border-color:#9c70ad55}#bookExcerpts blockquote p{font-size:14px;line-height:1.85;color:#dfd6e5}#bookExcerpts cite{color:#c0a4d2}#recordLink{box-shadow:inset 0 1px #ecd0ff26}
.directory{padding:17px 12px 13px;border-color:#6e587a;background:linear-gradient(135deg,#1b1726,#0d1520)}
#placeDirectory{gap:7px}#placeDirectory button{position:relative;display:flex;align-items:center;gap:10px;padding:11px 12px;min-height:78px;border-color:#6b587860;border-left-color:#9b7baf;background:linear-gradient(130deg,#292133,#141b28)}
.directory-emblem{display:flex;align-items:center;justify-content:center;width:25px;flex:0 0 25px}.directory-emblem svg{width:25px;height:32px;overflow:hidden}.directory-city .directory-emblem svg{height:40px;filter:brightness(1.6)}.directory-copy{min-width:0}
#placeDirectory button:after{content:'';position:absolute;inset:0;pointer-events:none;border-top:1px solid #d7bbef12}
#placeDirectory b{font-size:16px;color:#e7daef}#placeDirectory small{font:10px/1.55 Segoe UI;color:#b9a9c4}#placeDirectory button:hover{background:linear-gradient(130deg,#42314f,#1d2433);box-shadow:0 0 12px #c482f212}
.directory-heading h3{font-size:23px}.directory-heading span{color:#b8a9c3}footer{padding-top:16px;padding-bottom:16px;color:#b4a4bf}.terminal-bottom{padding:9px 15px;border-color:#8b689754}
@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 330px}}
@media(min-width:761px) and (max-width:1150px){.workspace{grid-template-columns:minmax(0,1fr) 270px}#recordName{font-size:27px}.record-body{padding:16px}.status{font-size:8px}.caution{flex-basis:100%;margin:0}.imperial-mantle{width:500px}.header-copy{width:36%}}
@media(max-width:760px){
 body{padding:3px}.console{border-width:7px}header{min-height:113px;padding:16px 13px 20px}.header-copy{width:74%}header .eyebrow{font-size:8px;margin-bottom:8px;letter-spacing:1.6px}h1{font-size:28px}.subtitle{font-size:7px;margin-top:6px}.terminal-panorama{opacity:.5;background-position:center}.imperial-mantle{height:114px;width:345px;right:-113px;opacity:.9}.terminal-crest{height:101px;width:68px;top:4px}
 .house-registry{gap:2px;padding:4px 1px}.house-registry button{padding:3px;min-height:34px;font-size:10px;gap:5px}.house-registry svg{height:25px;width:18px}
 .toolbar{padding:8px;gap:8px}.primary-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:100%}.toolbar button{min-height:36px;padding:6px 5px;font-size:10px}.zoom{width:100%;justify-content:center;gap:7px}.zoom output{width:48px}.zoom #reset{flex:1;max-width:135px}.zoom button{min-width:36px}
 .navigation{padding:8px;gap:8px;flex-wrap:nowrap;align-items:flex-end}.search{flex:1 1 53%;min-width:0}.search span,.region-select{font-size:8px;letter-spacing:.6px}.search input,select{font-size:11px;padding:9px 7px;margin-top:5px;min-height:39px}.region-select{flex:1 1 43%;min-width:0}
 #network-controls{padding:8px}#filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}#filters button{padding:5px 3px;min-height:33px;font-size:9px}.legend{gap:5px 11px;font-size:9px;line-height:1.5;margin-top:7px}.caution{margin:1px 0 0;font-size:8px;flex-basis:100%}
 .workspace{display:block;padding:5px 3px 0}.detail-view #viewport{aspect-ratio:1.08}.map-tag{font-size:7px;left:6px;top:6px;padding:5px 6px;letter-spacing:.5px;max-width:calc(100% - 43px)}.map-tag span{margin-left:6px}.compass{top:6px;right:6px;width:23px;height:23px;font-size:8px}.map-foot{font-size:8px;padding:7px 8px;gap:8px}.map-foot span:last-child{max-width:50%;text-align:right}
 #record{margin:8px 0 0;scrollbar-gutter:auto}#recordName{font-size:30px}.record-top{position:sticky;top:0;font-size:9px;min-height:43px}.record-top button{width:36px;height:32px}.record-body{padding:18px}.record-open #record{position:fixed;z-index:30;bottom:10px;left:10px;right:10px;margin:0;max-height:64dvh!important;overflow:auto!important;border:1px solid #b08ac2;box-shadow:0 -12px 55px #000b,0 0 0 3px #080b14c9;border-radius:5px 5px 0 0}
 .record-open #recordImage{max-height:125px;aspect-ratio:2.6}.record-open #recordSymbol{font-size:35px}.record-open #recordSymbol svg{width:50px;height:60px}.record-open .record-body{padding-top:12px}.record-open #recordStatus{font-size:8px;letter-spacing:1px}.record-open #recordName{margin-top:3px}.record-open .record-top{padding:5px 13px;box-shadow:0 4px 12px #0008}
 .directory{margin:8px 3px 0;padding:13px 9px}.directory-heading h3{font-size:22px}.directory-heading span{font-size:9px}.directory-heading button{min-height:35px}#placeDirectory{gap:6px}#placeDirectory button{padding:10px 7px;gap:7px}.directory-emblem{width:20px;flex-basis:20px}.directory-emblem svg{width:20px}#placeDirectory b{font-size:15px}#placeDirectory small{font-size:10px}footer{padding:14px 9px}.terminal-bottom{padding:8px;font-size:6px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Imperial heraldry and its surround share a single coordinate system. */
header{min-height:213px}
.imperial-mantle{background:none;width:680px;height:207px;top:0;opacity:1;filter:none}
.imperial-assembly{display:block;width:100%;height:100%;overflow:visible}
@media(min-width:761px) and (max-width:1150px){header{min-height:196px}.imperial-mantle{width:560px;height:190px}}
@media(max-width:760px){header{min-height:145px}.imperial-mantle{width:435px;height:142px;right:-148px;left:auto;top:0;transform:none;opacity:1}.imperial-assembly{overflow:visible}}

.city-limit-area{stroke-linejoin:round}.active>.city-limit-area{fill-opacity:.25;stroke-width:1.7;stroke-opacity:1}#viewCityLimits{display:flex;justify-content:space-between;gap:10px;width:100%;margin:14px 0;background:linear-gradient(#32243e,#171d2a);border-color:#9977ab;text-align:left;font-size:12px}#viewCityLimits span{font:9px/1.8 Consolas;color:#c2a7d4}

.map-feature.classified-marker .capital-label,.map-feature.classified-marker .minor-label{font:500 14px Segoe UI;fill:#d2c4df;letter-spacing:.2px}
