/* A Realm of Dragons v18.0.0 — political hex authority, readable labels and command UX */
:root{--v18-panel:rgba(17,15,12,.96);--v18-gold:#e4c87b;--v18-line:rgba(233,207,137,.38)}
/* Political hexes are deliberately inert during normal map use. */
#v18HexPoliticalLayer{pointer-events:none;opacity:1}
#v18HexPoliticalLayer .v18-political-hex{vector-effect:non-scaling-stroke;stroke:rgba(224,203,150,.22);stroke-width:.7;fill:rgba(112,99,76,.035);transition:fill .15s ease,stroke .15s ease,opacity .15s ease}
#v18HexPoliticalLayer .v18-political-hex.owned{fill:var(--hex-owner);fill-opacity:var(--v18-hex-opacity,.22);stroke:color-mix(in srgb,var(--hex-owner) 76%,#f3dfaa);stroke-width:1.05}
#v18HexPoliticalLayer .v18-political-hex.status-contested{stroke:#e1a04d;stroke-dasharray:6 4}
#v18HexPoliticalLayer .v18-political-hex.status-occupied{stroke:#b95f57;stroke-width:1.5}
#v18HexPoliticalLayer .v18-political-hex.status-besieged{stroke:#e45f4f;stroke-width:2;stroke-dasharray:3 2}
#v18HexPoliticalLayer .v18-political-hex.selected{stroke:#fff0ae!important;stroke-width:3!important;filter:url(#selectedParcelGlow)}
body.v18-hex-editor #v18HexPoliticalLayer{pointer-events:all}
body.v18-hex-editor #v18HexPoliticalLayer .v18-political-hex{pointer-events:all;cursor:crosshair}
.map-viewport.placing #v18HexPoliticalLayer,.map-viewport.parcel-dragging #v18HexPoliticalLayer{pointer-events:none!important}
body.v18-hex-authority #parcelLayer{display:none!important;pointer-events:none!important}
#v18MarchRouteLayer{pointer-events:none}
.v18-march-route{fill:none;stroke:#f2d783;stroke-width:2;stroke-dasharray:8 6;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px #000)}

/* Safari-readable vector labels: restrained cream, opaque dark plate, strong black edge. */
.atlas-svg .marker-label{fill:#f3e2b7!important;stroke:#080705!important;stroke-width:4.2!important;paint-order:stroke fill!important;text-shadow:none!important;filter:none!important;font-weight:800!important}
.atlas-svg .marker-label-bg{fill:rgba(8,7,5,.94)!important;stroke:rgba(238,211,145,.72)!important;stroke-width:1.4!important;filter:none!important}
.atlas-svg .annotation-label{fill:#f2dfae!important;stroke:#080705!important;stroke-width:4!important;paint-order:stroke fill!important}
.atlas-svg .location-marker.zoom-hidden{display:none!important}
#clusterLayer,.location-cluster{display:none!important;pointer-events:none!important}

/* Neutral figure-shaped force markers replace coloured discs. */
.atlas-svg .army-marker{pointer-events:all;cursor:pointer;filter:drop-shadow(0 2px 2px rgba(0,0,0,.9))}
.atlas-svg .army-figure-shadow{fill:rgba(0,0,0,.62);stroke:none}
.atlas-svg .army-figure-head,.atlas-svg .army-figure-body{fill:#2a2824;stroke:#f0d998;stroke-width:1.35;vector-effect:non-scaling-stroke}
.atlas-svg .army-figure-standard{fill:#d7c07d;stroke:#18140d;stroke-width:1.1;vector-effect:non-scaling-stroke}
.atlas-svg .army-marker:hover .army-figure-body,.atlas-svg .army-marker:focus .army-figure-body{stroke:#fff3bd;stroke-width:2}

.v18-hex-mode-banner{position:absolute;left:50%;top:84px;transform:translateX(-50%);z-index:19;display:flex;align-items:center;gap:16px;max-width:min(720px,calc(100% - 32px));padding:10px 12px;border:1px solid var(--v18-line);border-radius:12px;background:rgba(12,10,8,.96);box-shadow:0 12px 36px rgba(0,0,0,.5)}
.v18-hex-mode-banner[hidden]{display:none}.v18-hex-mode-banner div{display:grid;gap:2px}.v18-hex-mode-banner strong{color:#f4dda0}.v18-hex-mode-banner span{font-size:.78rem;color:#cfc4a5}
.v18-hex-summary,.v18-office-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px}
.v18-hex-summary>div,.v18-office-grid>article{padding:14px;border:1px solid rgba(232,205,135,.22);border-radius:12px;background:rgba(255,255,255,.025)}
.v18-hex-summary small,.v18-office-grid small{display:block;color:#b7aa8b;font-size:.66rem;letter-spacing:.1em}.v18-hex-summary strong,.v18-office-grid strong{display:block;margin-top:4px;color:#f1d998;font-size:1.06rem}.v18-office-grid p{margin:.45rem 0 0;color:#bfb59d;font-size:.82rem;line-height:1.45}
.v18-assurance-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid var(--v18-line);border-radius:14px;background:linear-gradient(135deg,rgba(116,83,36,.16),rgba(26,21,15,.82));margin-bottom:16px}.v18-assurance-hero h3{margin:.2rem 0;font-size:1.5rem}.v18-assurance-hero p{margin:0;color:#c8bda3}.v18-assurance-hero>span{display:grid;place-items:center;width:54px;height:54px;border:1px solid #e4c87b;border-radius:50%;font-size:1.8rem;color:#f0d78f}
.v18-system-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.v18-system-grid article{padding:13px;border:1px solid rgba(229,207,147,.2);border-radius:11px;background:rgba(255,255,255,.02)}.v18-system-grid header{display:flex;justify-content:space-between;gap:8px}.v18-system-grid header span{font-size:.6rem;color:#92c49a}.v18-system-grid article.missing header span{color:#e78d78}.v18-system-grid b{display:block;margin:.5rem 0;color:#e4c87b}.v18-system-grid p{margin:0;color:#bdb39a;font-size:.8rem;line-height:1.42}
.v18-warning-list{display:grid;gap:8px}.v18-warning-list article{display:flex;gap:12px;padding:12px;border:1px solid rgba(230,205,139,.18);border-radius:10px;background:rgba(255,255,255,.02)}.v18-warning-list article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(232,191,104,.14);color:#ebcb7d;flex:0 0 auto}.v18-warning-list .critical{border-color:rgba(224,87,72,.45)}.v18-warning-list .critical>span{color:#ff9c8c;background:rgba(209,64,52,.16)}.v18-warning-list small{display:block;color:#a99d83}.v18-warning-list strong{display:block;color:#eee0ba}.v18-warning-list p{margin:.3rem 0 0;color:#beb39b;font-size:.82rem}
.v18-myrealm-head{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid color-mix(in srgb,var(--house) 50%,transparent);border-radius:14px;background:color-mix(in srgb,var(--house) 12%,rgba(12,10,8,.9));margin-bottom:14px}.v18-myrealm-head>span{display:grid;place-items:center;width:62px;height:72px}.v18-myrealm-head h2{margin:.15rem 0;color:#f3dfaa}.v18-myrealm-head p{margin:0;color:#bdb39a}
.v18-capability-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px;margin-top:8px}.v18-capability-list span{padding:9px 11px;border-radius:8px;border:1px solid rgba(232,205,135,.18);font-size:.82rem}.v18-capability-list .granted{color:#cde7c7;background:rgba(76,125,73,.12)}.v18-capability-list .denied{color:#9e9581;background:rgba(255,255,255,.018)}
.v18-compact-list{display:grid;gap:8px;margin-top:8px}.v18-compact-list article{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(232,205,135,.16);border-radius:9px}.v18-compact-list span{color:#b9ae94;font-size:.8rem}
.v18-permission-table{display:grid;gap:5px;overflow:auto}.v18-permission-table header,.v18-permission-table article{display:grid;grid-template-columns:minmax(190px,1fr) repeat(12,34px) 52px;align-items:center;min-width:720px;gap:2px;padding:7px;border-bottom:1px solid rgba(229,205,140,.12)}.v18-permission-table header b{text-align:center;font-size:.56rem;color:#b8aa88}.v18-permission-table article span{display:grid}.v18-permission-table article small{color:#9f967f}.v18-permission-table i{text-align:center;font-style:normal}.v18-permission-table i.yes{color:#9dd4a0}.v18-permission-table i.no{color:#685f50}.v18-permission-table button{border:1px solid rgba(232,205,135,.3);background:transparent;color:#e4c87b;border-radius:7px;padding:5px}
.v18-guide section+section{margin-top:22px}.v18-guide h3{color:#efd89d}.v18-guide p,.v18-guide li{color:#c5baa0;line-height:1.6}.v18-idea-grid{display:grid;gap:8px}.v18-idea-grid article{display:flex;gap:12px;padding:12px;border:1px solid rgba(231,205,139,.17);border-radius:10px}.v18-idea-grid article>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(226,195,112,.12);color:#e4c87b;flex:0 0 auto}.v18-idea-grid strong{color:#ead59e}.v18-idea-grid p{margin:.25rem 0 0;font-size:.84rem}
@media(max-width:760px){.v18-hex-mode-banner{top:146px}.v18-permission-table header,.v18-permission-table article{grid-template-columns:minmax(170px,1fr) repeat(12,30px) 46px}.v18-compact-list article{display:grid}.atlas-svg .marker-label{stroke-width:5!important}}

/* House power diagnostics and approval workflow */
.v18-ranking-list{display:grid;gap:10px;margin-top:14px}
.v18-ranking-list>article{display:grid;grid-template-columns:36px 46px minmax(0,1fr) 58px;align-items:center;gap:12px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--house,#806c52) 55%,rgba(255,255,255,.12));background:linear-gradient(110deg,color-mix(in srgb,var(--house,#806c52) 14%,rgba(15,17,20,.96)),rgba(13,15,18,.94));border-radius:12px}
.v18-ranking-list>article>b{font:700 18px/1 Georgia,serif;text-align:center;color:#c9b987}
.v18-ranking-list>article>span{display:grid;place-items:center;font-size:27px;min-height:42px}
.v18-ranking-list>article>div{min-width:0}
.v18-ranking-list small{display:block;color:#b8ab83;letter-spacing:.09em;text-transform:uppercase;font-size:10px}
.v18-ranking-list strong{display:block;font:700 17px/1.2 Georgia,serif;color:#eee6d3;margin:3px 0}
.v18-ranking-list p{margin:0;color:#bcb8ae;font-size:12px}
.v18-ranking-list>article>i{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid color-mix(in srgb,var(--house,#806c52) 70%,#d7c486);background:rgba(0,0,0,.32);font:700 19px/1 Georgia,serif;color:#f0dfaa;font-style:normal}
.v18-rank-breakdown{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.v18-rank-breakdown em{font-style:normal;font-size:10px;padding:3px 6px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(255,255,255,.035);color:#cbc5b7}
@media(max-width:620px){.v18-ranking-list>article{grid-template-columns:28px 36px minmax(0,1fr) 44px;padding:11px 9px;gap:8px}.v18-ranking-list>article>i{width:42px;height:42px;font-size:16px}.v18-ranking-list p{font-size:11px}.v18-rank-breakdown{display:none}}

/* Version 18 header clarity: primary navigation only, no overlapping text. */
.topbar>.brand,.topbar>.topbar-actions{flex:0 0 auto}
.topbar>.desktop-nav{flex:1 1 auto;min-width:0;justify-content:center;overflow:hidden}
.topbar>.desktop-nav .nav-item{flex:0 1 auto;min-width:0;padding-inline:9px}
@media (max-width:1320px) and (min-width:901px){
  .topbar>.desktop-nav .nav-item{padding-inline:7px;font-size:11px}
  .topbar>.brand{min-width:300px}
  .topbar-actions .button{padding-inline:10px}
  .topbar-actions .save-state{display:none}
}
@media (max-width:900px){
  .map-tools .map-tool-button small{display:none}
  .map-tools .map-tool-button{min-width:46px;width:46px;padding:0;justify-content:center}
}
