body.v2-editor{--panel:#14202e;--surface:#1c2b3b;--line:#2b3b4d;--muted:#a1b2c6;--accent:#75dbd2;--red:#ffaaa4;--gold:#f5c26a;background:#0c1420;color:#e8eff6;font:14px/1.5 'Segoe UI',Arial,sans-serif;height:100dvh;overflow:hidden}
body.v2-editor button{border-radius:2px;padding:8px 12px;font-size:13px;line-height:1.3;background:var(--panel)}body.v2-editor button:hover{background:#223447}body.v2-editor button.active,body.v2-editor button.primary{background:#173d43!important;color:#8de8df!important;border-color:#468e8e!important}body.v2-editor button.primary{background:#75dbd2!important;color:#092f34!important;border-color:#75dbd2!important;font-weight:600}body.v2-editor button:disabled{opacity:.45}
body.v2-editor input,body.v2-editor select,body.v2-editor textarea{background:#0f1a28;color:#e8eff6;border:1px solid #304357;border-radius:2px;padding:9px 10px;font-size:14px}body.v2-editor label{font-size:12px;line-height:1.5;color:#a9bdce;margin:13px 0}body.v2-editor small{font-size:12px;line-height:1.5;color:var(--muted)}body.v2-editor h1{font-size:23px;line-height:1.3;font-weight:500}body.v2-editor h2{font-size:18px;font-weight:500}body.v2-editor h3{font-size:14px;font-weight:500}body.v2-editor .eyebrow{font-size:10px;letter-spacing:1.5px;color:#82a8bb}
body.v2-editor header{display:flex;align-items:center;gap:20px;padding:14px 22px;height:76px;min-height:76px;flex-shrink:0;background:#131e2d;border-bottom:0;flex-wrap:nowrap}#v2-brand{display:flex;align-items:center;gap:10px;min-width:185px;font-size:15px;font-weight:600}#v2-brand .v2-mark{width:35px;height:35px;display:grid;place-items:center;border:1px solid #498580;border-radius:4px;color:#8be5dd;font-size:12px;letter-spacing:1px;background:#17313a}#v2-brand small{display:block;font-size:10px;letter-spacing:.2px;font-weight:400}body.v2-editor header .header-mission{flex:1;max-width:none;min-width:100px;padding-left:18px;border-left:1px solid var(--line)}body.v2-editor #active-title{font-size:17px;font-weight:500;color:#e8eff6}body.v2-editor #active-path{display:none}#v2-draft{font-size:11px;color:#94b3b8}#v2-draft #save-status{font-size:11px}body.v2-editor header .actions{gap:7px;flex-shrink:0}body.v2-editor #library-open{order:0;font-size:12px}body.v2-editor header>#undo{margin:0;font-size:15px;padding:8px}body.v2-editor #workbench-menu{position:relative}body.v2-editor #workbench-menu summary{font-size:12px;padding:8px 10px;border-radius:2px;cursor:pointer;background:#172534;border:1px solid var(--line)}body.v2-editor #workbench-menu nav{position:absolute;right:0;left:auto;top:35px;background:#172534;padding:10px;width:280px;box-shadow:0 15px 35px #0009;border:1px solid var(--line);z-index:120;border-radius:3px}body.v2-editor #workbench-menu nav button{padding:10px;text-align:left;font-size:13px}
#v2-workspaces{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;padding:0 22px 12px;min-height:53px;flex-shrink:0;background:#131e2d;border-bottom:1px solid var(--line)}#v2-workspaces>button{padding:9px 17px;font-size:14px;border:1px solid transparent;background:transparent;color:#a9bdce}#v2-workspaces>button.active{color:#8ee8df!important;background:#173d43!important;border-color:#30575e!important}.v2-nav-spacer{flex:1}#v2-review-badge{display:inline-flex;min-width:20px;justify-content:center;font-size:11px;padding:1px 5px;border-radius:2px;background:#263548;color:#a7c0cc;margin-left:6px}#v2-review-badge.has-errors{color:#f2c784;background:#3b2f22}#v2-objects-toggle,#v2-inspector-toggle{display:none}
body.v2-editor .rail{width:260px;background:#131e2d;padding:0;min-height:0;border-right:1px solid var(--line);flex-shrink:0}.v2-rail-title{padding:17px 16px 10px;font-size:14px;font-weight:500;color:#d9e9f1}body.v2-editor .side-tabs{padding:0 12px 10px;gap:4px;height:auto;min-height:40px;flex-shrink:0}body.v2-editor .side-tabs button{padding:6px 9px;font-size:12px}body.v2-editor #reference-collapse{margin-left:auto;font-size:11px}body.v2-editor .side-content{padding:0;min-height:0}body.v2-editor #entity-subtabs{padding:0 8px;min-height:39px;height:auto;gap:0;background:#152333}body.v2-editor #entity-subtabs button{font-size:12px;padding:8px 7px}body.v2-editor #entity-search{display:block;margin:12px;width:calc(100% - 24px);font-size:13px;padding:9px 10px}body.v2-editor .reference-entity{display:grid;grid-template-columns:14px minmax(0,1fr);height:auto;min-height:53px;gap:1px 5px;align-content:center;padding:9px 14px;border-radius:0;font-size:13px;border:0;border-bottom:1px solid #243245;background:transparent}body.v2-editor .reference-entity .entity-name{grid-column:2;text-align:left}body.v2-editor .reference-entity .entity-tail{grid-column:2;text-align:left;color:#93adc0;font-size:11px;max-width:none}body.v2-editor .reference-entity>i,body.v2-editor .reference-entity>.entity-badge{grid-column:1;grid-row:1;margin:auto 0}body.v2-editor .reference-entity.selected{background:#19363e;color:#c1f3ed;border-left:3px solid #75dbd2;padding-left:11px}body.v2-editor .reference-entity:hover{background:#1b2b3b}body.v2-editor .entity-add-footer{padding:12px;background:#131e2d;border-top:1px solid var(--line)}body.v2-editor .entity-add-footer button{width:100%;font-size:13px;padding:10px}#v2-support-group{border-top:1px solid var(--line);margin:8px 0 0}#v2-support-group>summary{padding:12px 14px;font-size:12px;color:#a4b9c8;cursor:pointer}#v2-support-group>summary span{float:right;color:#75dbd2}body.v2-editor #side-charts{padding:14px}body.v2-editor .chart-section{padding:12px 0}body.v2-editor .chart-section summary{font-size:13px}body.v2-editor .chart-section label{font-size:12px}body.v2-editor .chart-section input,body.v2-editor .chart-section select{font-size:13px;padding:8px}body.v2-editor .chart-section small{font-size:11px}body.v2-editor .chart-button-row button{font-size:12px;padding:8px}body.v2-editor #chart-route-points{max-height:none}body.v2-editor .chart-waypoint{grid-template-columns:16px 1fr 1fr 28px}body.v2-editor .chart-waypoint input{font-size:11px;padding:6px}body.v2-editor .chart-waypoint label{font-size:10px}
body.v2-editor [data-panel=map]>.viewbar{display:flex!important;min-height:55px;padding:10px 16px;background:#131e2d;border-bottom:1px solid var(--line);flex-shrink:0}body.v2-editor #tactical-tools{position:static;display:flex!important;gap:5px;padding:0;flex-wrap:wrap;margin:0}body.v2-editor #tactical-tools button{padding:8px 11px;font-size:12px}body.v2-editor #map-more-tools{position:relative;right:auto;top:auto;margin:0}body.v2-editor #map-more-tools[open]{position:relative;top:auto;right:auto;margin:0}body.v2-editor #map-more-tools summary{padding:8px 11px;font-size:12px;border-radius:2px}body.v2-editor #map-more-tools[open]>button{position:relative;width:100%;text-align:left}body.v2-editor #map-more-tools[open]{background:#172534;box-shadow:0 10px 25px #0006;z-index:60}body.v2-editor .map-layout,body.v2-editor .flow-layout{grid-template-columns:minmax(0,1fr);height:100%;min-height:0}body.v2-editor .map-layout.inspector-open,body.v2-editor .flow-layout.inspector-open{grid-template-columns:minmax(0,1fr) 330px}body.v2-editor .inspector{background:#131e2d;border-left:1px solid var(--line);padding:0 16px 18px;width:auto;position:relative;box-shadow:none}body.v2-editor .reference-inspector-head{padding:12px 0;min-height:47px;border-bottom:1px solid var(--line);margin-bottom:14px;font-size:11px;letter-spacing:1px}body.v2-editor .reference-inspector-head button{font-size:18px;padding:1px 5px;background:transparent;border:0}body.v2-editor .typed-panel{font-size:13px}body.v2-editor .typed-panel label{font-size:12px;margin:13px 0}body.v2-editor .typed-panel input,body.v2-editor .typed-panel select{font-size:13px;padding:9px}body.v2-editor .typed-panel small{font-size:11px}body.v2-editor .typed-panel .segment button{padding:8px 10px;font-size:12px}body.v2-editor .unit-event-row{min-height:40px;font-size:12px;border-bottom:1px solid #253447}body.v2-editor .unit-event-row button{font-size:11px;padding:6px 8px}.v2-inspector-tabs{display:flex;gap:3px;margin-bottom:14px;border-bottom:1px solid #2b3b4d;padding-bottom:10px}.v2-inspector-tabs button{flex:1;font-size:12px!important;padding:8px 5px!important}body.v2-editor .loadout-slot{gap:8px;font-size:12px}body.v2-editor .loadout-slot select{font-size:12px;padding:7px;min-width:0}.v2-course-summary{border-top:1px solid var(--line);margin-top:17px;padding:12px 0}.v2-course-summary>summary{cursor:pointer;font-size:13px;color:#b6d3db}.v2-course-summary p{font-size:12px;color:var(--muted)}body.v2-editor .typed-panel .wide{padding:9px 12px;font-size:12px;margin:7px 0}body.v2-editor .danger{background:#2b1d26;border-color:#6f3942;color:#f3aca7}
body.v2-editor [data-panel=flow]>.viewbar{min-height:56px;padding:10px 16px;gap:8px;background:#131e2d}body.v2-editor .graph-navigation-tools button{font-size:12px;padding:7px 9px}body.v2-editor .graph-navigation-tools svg{width:19px;height:19px}body.v2-editor #graph-add{margin-left:0;padding:8px 12px}body.v2-editor #reference-graph-tools{margin-left:auto;order:10}body.v2-editor #reference-graph-tools summary{padding:8px 10px;font-size:12px;border-radius:2px}body.v2-editor #graph-viewport{background:#0c1420;background-image:radial-gradient(#2b3b4d 1px,transparent 1px);background-size:24px 24px}body.v2-editor .graph-node{border-radius:3px;border-color:#34485b;background:#162332;box-shadow:0 3px 12px #0003}body.v2-editor .graph-node .kind{border-radius:2px 2px 0 0;letter-spacing:.5px;font-size:10px}body.v2-editor .graph-node .node-title{font-size:11px;font-weight:400;color:#e8eff6}body.v2-editor .graph-node small{font-size:10px;color:#a6bfd0}body.v2-editor #graph-connection-help{font-size:11px;padding:7px 12px;background:#13202ddd}
body.v2-editor [data-workspace=mission]{background:#0c1420}body.v2-editor .scroll-content{padding:24px 30px;overflow:auto}body.v2-editor [data-panel=mission]>.viewbar,body.v2-editor [data-panel=review]>.viewbar{padding:22px 30px;background:#0f1927;border-bottom:1px solid var(--line)}body.v2-editor [data-panel=mission] .scroll-content{max-width:1250px;width:100%;margin:auto}body.v2-editor .mission-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px}body.v2-editor .mission-grid>article{background:#131e2d;border:1px solid var(--line);padding:22px;border-radius:4px}.v2-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.v2-form-grid>label:last-child{grid-column:1/-1}body.v2-editor #side-factions{overflow:visible;padding:0;height:auto}body.v2-editor #side-factions label,body.v2-editor #side-factions .row{margin:12px 0}body.v2-editor #side-factions select{font-size:13px}body.v2-editor #global-fields{padding-top:10px}body.v2-editor details{font-size:12px}body.v2-editor details>summary{cursor:pointer;color:#b3c8d5;padding:8px 0}.v2-advanced-metadata{margin-top:20px;border-top:1px solid var(--line);padding-top:10px}body.v2-editor #metadata-messages .metadata-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}body.v2-editor .localized-card{border:1px solid var(--line);background:#131e2d;border-radius:3px;padding:16px;margin:0 0 14px}body.v2-editor .localized-card textarea{font-size:13px}body.v2-editor dialog{background:#131e2d;color:#e8eff6;border:1px solid #385067;border-radius:4px;padding:24px;width:min(900px,94vw);max-height:90dvh;overflow:auto;box-shadow:0 30px 70px #0009}body.v2-editor dialog::backdrop{background:#050a13a8;backdrop-filter:blur(3px)}body.v2-editor #palette-dialog{width:min(1050px,94vw)}body.v2-editor #v2-objectives-dialog{width:min(850px,94vw)}.v2-objectives-body{padding-top:14px}.v2-objectives-body>.row{margin-bottom:18px}body.v2-editor #library-dialog select{font-size:14px;padding:12px;margin:13px 0}body.v2-editor #library-dialog .library-file-actions{gap:10px;margin-top:20px}body.v2-editor #v2-library-campaigns{margin-top:15px;display:block}
.v2-review-content{max-width:1150px;width:100%;margin:0 auto}.v2-review-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:20px 22px;background:#131e2d;border:1px solid var(--line);border-radius:4px}#v2-review-state{font-size:20px;font-weight:500;color:#f5c26a}#v2-review-state[data-ready=true]{color:#8ae0d5}#v2-review-summary{color:var(--muted);font-size:13px;margin:5px 0 0}.v2-review-issue{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px;padding:18px 20px;background:#131e2d;border:1px solid #3a3b44;border-left:3px solid #f0c26b;border-radius:3px}.v2-review-issue.warning{border-left-color:#75b2c8}.v2-review-issue h3{font-size:15px;margin:6px 0}.v2-review-issue p{font-size:13px;color:#b0c1d0;margin:8px 0 0;max-width:730px}.v2-review-issue button{flex-shrink:0}.v2-issue-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#e2c28a}.v2-ready{display:flex;gap:18px;align-items:center;padding:24px;background:#143035;border:1px solid #30575b;border-radius:4px;margin-bottom:22px}.v2-ready>span{font-size:24px;color:#85e0d4}.v2-ready h3{margin:0 0 5px}.v2-ready p{margin:0;font-size:13px;color:#b0cbc9}.v2-review-package,#v2-export-settings{padding:16px 20px;border:1px solid var(--line);border-radius:3px;background:#131e2d;margin:20px 0}#v2-review-missions{display:grid;gap:6px;margin-top:8px}#v2-review-missions button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 16px;padding:12px 15px;text-align:left;background:#172534}#v2-review-missions small{grid-column:1;font-size:11px}#v2-review-missions b{grid-column:2;grid-row:1/3;align-self:center;font-size:12px;color:#e0c794;font-weight:400}.v2-runtime-note{color:#97afc0;font-size:12px;margin:24px 0}body.v2-editor footer{background:#131e2d;border-top:1px solid var(--line);padding:6px 18px;font-size:11px;height:28px;min-height:28px}body.v2-editor .v2-review-content>#v2-export-settings input{max-width:500px}body.v2-editor .source-layout{min-height:0}body.v2-editor #source-text{font-size:13px}
@media(max-width:1200px){body.v2-editor header{gap:10px;padding:12px 16px}#v2-brand{min-width:150px}body.v2-editor #v2-brand small{font-size:9px}body.v2-editor header .header-mission{padding-left:10px}body.v2-editor #active-title{font-size:15px}body.v2-editor header .actions{gap:4px}body.v2-editor header button{padding:7px 9px;font-size:12px}body.v2-editor .rail{width:225px}body.v2-editor .map-layout.inspector-open,body.v2-editor .flow-layout.inspector-open{grid-template-columns:minmax(0,1fr) 300px}body.v2-editor .inspector{padding:0 13px 15px}body.v2-editor .scroll-content{padding:22px}body.v2-editor #graph-hand span,body.v2-editor #graph-area-select span{font-size:10px}}
@media(max-width:900px){body.v2-editor header{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;height:105px;min-height:105px;padding:10px 15px;gap:5px 12px}#v2-brand{grid-column:1;grid-row:1;min-width:0}body.v2-editor #library-open{grid-column:2;grid-row:1}body.v2-editor header .header-mission{grid-column:1;grid-row:2;border:0;padding:0;min-width:0}body.v2-editor header .actions{grid-column:2;grid-row:2;margin:0;justify-self:end}body.v2-editor header>#undo{display:none}body.v2-editor #save-as{display:none}body.v2-editor #workbench-menu{display:none}#v2-workspaces{padding:0 10px 10px;min-height:50px;gap:2px}#v2-workspaces>button{font-size:13px;padding:8px 11px}#v2-objects-toggle,#v2-inspector-toggle{display:block;font-size:11px!important;padding:8px 9px!important}body.v2-editor .rail{position:fixed;left:0;top:155px;bottom:28px;width:270px;height:auto;z-index:85;transform:translateX(-100%);transition:transform .15s ease;box-shadow:12px 0 35px #0006;display:flex!important}body.v2-editor.v2-list-open .rail{transform:translateX(0)}body.v2-editor .app{display:flex;flex-direction:row;min-height:0}body.v2-editor main{width:100%;min-width:0}body.v2-editor .map-layout.inspector-open,body.v2-editor .flow-layout.inspector-open{grid-template-columns:minmax(0,1fr)}body.v2-editor .map-layout>.inspector,body.v2-editor .flow-layout>.inspector{position:absolute;right:0;top:0;bottom:0;width:315px;z-index:80;box-shadow:-8px 0 30px #0006}body.v2-editor:not(.v2-inspector-open) .inspector{display:none}body.v2-editor .viewbar{padding:12px!important}body.v2-editor #tactical-tools button{padding:7px 8px;font-size:11px}body.v2-editor .mission-grid{grid-template-columns:1fr}body.v2-editor [data-panel=mission]>.viewbar{padding:16px!important}body.v2-editor .scroll-content{padding:18px}body.v2-editor .source-layout{grid-template-columns:minmax(0,1fr)}body.v2-editor .source-layout>aside{max-height:250px;overflow:auto}body.v2-editor #reference-graph-tools{margin-left:auto}body.v2-editor #flow-fit{font-size:11px;padding:7px 8px}body.v2-editor #graph-add{font-size:11px;padding:7px 8px}body.v2-editor .graph-navigation-tools button{padding:5px}body.v2-editor #v2-objectives-open{font-size:11px;padding:7px 8px}body.v2-editor #reference-collapse{display:none}}
@media(max-width:540px){#v2-brand{font-size:14px}body.v2-editor #v2-brand small{font-size:9px}body.v2-editor #v2-brand .v2-mark{width:30px;height:30px}body.v2-editor header .actions{gap:4px}body.v2-editor #save{font-size:11px;padding:7px 8px}body.v2-editor #v2-review-open{font-size:11px;padding:7px 8px}body.v2-editor #active-title{font-size:14px}#v2-workspaces{gap:0;flex-wrap:wrap;min-height:74px;padding:0 7px 7px}#v2-workspaces>button{font-size:12px;padding:7px 10px}#v2-workspaces .v2-nav-spacer{display:none}#v2-objects-toggle,#v2-inspector-toggle{font-size:10px!important;padding:7px!important}body.v2-editor .rail{top:179px}body.v2-editor .map-layout>.inspector,body.v2-editor .flow-layout>.inspector{width:min(310px,94vw)}body.v2-editor .map-layout,body.v2-editor .flow-layout{position:relative}body.v2-editor [data-panel=flow]>.viewbar{flex-wrap:wrap;gap:5px}body.v2-editor .graph-navigation-tools span{display:none}body.v2-editor .graph-navigation-tools svg{width:18px}body.v2-editor #reference-graph-tools{margin-left:0}body.v2-editor #reference-graph-tools summary{font-size:10px;padding:7px 8px}body.v2-editor h1{font-size:20px}body.v2-editor .scroll-content{padding:14px}body.v2-editor .mission-grid>article{padding:16px}.v2-form-grid{grid-template-columns:1fr}body.v2-editor #metadata-messages .metadata-group{grid-template-columns:minmax(0,1fr)}.v2-review-heading{flex-direction:column;align-items:flex-start;padding:16px}.v2-review-issue{align-items:flex-start;flex-direction:column;padding:16px}#v2-review-missions button{padding:10px}body.v2-editor #v2-export-settings{padding:13px}body.v2-editor dialog{padding:17px}body.v2-editor #tactical-tools{gap:3px}body.v2-editor #tactical-tools button{padding:7px;font-size:10px}body.v2-editor #map-more-tools summary{font-size:10px;padding:7px}body.v2-editor footer{font-size:10px;padding:6px 10px}body.v2-editor #map-hint{font-size:10px;max-width:95%}}

body.v2-editor #v2-workspaces>#workbench-menu{display:block!important;margin-left:8px}body.v2-editor #v2-workspaces>#workbench-menu summary{font-size:12px;padding:8px 11px}body.v2-editor .reference-inspector-head{position:sticky;top:0;background:#131e2d;z-index:6}body.v2-editor .v2-inspector-tabs{position:sticky;top:47px;background:#131e2d;z-index:5;padding-top:8px}body.v2-editor .maplibregl-ctrl button{padding:0;background:#fff;border-radius:0}.v2-editor .maplibregl-ctrl button:hover{background:#e5eeee}@media(max-width:540px){#v2-workspaces{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:80px;min-height:80px;gap:2px;padding:0 7px 7px}#v2-workspaces>button{padding:6px 7px}#v2-workspaces>#workbench-menu{grid-column:3/5;justify-self:end;margin:0}#v2-workspaces>#workbench-menu summary{font-size:11px!important;padding:6px 8px!important}body.v2-editor .rail{top:185px}}

/* File actions live in one header section. */
body.v2-editor #v2-files-menu{position:relative;display:block}
body.v2-editor #v2-files-menu>summary{display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid var(--line);border-radius:2px;background:#172534;cursor:pointer;font-size:13px;list-style:none}
body.v2-editor #v2-files-menu>summary::-webkit-details-marker{display:none}
body.v2-editor #v2-files-menu nav{position:absolute;right:0;top:calc(100% + 8px);display:grid;gap:4px;width:285px;max-height:calc(100dvh - 120px);overflow:auto;padding:10px;background:#172534;border:1px solid var(--line);border-radius:3px;box-shadow:0 15px 35px #0009;z-index:140}
body.v2-editor #v2-files-menu nav button{display:block!important;text-align:left;width:100%;padding:10px 12px;font-size:13px}
body.v2-editor #v2-files-menu #v2-review-open{margin-bottom:5px}
body.v2-editor #v2-objects-toggle{display:block;font-size:14px!important;padding:9px 17px!important}
@media(max-width:540px){body.v2-editor #v2-objects-toggle{font-size:12px!important;padding:7px 10px!important}}

/* Center control contents without changing the alignment of list labels. */
body.v2-editor button{vertical-align:middle;text-align:center}
body.v2-editor :is(header,.viewbar,.actions,.side-tabs,.segment,.graph-navigation-tools) button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
body.v2-editor button svg{display:block;flex-shrink:0}
body.v2-editor :is(.unit-marker,.coordinate-marker,.route-waypoint-marker,.zone-handle,.measure-endpoint){display:grid;place-items:center;padding:0;line-height:1}
body.v2-editor .unit-marker{width:40px;height:40px}
body.v2-editor :is(.node-connect,.node-input){padding:0}
#graph-viewport{touch-action:none}
.maplibregl-marker{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.maplibregl-marker.move-ready{outline:2px solid #75fff0;outline-offset:5px;border-radius:3px;animation:move-ready-pulse .7s ease-in-out infinite alternate}
@keyframes move-ready-pulse{from{box-shadow:0 0 0 3px #75fff044,0 0 10px #75fff066}to{box-shadow:0 0 0 9px #75fff000,0 0 22px #75fff0aa}}
@media(prefers-reduced-motion:reduce){.maplibregl-marker.move-ready{animation:none;box-shadow:0 0 12px #75fff0aa}}

/* Compact file controls above the workspace toolbar row. */
body.v2-editor header{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,1fr);grid-template-rows:18px 34px;height:76px;min-height:76px;padding:8px 16px;gap:6px 16px}
body.v2-editor #v2-brand{grid-column:1;grid-row:1/3}
body.v2-editor header .header-mission{grid-column:2;grid-row:1;justify-self:end;max-width:100%;min-width:0;border:0;padding:0;text-align:right}
body.v2-editor #active-title{display:block;font-size:11px;font-weight:400;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.v2-editor header .header-mission small,body.v2-editor #v2-draft{display:none}
body.v2-editor header .actions{grid-column:2;grid-row:2;justify-self:end;align-items:center;margin:0;gap:6px}
body.v2-editor #v2-files-menu>summary{height:32px;padding:6px 11px;font-size:12px}
body.v2-editor .rail>#v2-workspaces{width:100%;height:55px;min-height:55px;padding:8px;gap:2px;display:flex;flex-wrap:nowrap}
body.v2-editor #v2-workspaces>button,body.v2-editor #v2-workspaces>#v2-objects-toggle{font-size:12px!important;padding:8px 7px!important;flex:1}
body.v2-editor #v2-workspaces>button[data-v2-view]{flex:1 1 0;min-width:0;justify-content:center}
body.v2-editor #v2-workspaces .v2-nav-spacer{display:none}
body.v2-editor #v2-files-menu #workbench-menu{display:block!important;margin:4px 0 0;border-top:1px solid var(--line);padding-top:5px}
body.v2-editor #v2-files-menu #workbench-menu>summary{padding:10px 12px;background:transparent;border:0;font-size:13px}
body.v2-editor #v2-files-menu #workbench-menu>nav{position:static;width:100%;max-height:none;box-shadow:none;border:0;padding:4px 0 0 10px;overflow:visible}
@media(max-width:900px){
 body.v2-editor .rail>#v2-workspaces{position:fixed;left:0;right:0;top:76px;width:100vw;transform:none;background:#131e2d}
 body.v2-editor .rail{top:131px}
 body.v2-editor .rail{transform:none;visibility:hidden;pointer-events:none;box-shadow:none}
 body.v2-editor .rail>#v2-workspaces{visibility:visible;pointer-events:auto}
 body.v2-editor.v2-list-open .rail{visibility:visible;pointer-events:auto;box-shadow:12px 0 35px #0006}
 body.v2-editor .app{margin-top:55px}
 body.v2-editor header{grid-template-columns:minmax(130px,1fr) minmax(0,1fr)}
}
/* Consistent editor type scale and predictable panel geometry. */
body.v2-editor{--text-control:13px;--text-label:12px;--text-caption:11px;font-size:13px;line-height:1.5}
body.v2-editor :is(button,input,select,textarea){font-family:inherit;font-weight:400}
body.v2-editor :is(.viewbar,#tactical-tools,.graph-navigation-tools,.side-tabs,#entity-subtabs,.chart-section,.typed-panel) :is(button,summary,input,select,textarea){font-size:var(--text-control)}
body.v2-editor :is(.typed-panel,.chart-section) label{font-size:var(--text-label)}
body.v2-editor :is(.typed-panel,.chart-section) small{font-size:var(--text-caption);line-height:1.5}
body.v2-editor :is(h2,.v2-rail-title){font-size:15px;line-height:1.4;font-weight:500}
body.v2-editor :is(h3,.chart-section>summary){font-size:13px;line-height:1.5;font-weight:500}
body.v2-editor #v2-brand{font-size:15px}
body.v2-editor #v2-brand small{font-size:10px}
body.v2-editor header .header-mission{display:block;flex-basis:auto}
body.v2-editor #active-title{font-size:11px;line-height:18px;font-weight:400}
body.v2-editor header .actions{width:auto;flex-wrap:nowrap}
body.v2-editor header :is(button,summary){height:auto}
body.v2-editor header #v2-files-menu>summary{height:32px;font-size:13px}
body.v2-editor #v2-files-menu>nav{margin:0}
body.v2-editor .rail>#v2-workspaces{height:56px;min-height:56px;margin:0;align-items:center}
body.v2-editor #v2-workspaces>button,body.v2-editor #v2-workspaces>#v2-objects-toggle{font-size:12px!important;line-height:1.4;padding:8px 6px!important}
body.v2-editor .side-tabs{min-height:0;padding:0 12px 8px}
body.v2-editor #entity-subtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0 6px;min-height:40px}
body.v2-editor #entity-subtabs button{min-width:0;padding:8px 3px;font-size:12px;line-height:1.4}
body.v2-editor .reference-entity{width:100%;min-width:0;white-space:normal;text-align:left;font-size:13px;line-height:1.5;grid-template-columns:12px minmax(0,1fr);column-gap:8px;row-gap:3px}
body.v2-editor .reference-entity .entity-name{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal;overflow:visible;line-height:1.5;font-size:13px}
body.v2-editor .reference-entity .entity-tail{font-size:11px;line-height:1.5;white-space:normal}
body.v2-editor :is(.entity-category-triggers,.entity-category-objectives){grid-template-columns:minmax(0,1fr);gap:6px;min-height:70px}
body.v2-editor :is(.entity-category-triggers,.entity-category-objectives)>.entity-badge{grid-column:1;grid-row:1;justify-self:start;margin:0;max-width:100%;font-size:11px;line-height:1.4;padding:2px 6px;white-space:normal;overflow-wrap:anywhere;border-radius:1px}
body.v2-editor :is(.entity-category-triggers,.entity-category-objectives)>.entity-name{grid-column:1;grid-row:2}
body.v2-editor [data-panel=map]>.viewbar{min-height:56px;justify-content:flex-start;gap:0;padding:8px 16px}
body.v2-editor #tactical-tools{flex-basis:auto;justify-content:flex-start;align-items:center;gap:5px;width:auto}
body.v2-editor #tactical-tools>button,body.v2-editor #map-more-tools>summary{font-size:13px;padding:8px 10px;height:36px;line-height:18px}
body.v2-editor #map-more-tools{order:0}
body.v2-editor #tactical-tools>#undo{margin:0;padding:6px 10px}
body.v2-editor .map-stage{min-height:0;position:relative}
body.v2-editor #v2-charts-open{position:absolute;left:14px;top:14px;z-index:12;font-size:13px;min-height:38px;padding:8px 13px;background:#14202ef2;box-shadow:0 3px 12px #0004}
body.v2-editor #v2-chart-overlay{position:absolute;left:14px;top:60px;bottom:76px;width:min(360px,calc(100% - 70px));max-height:680px;z-index:15;display:flex;flex-direction:column;overflow:hidden;background:#14202ef7;border:1px solid #3a5268;border-radius:3px;box-shadow:0 10px 30px #0006}
body.v2-editor .v2-chart-heading{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:14px;font-weight:500}
body.v2-editor #v2-charts-close{font-size:20px;line-height:1;padding:4px 8px;min-height:32px;background:transparent;border:0}
body.v2-editor #v2-chart-overlay #side-charts{flex:1;min-height:0;height:auto;overflow:auto;overscroll-behavior:contain;padding:0 14px 14px}
body.v2-editor #v2-chart-overlay .chart-section:first-of-type{border-top:0;margin-top:0}
body.v2-editor #v2-chart-overlay .chart-waypoint{grid-template-columns:18px minmax(0,1fr) minmax(0,1fr) 30px;gap:6px}
body.v2-editor #v2-chart-overlay .chart-waypoint label{font-size:11px}
body.v2-editor #v2-chart-overlay .chart-waypoint input{font-size:12px}
body.v2-editor .graph-node .node-title{font-size:11px;font-weight:400}
@media(max-width:900px){
 body.v2-editor{height:100dvh;min-height:0}
 body.v2-editor .rail{top:132px;width:min(300px,90vw)}
 body.v2-editor .rail>#v2-workspaces{top:76px;height:56px;min-height:56px}
 body.v2-editor .app{margin-top:56px}
 body.v2-editor main>section{min-height:0;height:100%}
 body.v2-editor .map-stage{height:auto;flex:1;min-height:0}
 body.v2-editor [data-panel=map]>.viewbar{padding:8px!important}
 body.v2-editor #tactical-tools{flex-basis:auto;gap:5px;flex-wrap:wrap;margin:0}
 body.v2-editor #tactical-tools>button,body.v2-editor #map-more-tools>summary{font-size:13px;padding:8px;min-height:36px}
 body.v2-editor #v2-chart-overlay{left:10px;top:58px;bottom:70px;width:min(360px,calc(100% - 58px));max-height:none}
 body.v2-editor #v2-charts-open{left:10px;top:10px}
 body.v2-editor .map-layout>.inspector,body.v2-editor .flow-layout>.inspector{max-width:94vw}
 body.v2-editor .scroll-content{overflow:auto}
}
@media(max-width:900px){
 /* A transformed drawer becomes a containing block for the fixed workspace bar. */
 body.v2-editor .rail,body.v2-editor.v2-list-open .rail{transform:none}
 body.v2-editor .rail>#v2-workspaces{margin:0;left:0;right:0;bottom:auto;top:76px;z-index:90}
}
/* Keep map markers below floating controls, including markers brought to front on selection. */
body.v2-editor .map-stage>#map{z-index:0;isolation:isolate}
body.v2-editor #v2-chart-overlay{background:#14202e}
body.v2-editor .v2-rail-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:12px 16px}
body.v2-editor .v2-rail-title #reference-collapse{margin:0;padding:4px;font-size:12px}
body.v2-editor.sidebar-collapsed .v2-rail-title{font-size:0;padding:10px 5px}
@media(max-width:900px){
 body.v2-editor #coordinate-readout{bottom:88px;font-size:11px}
 body.v2-editor #map-hint{top:auto;bottom:64px;font-size:11px}
 body.v2-editor #map-status{bottom:112px;font-size:11px}
 body.v2-editor #v2-chart-overlay{bottom:116px}
}

/* The workspace navigation remains available outside map and flow. */
@media(min-width:901px){
 body.v2-editor:not([data-workspace=map]):not([data-workspace=flow]) .rail{display:flex}
 body.v2-editor:not([data-workspace=map]):not([data-workspace=flow]):not([data-workspace=mission]) .rail>:not(#v2-workspaces):not(#areas-settings){display:none!important}
}
/* Advanced uses the same menu rows as file actions, without nested boxed controls. */
body.v2-editor #v2-files-menu #workbench-menu{margin:6px 0 0;padding:6px 0 0;border-top:1px solid var(--line)}
body.v2-editor #v2-files-menu #workbench-menu>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;padding:10px 12px;border:0;border-radius:2px;background:transparent;color:var(--muted);font:400 13px/1.4 'Segoe UI',Arial,sans-serif;height:auto;min-height:38px}
body.v2-editor #v2-files-menu #workbench-menu>summary::-webkit-details-marker{display:none}
body.v2-editor #v2-files-menu #workbench-menu>summary::after{content:'\203A';transform:rotate(90deg);font-size:17px}
body.v2-editor #v2-files-menu #workbench-menu[open]>summary::after{transform:rotate(-90deg)}
body.v2-editor #v2-files-menu #workbench-menu>summary:hover{background:#223447;color:#e8eff6}
body.v2-editor #v2-files-menu #workbench-menu>nav{display:grid;gap:3px;margin:0;padding:3px 0 0;max-height:none;background:transparent;position:static;width:100%;border:0;box-shadow:none}
body.v2-editor #v2-files-menu #workbench-menu nav button{margin:0;padding:10px 12px;min-height:38px;border:0;border-radius:2px;background:transparent;font-size:13px;line-height:1.4;text-align:left;color:#d7e3ee}
body.v2-editor #v2-files-menu #workbench-menu nav button:hover{background:#223447}
body.v2-editor #v2-files-menu .menu-extras:empty{display:none}
body.v2-editor #v2-files-menu>nav,body.v2-editor #v2-files-menu #workbench-menu>nav{grid-template-columns:minmax(0,1fr);grid-auto-flow:row;gap:4px}
body.v2-editor #v2-files-menu>nav>*,body.v2-editor #v2-files-menu #workbench-menu{width:100%;min-width:0;grid-column:1/-1}
body.v2-editor #v2-files-menu nav button{white-space:normal;overflow-wrap:anywhere;line-height:1.4;min-height:38px;border:0;background:transparent;text-align:left}
body.v2-editor #v2-files-menu nav button:hover{background:#223447}
/* Stacked form labels keep field edges aligned, regardless of the caption length. */
body.v2-editor :is(.scroll-content,.inspector,dialog,.chart-section) label:has(>input:not([type=checkbox]):not([type=radio]):not([type=range]),>select,>textarea):not(.loadout-slot):not(.chart-opacity):not(.message-inline-row){display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0}
body.v2-editor :is(.scroll-content,.inspector,dialog,.chart-section) label>:is(input,select,textarea){max-width:100%;min-width:0}
body.v2-editor :is(.scroll-content,.inspector,dialog,.chart-section) label>:is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){display:block;width:100%;margin-top:0}
body.v2-editor #v2-export-settings>article{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:14px 0 0;min-width:0}
body.v2-editor #v2-export-settings>article>h2{margin:0}
body.v2-editor #v2-export-settings>article>label{margin:0}
body.v2-editor #v2-export-settings :is(input:not([type=checkbox]),select){max-width:none;width:100%}
body.v2-editor #v2-export-settings .check{display:flex;flex-direction:row;align-items:flex-start;gap:8px;white-space:normal}
body.v2-editor #v2-export-settings .check input{width:16px;flex:0 0 16px;margin:3px 0 0}
body.v2-editor #v2-export-settings #download-package{justify-self:start;white-space:normal}
body.v2-editor .scroll-content>*,body.v2-editor .mission-grid>*{min-width:0}
body.v2-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:540px){body.v2-editor .form-grid{grid-template-columns:minmax(0,1fr)}}
/* Preserve readable tabular data and code at narrow viewport widths. */
body.v2-editor .table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin-top:16px}
body.v2-editor .table-wrap table{width:100%;min-width:850px;table-layout:auto}
body.v2-editor .table-wrap :is(td,th){overflow-wrap:normal;word-break:normal;text-align:left;vertical-align:top;padding:12px;font-size:13px;line-height:1.5}
body.v2-editor .table-wrap th{font-weight:500}
body.v2-editor .table-wrap td:first-child{min-width:220px}
body.v2-editor .table-wrap td:last-child{min-width:160px;white-space:nowrap}
body.v2-editor .table-wrap td button{font-size:13px;margin:0 5px 4px 0}
body.v2-editor :is(.code,pre,code,#source-text,#metadata-json){font-family:Consolas,'Courier New',monospace;line-height:1.55}
body.v2-editor .measure-endpoint{width:14px;height:14px;min-width:14px;min-height:14px;padding:0!important;border:1px solid #fff;border-radius:50%;font-size:8px;line-height:1;font-weight:500;box-shadow:0 1px 3px #0008}
body.v2-editor .measure-endpoint::before{content:'';position:absolute;inset:-6px;border-radius:50%}
body.v2-editor #editor-context-menu{max-width:min(290px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;padding:6px}
body.v2-editor #editor-context-menu button{display:block;width:100%;text-align:left;justify-content:flex-start;font-size:13px;line-height:1.4;padding:9px 10px;white-space:normal}
body.v2-editor #editor-context-menu #context-place-toggle{font-weight:500}
body.v2-editor #editor-context-menu .context-place-items{padding:2px 0 2px 10px;margin:0 0 5px 10px;border-left:2px solid #3d6474;background:#0e1a2755}
body.v2-editor #editor-context-menu .context-place-items button{font-weight:400;color:#b7c9d6;text-align:left}
body.v2-editor .field-caption{display:flex;align-items:center;gap:4px;min-width:0}
body.v2-editor .field-info{display:inline-grid!important;place-items:center;vertical-align:middle;flex:0 0 16px;width:16px!important;height:16px!important;min-width:16px;min-height:16px;padding:0!important;margin:0 0 0 4px!important;border:1px solid #527082;border-radius:50%;background:transparent!important;color:#b2d5df!important;font:500 10px/1 'Segoe UI',Arial,sans-serif!important;letter-spacing:0;text-transform:none;cursor:help}
body.v2-editor .field-info:hover,body.v2-editor .field-info[aria-expanded=true]{border-color:#75dbd2;background:#214048!important;color:#a6f4e9!important}
.editor-help-popup{position:fixed;z-index:25000;max-width:min(340px,calc(100vw - 16px));padding:12px 14px;border:1px solid #416477;border-radius:3px;background:#192b3b;box-shadow:0 8px 28px #0008;color:#d7e5ec;font:12px/1.55 'Segoe UI',Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}
.editor-help-popup{margin:0;inset:auto}
.editor-help-popup{width:min(340px,calc(100vw - 16px))}

.message-field{padding:10px 0;border-bottom:1px solid var(--line)}.message-field label{display:flex;flex-direction:column;gap:5px}.message-field .message-key-label{font-size:11px;color:var(--muted);margin-top:6px}.message-field input,.message-field textarea{width:100%;min-width:0;box-sizing:border-box}.message-editor{min-width:0}

body.v2-editor #graph-viewport,body.v2-editor #graph-viewport *{cursor:default!important}

body.v2-editor .message-field label{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:8px;margin:6px 0;font-size:12px}body.v2-editor .message-field .message-key-label{margin:6px 0;font-size:12px}body.v2-editor .message-field label>input,body.v2-editor .message-field label>textarea{margin:0;font-size:12px}body.v2-editor .message-field label:has(textarea){align-items:start}body.v2-editor .message-field{padding:7px 0}

@media(min-width:901px){body.v2-editor:not(.sidebar-collapsed) .rail{width:var(--v2-left-width,260px)}body.v2-editor .map-layout.inspector-open,body.v2-editor .flow-layout.inspector-open{grid-template-columns:minmax(0,1fr) var(--v2-right-width,330px)}}
.panel-resizer{position:fixed;width:8px;z-index:90;cursor:col-resize;touch-action:none;background:transparent}.panel-resizer:hover,.panel-resizer:focus-visible{background:#75dbd260;outline:none}.panel-resizing,.panel-resizing *{cursor:col-resize!important;user-select:none!important}@media(max-width:900px){.panel-resizer{display:none!important}}

@media(min-width:901px){
 body.v2-editor .rail>#v2-workspaces,body.v2-editor [data-panel=map]>.viewbar,body.v2-editor [data-panel=flow]>.viewbar{height:56px;min-height:56px;max-height:56px;box-sizing:border-box;flex-shrink:0;padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}
 body.v2-editor .v2-rail-title,body.v2-editor .reference-inspector-head{height:48px;min-height:48px;box-sizing:border-box;display:flex;align-items:center;padding-top:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}
 body.v2-editor .v2-inspector-tabs{top:48px}
}

#node-authoring-dialog{width:min(780px,94vw)}.node-authoring-fields{margin:12px 0}.node-authoring-fields fieldset{min-width:0;margin:12px 0;padding:10px 14px;border:1px solid var(--line);border-radius:2px}.node-authoring-fields fieldset>legend{font-size:12px;padding:0 5px;color:#b9d0dc}.node-authoring-fields details{margin:8px 0}.node-authoring-fields .node-setting>details{font-size:11px;opacity:.85}.node-authoring-fields .node-setting{min-width:0}.node-authoring-fields select[multiple]{height:auto;min-height:70px}.node-authoring-fields input[type=checkbox]{width:auto}.node-authoring-error{margin:12px 0;white-space:pre-wrap}.node-authoring-fields .code{font-size:12px}.node-nested-settings{min-width:0;padding:10px;border:1px solid var(--line);margin:12px 0}.node-nested-settings legend{font-size:12px}.node-custom-setting{margin:10px 0}

#node-authoring-dialog>.row:last-child{position:sticky;bottom:-24px;background:#131e2d;padding:14px 0 2px;border-top:1px solid var(--line);z-index:3}.node-message-form>label>textarea{min-height:110px}body.v2-editor .node-message-form>label{margin:9px 0}

.node-authoring-fields .node-choice-list{max-height:220px;overflow:auto}.node-authoring-fields .node-choice-list label.check{flex-direction:row;justify-content:space-between;margin:8px 0}

body.v2-editor .field-caption>.field-info{margin:0!important}

/* Briefing shares the entity browser, with one full-width scrolling form. */
body.v2-editor [data-panel=mission] .scroll-content{max-width:none;width:100%;margin:0;min-height:0;flex:1;scrollbar-gutter:stable}
body.v2-editor [data-panel=mission] .mission-grid{grid-template-columns:minmax(0,1fr)}
body.v2-editor [data-panel=mission] .v2-form-grid{grid-template-columns:minmax(0,1fr)}
body.v2-editor [data-panel=mission] label:has(>input:not([type=checkbox]):not([type=radio]),>select){display:grid!important;grid-template-columns:180px minmax(0,1fr);flex-direction:row!important;align-items:center!important;gap:12px;min-width:0}
body.v2-editor [data-panel=mission] label:has(>input:not([type=checkbox]):not([type=radio]),>select)>:is(input,select){width:100%;min-width:0;margin:0;grid-column:2}
body.v2-editor [data-panel=mission] .faction-row{padding:0;border:0}
body.v2-editor [data-panel=mission] #side-factions{display:block!important}
body.v2-editor #v2-objects-toggle{display:none!important}
body.v2-editor .zone-center{display:block;width:22px;height:22px;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;line-height:0;border-radius:2px}
body.v2-editor .zone-center svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;pointer-events:none}
body.v2-editor .zone-center-frame{fill:#183342;stroke:#84e9ef}
body.v2-editor .zone-center.selected .zone-center-frame{fill:#197f96;stroke:#a6f7ff}
body.v2-editor .map-zone-label{pointer-events:auto;cursor:pointer}
@media(max-width:900px){
 body.v2-editor #v2-brand{gap:8px;font-size:14px;min-width:0}
 body.v2-editor #v2-brand .v2-mark{display:none}
 body.v2-editor #v2-objects-toggle{display:grid!important;place-items:center;flex-shrink:0;padding:5px!important;width:30px;height:30px}
 body.v2-editor [data-panel=mission] label:has(>input:not([type=checkbox]):not([type=radio]),>select){grid-template-columns:minmax(90px,32%) minmax(0,1fr);gap:10px}
}

/* Map interactions use the same regular arrow as Flow. */
body.v2-editor #map,body.v2-editor #map *{cursor:default!important}
body.v2-editor #map-hint{left:8px;right:auto;top:auto;bottom:calc(var(--map-attribution-height,22px) + 20px);max-width:calc(100% - 16px);padding:5px 8px;font-size:11px;line-height:1.45;color:#b3c8d7;background:#101a29df;pointer-events:none}
body.v2-editor #coordinate-readout{top:10px;bottom:auto;left:auto;right:48px;max-width:calc(100% - 140px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(pointer:coarse){body.v2-editor #map-hint::after{content:' Touch: hold an object, then drag to move.'}}

/* Attribution and help share a stable left edge from the first map frame. */
body.v2-editor #map .maplibregl-ctrl-bottom-left{left:8px;right:8px;bottom:8px;width:auto}
body.v2-editor #map .maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib{float:none;width:100%;margin:0;text-align:left;white-space:normal;box-sizing:border-box}
body.v2-editor #map .maplibregl-ctrl-attrib-inner{display:block;white-space:normal;overflow-wrap:anywhere;text-align:left}

body.v2-editor #map .maplibregl-ctrl-attrib{background:#fff;color:#1f2933;border-radius:3px;padding:4px 8px}
body.v2-editor #map .maplibregl-ctrl-attrib-inner,body.v2-editor #map .maplibregl-ctrl-attrib-inner a{color:#1f2933}
/* The editor remains covered until the globe has rendered. */
#v2-loading{opacity:1;transition:opacity .4s ease}
#v2-loading.v2-loading-reveal{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){#v2-loading{transition:none}}

body.v2-booting #map .maplibregl-marker,body[data-map-startup-markers=hidden] #map .maplibregl-marker{opacity:0;pointer-events:none}
body[data-map-startup-markers=visible] #map .maplibregl-marker{transition:opacity .35s ease}

body.v2-editor .flow-zoom-tools{display:flex;align-items:center;gap:4px;flex-shrink:0}
body.v2-editor .flow-zoom-tools button{min-width:34px;min-height:34px;justify-content:center;font-size:18px;padding:4px 8px}

/* Flow tools wrap without clipping the toolbar or pushing the canvas below it. */
body.v2-editor [data-panel=flow]>.viewbar{height:auto;max-height:none;min-height:56px;flex-wrap:wrap;justify-content:flex-start;align-content:center;gap:6px 8px;overflow:visible}
body.v2-editor [data-panel=flow]>.viewbar>button,body.v2-editor [data-panel=flow]>.viewbar>.graph-navigation-tools{flex-shrink:0}
body.v2-editor [data-panel=flow]>.viewbar>.flow-zoom-tools{display:flex}
body.v2-editor .flow-layout{height:auto;flex:1;min-width:0;min-height:0}
body.v2-editor #graph-viewport{min-width:0;min-height:0}
@media(max-width:600px){
 body.v2-editor [data-panel=flow]>.viewbar{padding:8px!important}
 body.v2-editor [data-panel=flow] #reference-graph-tools{margin-left:0}
 body.v2-editor [data-panel=flow] .graph-navigation-tools span{display:none}
}

body.v2-editor [data-panel=flow]>.viewbar>button.flow-zoom-button{display:inline-flex!important;visibility:visible;flex:0 0 auto;min-height:34px;padding:6px 10px}

/* Bound the workspace to the remaining viewport, with a shrinking main pane. */
body.v2-editor .app{flex:1 1 0;min-width:0;min-height:0;overflow:hidden}
body.v2-editor main{flex:1 1 0;width:auto;min-width:0;min-height:0;overflow:hidden}
body.v2-editor main>[data-panel=flow]{height:100%;min-height:0;min-width:0;overflow:hidden}
body.v2-editor #flow-canvas-zoom{position:absolute;top:12px;right:12px;z-index:30;display:flex;flex-direction:column;gap:0;background:transparent;border:0;border-radius:2px;padding:0;box-shadow:none;margin:0}
body.v2-editor #flow-canvas-zoom button{display:flex!important;width:29px;height:29px;padding:0;border:0;border-radius:0;align-items:center;justify-content:center;line-height:1;cursor:pointer!important}

body.v2-editor #flow-canvas-zoom button:first-child{border-radius:2px 2px 0 0}
body.v2-editor #flow-canvas-zoom button:last-child{border-radius:0 0 2px 2px;border-top:1px solid #ddd}

/* Translucent lens-like glass with clear type-color headers. */
body.v2-editor [data-panel=flow] .graph-node[class]{
 --glass-tint:100,165,205;
 background:radial-gradient(ellipse at 5% 0%,rgba(220,244,255,.13),transparent 48%),linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.005) 46%,rgba(var(--glass-tint),.045)),rgba(17,31,47,.55);
 border:1px solid rgba(var(--glass-tint),.38);
 border-top-color:rgba(223,243,255,.42);
 border-radius:4px;
 box-shadow:inset 0 1px 1px rgba(235,250,255,.28),inset 1px 0 2px rgba(210,241,255,.12),inset 0 -2px 3px rgba(0,10,25,.3),0 6px 18px rgba(0,7,18,.28);
 -webkit-backdrop-filter:blur(.35px) saturate(120%);
 backdrop-filter:blur(.35px) saturate(120%);
 transition:border-color .15s ease,box-shadow .15s ease;
}
body.v2-editor [data-panel=flow] .graph-node[class].source{--glass-tint:183,139,235}
body.v2-editor [data-panel=flow] .graph-node[class].event,body.v2-editor [data-panel=flow] .graph-node[class].outcome,body.v2-editor [data-panel=flow] .graph-node[class].win{--glass-tint:112,208,155}
body.v2-editor [data-panel=flow] .graph-node[class].gate,body.v2-editor [data-panel=flow] .graph-node[class].objective{--glass-tint:226,196,109}
body.v2-editor [data-panel=flow] .graph-node[class].route{--glass-tint:93,213,214}
body.v2-editor [data-panel=flow] .graph-node[class].end{--glass-tint:180,157,217}
body.v2-editor [data-panel=flow] .graph-node[class].lose,body.v2-editor [data-panel=flow] .graph-node[class].objective.initial-failed{--glass-tint:238,132,144}
body.v2-editor [data-panel=flow] .graph-node[class].objective.initial-completed{--glass-tint:112,208,155}
body.v2-editor [data-panel=flow] .graph-node[class] .kind{
 background:linear-gradient(110deg,rgba(var(--glass-tint),.64),rgba(var(--glass-tint),.38));
 border-bottom:1px solid rgba(var(--glass-tint),.45);
 border-radius:4px 4px 0 0;
 color:#f0f7ff;text-shadow:0 1px 2px #07142180;
}
body.v2-editor [data-panel=flow] .graph-node[class]:hover{border-color:rgba(var(--glass-tint),.7);box-shadow:inset 0 1px 0 #ffffff26,0 7px 22px #000b1e66}
body.v2-editor [data-panel=flow] .graph-node[class].selected,body.v2-editor [data-panel=flow] .graph-node[class].connect-hover{border-color:#86e5ed;box-shadow:0 0 0 2px #73dfe94d,inset 0 1px 0 #ffffff30,0 6px 22px #000b1e66}
body.v2-editor [data-panel=flow] .graph-node[class].connect-invalid{border-color:#fb8c89}
@media(prefers-reduced-motion:reduce){body.v2-editor [data-panel=flow] .graph-node[class]{transition:none}}
@supports not ((backdrop-filter:blur(8px)) or (-webkit-backdrop-filter:blur(8px))){body.v2-editor [data-panel=flow] .graph-node[class]{background:linear-gradient(145deg,#ffffff10,#ffffff02),rgba(17,31,47,.55)}}

body.v2-editor [data-panel=flow] .graph-node[class] .node-title,body.v2-editor [data-panel=flow] .graph-node[class] small{text-shadow:0 1px 3px #06101f,0 0 7px #06101f99}

/* Shared site backdrop; the map and flow canvases keep their own surfaces. */
body.v2-editor{background:#0c1420}
body.v2-editor header{background:rgba(10,24,38,.25)}
body.v2-editor .app,body.v2-editor main{background:transparent}
body.v2-editor .rail{background:rgba(13,28,43,.82)}
body.v2-editor #v2-workspaces{background:rgba(13,28,43,.7)}
body.v2-editor main>section>.viewbar{background:rgba(13,28,43,.66)}
body.v2-editor [data-panel=mission]>.viewbar,body.v2-editor [data-panel=review]>.viewbar{background:rgba(13,28,43,.66)}
body.v2-editor footer{background:rgba(13,28,43,.82)}

/* Give the submarine its own clear image area above the editor controls. */
body.v2-editor{--site-header-height:clamp(110px,12.2vh,132px)}
body.v2-editor header{
 height:var(--site-header-height);min-height:var(--site-header-height);
 grid-template-rows:18px 34px;align-content:center;
 padding:8px 16px 12px;
 background-color:#06131f;
 background-image:url('./banner-sonar-cat.png');
 background-size:auto 100%;background-position:left center;background-repeat:no-repeat;
}
body.v2-editor #v2-brand,body.v2-editor header .header-mission{text-shadow:0 1px 4px #00131f}
@media(max-width:900px){
 body.v2-editor{--site-header-height:120px}
 body.v2-editor .rail>#v2-workspaces{top:var(--site-header-height)}
 body.v2-editor .rail{top:calc(var(--site-header-height) + 56px)}
}
@media(max-height:650px){
 body.v2-editor{--site-header-height:110px}
}

/* Entity tabs remain a distinct navigation strip without a heading row. */
body.v2-editor #v2-entity-navigation{display:flex;align-items:center;min-height:44px;flex-shrink:0;background:#152333;border-bottom:1px solid var(--line)}
body.v2-editor #v2-entity-navigation #entity-subtabs{flex:1;min-width:0;padding:0 3px;background:transparent;border-bottom:0}
body.v2-editor #v2-entity-navigation #entity-subtabs button{padding:10px 5px}
body.v2-editor #v2-entity-navigation #reference-collapse{flex-shrink:0;margin:0 5px 0 0;padding:4px;font-size:11px}
body.v2-editor.sidebar-collapsed #v2-entity-navigation #entity-subtabs{display:none}
body.v2-editor.sidebar-collapsed #v2-entity-navigation #reference-collapse{margin:auto}
body.v2-editor .entity-add-footer:has(#entity-add[data-category=units]){display:none}
body.v2-editor .reference-inspector-head{margin-left:0;margin-right:0;padding-left:0;padding-right:0}
body.v2-editor header{position:relative;isolation:isolate;z-index:300;overflow:visible}

body.v2-editor #v2-support-group{border-top:0;margin-top:0}
body.v2-editor #v2-charts-open{top:0;min-height:44px;height:44px;box-sizing:border-box}
body.v2-editor .v2-brand-name{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:900px){body.v2-editor header{background-image:url('./banner-sonar-cat-mobile.png');background-size:auto 100%;background-position:left center}}
@media(min-width:901px){body.v2-editor .rail>#v2-workspaces{padding-left:16px;padding-right:15px}}
@media(max-width:900px){body.v2-editor #v2-objects-toggle{position:absolute;left:8px;bottom:5px;margin:0;width:24px;height:24px;min-width:24px;padding:3px!important}}

/* ASW assignment search geometry is distinct from trigger/spawn zones. */
.asw-area-marker{width:26px;height:26px;padding:2px;border:1px solid #83e9e2;background:#0c2937;color:#95f4ee;border-radius:3px;position:relative}.asw-area-marker svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.asw-area-marker.selected{box-shadow:0 0 0 3px #91f5df66}.asw-area-label{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:#d8ffff;text-shadow:0 1px 3px #001c2d,1px 0 2px #001c2d;pointer-events:none}#asw-drawing-controls{position:absolute;top:58px;left:14px;z-index:20;display:flex;align-items:center;gap:12px;max-width:calc(100% - 70px);padding:10px;background:#101e2af2;border:1px solid #4d9b9f;font-size:12px}#asw-drawing-controls button{font-size:12px}.assignment-load-note{font-size:12px;color:var(--muted)}[data-asw-editor] button{margin:6px 4px 8px 0}

body.v2-editor .asw-area-marker{display:grid;place-items:center;padding:2px;width:26px;height:26px;font-size:0;line-height:0}body.v2-editor .asw-area-marker svg{width:20px;height:20px;pointer-events:none}body.v2-editor [data-asw-editor],body.v2-editor .asw-new-configuration fieldset{border:1px solid var(--line);padding:12px;margin:14px 0;border-radius:2px}body.v2-editor [data-asw-editor] legend,body.v2-editor .asw-new-configuration legend{font-size:12px;color:var(--muted);padding:0 5px}

/* Guided TLAM target picking stays above the map, within the workspace. */
#tlam-package-dialog{width:min(760px,calc(100vw - 32px));max-height:90vh;overflow:auto;}
#tlam-package-dialog [data-tlam-targets] fieldset{margin:12px 0;padding:12px;}
.tlam-pick-bar{position:absolute;top:12px;left:12px;right:60px;z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;background:#132335;border:1px solid #55cdd2;box-shadow:0 4px 20px #0008;}
.tlam-pick-bar span{flex:1;min-width:180px;}
.tlam-target-marker{width:26px;height:26px;display:grid;place-items:center;border:2px solid #ffc46b;border-radius:2px;background:#352b1d;color:#fff;font-weight:700;pointer-events:none;}

.tlam-saved-target{position:absolute;width:26px;height:26px;cursor:move;}.tlam-saved-target .tlam-target-marker{pointer-events:auto;cursor:inherit;width:26px;height:26px;min-width:26px;min-height:26px;padding:0;margin:0;}.tlam-saved-target .map-unit-label{white-space:nowrap;pointer-events:none;}

#tlam-package-dialog [data-tlam-row]{border:1px solid #33485c;}
#tlam-package-dialog [data-tlam-row]>.row{justify-content:flex-start;gap:8px;}
#tlam-package-dialog [data-tlam-row]>.row button{width:auto;}
#tlam-package-dialog [data-tlam-row] .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
#tlam-package-dialog .typed-panel>label,#tlam-package-dialog [data-tlam-row]>label{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:center;gap:8px;}
#tlam-package-dialog label:has(textarea){display:block;}
@media(max-width:600px){#tlam-package-dialog .typed-panel>label,#tlam-package-dialog [data-tlam-row]>label{display:block;}#tlam-package-dialog [data-tlam-row] .form-grid{grid-template-columns:1fr;}}
/* Action rows share one control size, including destructive actions. */
body.v2-editor #tlam-package-dialog .typed-panel>.row,
body.v2-editor #tlam-package-dialog [data-tlam-row]>.row{justify-content:flex-start;align-items:center;gap:8px;}
body.v2-editor #tlam-package-dialog .row>button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;height:36px;width:auto;margin:0;padding:0 12px;line-height:1;font-size:12px;}

body.v2-editor #tlam-package-dialog .typed-panel>label:has(textarea){display:block;}

body.v2-editor .message-chart-attachments{border:1px solid var(--line);padding:12px;margin:16px 0;}body.v2-editor .message-chart-attachments .check{align-items:flex-start;gap:8px;}body.v2-editor .message-chart-attachments button{min-height:36px;margin-top:8px;}

/* Preserve the supplied SUB CAT artwork; blend its ink into the existing water. */
.zone-trigger-warning{padding:10px 12px;border-left:3px solid #dfbb6f;background:#dfbb6f12;color:#e8d6ad;font-size:12px;line-height:1.5;}
.zone-trigger-warning strong{font-weight:600;}
body.v2-editor header{
 background-image:linear-gradient(90deg,rgba(3,9,16,.98) 0%,rgba(3,10,17,.88) 31%,rgba(2,9,15,.22) 62%,rgba(2,8,14,.62) 100%),linear-gradient(180deg,rgba(1,6,11,.08),rgba(1,6,11,.58)),url("./banner-sonar-index.webp");
 background-size:cover;background-position:67% 62%;background-repeat:no-repeat;
}
body.v2-editor .v2-logo-art{
 position:absolute;left:12px;top:50%;transform:translateY(-50%);
 width:calc((var(--site-header-height) - 16px)*2.75);
 max-width:calc(100vw - 140px);aspect-ratio:2.75;
 pointer-events:none;
 mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
body.v2-editor .v2-logo-art img{
 display:block;width:100%;height:100%;aspect-ratio:2.75;
 object-fit:cover;object-position:center 50%;filter:url('#sub-cat-logo-tone');
 border:0;border-radius:0;box-shadow:none;
}
body.v2-editor .v2-logo-filters{position:absolute;overflow:hidden;pointer-events:none}
@media(max-width:900px){body.v2-editor header{background-position:67% 62%}}

/* Wrapped, searchable choices stay inside the viewport and modal top layer. */
.detailed-choice-picker{position:fixed;z-index:20000;display:flex;flex-direction:column;gap:8px;box-sizing:border-box;padding:8px;background:#142131;border:1px solid #557383;border-radius:2px;box-shadow:0 12px 32px #0009;font:13px/1.45 "Segoe UI",Arial,sans-serif;overflow:hidden;color:#dbe6ee}
.detailed-choice-picker>input{flex-shrink:0;width:100%;box-sizing:border-box;min-height:36px;margin:0}
.detailed-choice-list{overflow:auto;min-height:0;overscroll-behavior:contain}
body.v2-editor .detailed-choice-list>button{display:block;width:100%;height:auto;min-height:38px;margin:0;padding:10px;text-align:left;white-space:normal;overflow-wrap:anywhere;line-height:1.45;border:0;border-bottom:1px solid #334354;border-radius:0;background:transparent;color:#dbe6ee}
body.v2-editor .detailed-choice-list>button[aria-selected=true]{background:#214148;color:#a1ebe5}
body.v2-editor .detailed-choice-list>button:is(:hover,:focus-visible){background:#2c505b;outline:1px solid #7bd7d1;outline-offset:-1px}
.detailed-choice-list>p{padding:8px;color:#9baebf}

/* Open Tools without changing the toolbar's flex geometry. */
body.v2-editor [data-panel=map]>.viewbar{position:relative;z-index:50;overflow:visible}
body.v2-editor #map-more-tools,body.v2-editor #map-more-tools[open]{height:36px;flex-shrink:0;box-shadow:none;background:transparent}
body.v2-editor #map-more-tools>.map-tools-popover{display:none;position:absolute;left:0;top:100%;width:170px;padding:4px;background:#172534;border:1px solid var(--line);box-shadow:0 10px 25px #0006;z-index:70}
body.v2-editor #map-more-tools[open]>.map-tools-popover{display:grid;gap:2px}
body.v2-editor #map-more-tools .map-tools-popover>button{display:flex;justify-content:flex-start;width:100%;min-height:36px;margin:0;text-align:left}

/* Reserve a canvas beside mobile options so another node and gestures remain reachable. */
@media(max-width:900px){
 body.v2-editor .flow-layout,body.v2-editor .flow-layout.inspector-open{display:grid;position:relative;grid-template-columns:minmax(0,1fr);overflow:hidden}
 body.v2-editor.v2-inspector-open .flow-layout.inspector-open{grid-template-columns:minmax(0,1fr) min(360px,55vw)}
 body.v2-editor .flow-layout>#graph-viewport{height:100%;min-height:0;width:100%}
 body.v2-editor .flow-layout>#flow-inspector{position:relative;inset:auto;width:100%;min-width:0;height:100%;min-height:0;max-height:none;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;border-left:1px solid var(--line);border-top:0;box-shadow:-8px 0 30px #0006;z-index:80}
}

body.v2-editor [data-panel=mission]>.viewbar{display:flex!important;align-items:center;min-height:56px;height:56px;box-sizing:border-box;padding:8px 30px!important}
body.v2-editor [data-panel=mission]>.viewbar h1{margin:0;line-height:1.2}
body.v2-editor [data-panel=mission]>.viewbar>div{display:flex;align-items:center;min-height:0}
