/* PACOM Joint Planning Tool — styles follow the EPT "Tactical Utility" design system. */
:root{
  --bg-0:#0A0E14;--bg-1:#11161F;--bg-2:#181E29;--bg-3:#222B39;
  --border-1:#2A3444;--border-2:#3A4658;
  --text-1:#E6EDF6;--text-2:#A8B3C2;--text-3:#6B7686;
  --accent-1:#FFB547;--accent-1-dim:#B87E2C;--accent-1-bg:rgba(255,181,71,0.10);
  --gold:#FFD700;--gold-dim:#c9a227;--gold-line:rgba(201,162,39,.14);
  --status-go:#4ADE80;--status-caution:#FACC15;--status-stop:#F87171;--status-info:#60A5FA;--status-muted:#6B7686;
  --class-unclas:#4ADE80;
  --font-sans:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --radius-1:2px;--radius-2:4px;--radius-3:6px;
  --ease-out:cubic-bezier(0.2,0,0,1);
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{background:var(--bg-0);color:var(--text-1);font-family:var(--font-sans);font-size:14px;line-height:1.5;display:flex;flex-direction:column;padding-top:28px;overflow:hidden;}
button,input,select,textarea{font-family:inherit;}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}

/* Classification banner — fixed, never dismissible */
.class-banner{position:fixed;top:0;left:0;right:0;height:28px;z-index:1000;background:var(--class-unclas);color:#06210F;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;}

.app{display:flex;flex-direction:column;flex:1;min-height:0;}
.topbar{height:52px;background:#000;border-bottom:1px solid rgba(201,162,39,.3);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0;}
.topbar-brand{font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;display:flex;align-items:center;gap:6px;}
.topbar-brand span span,.topbar-brand .brand-short span{color:var(--gold);}
.topbar-brand .star{color:var(--gold);}
.topbar-brand .brand-short{display:none;}
.topbar-right{display:flex;align-items:center;gap:12px;}
.topbar-dtg{font-family:var(--font-mono);font-size:11px;color:var(--text-2);letter-spacing:.04em;white-space:nowrap;}
.topbar-sync{font-size:10px;color:var(--text-3);white-space:nowrap;}
.topbar-sync.saving{color:var(--accent-1);}.topbar-sync.error{color:var(--status-stop);}
.cls-badge{background:rgba(201,162,39,.1);color:var(--gold);border:1px solid rgba(201,162,39,.3);padding:3px 8px;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:1px;white-space:nowrap;}

/* Module bar */
.branch-bar{height:44px;background:var(--bg-2);border-bottom:1px solid var(--border-1);display:flex;flex-shrink:0;}
.btab-group-main{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:none;border-right:1px solid var(--border-1);color:var(--text-2);font-size:12px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background 140ms var(--ease-out),color 140ms var(--ease-out);}
.btab-group-main:last-child{border-right:none;}
.btab-group-main:hover:not(.locked){background:var(--accent-1-bg);color:var(--text-1);}
.btab-group-main.active{background:var(--accent-1);color:#0A0E14;}
.btab-group-main.locked{color:var(--text-3);cursor:not-allowed;}
.btab-group-main .step{font-family:var(--font-mono);font-size:10px;opacity:.75;}
.btab-group-main .short{display:none;}
@media(max-width:768px){.btab-group-main{min-width:0;}.btab-group-main .full{display:none;}.btab-group-main .short{display:inline;}}
.btab-group-main:focus-visible{outline:2px solid var(--accent-1);outline-offset:-3px;}

/* Workspace */
.workspace{display:flex;flex:1;min-height:0;}
.sidebar{width:248px;flex-shrink:0;background:rgba(0,0,0,.5);border-right:1px solid var(--gold-line);display:flex;flex-direction:column;overflow:hidden;}
.sb-head{padding:16px;border-bottom:1px solid var(--gold-line);}
.sb-back{background:none;border:none;color:var(--text-3);font-size:10px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;margin-bottom:8px;}
.sb-back:hover{color:var(--gold);}
.sb-exname{font-size:13px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sb-excode{font-size:11px;color:var(--gold);letter-spacing:1px;font-family:var(--font-mono);}
.prog-bar{height:3px;background:rgba(255,255,255,.08);border-radius:2px;margin:12px 0 4px;overflow:hidden;}
.prog-fill{height:100%;background:linear-gradient(90deg,#c9a227,#FFD700);transition:width .3s;}
.prog-label{font-size:10px;color:#9a9a82;}
.sec-group{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:12px 16px 4px;}
.sec-list{flex:1;overflow-y:auto;padding:4px 0 8px;}
.sec-item{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;border-left:2px solid transparent;background:none;border-top:none;border-right:none;border-bottom:none;width:100%;text-align:left;color:inherit;transition:background .15s;}
.sec-item:hover{background:rgba(201,162,39,.06);}
.sec-item.active{background:rgba(201,162,39,.1);border-left-color:var(--gold);}
.sec-num{font-size:10px;font-weight:700;color:#666;width:20px;flex-shrink:0;font-family:var(--font-mono);}
.sec-item.active .sec-num{color:var(--gold);}
.sec-name{font-size:12px;color:#9a9a82;flex:1;}
.sec-item.active .sec-name{color:#f0f0e8;}
.sec-dot{width:7px;height:7px;border-radius:50%;background:#1a2030;border:1px solid #333;flex-shrink:0;}
.sec-dot.done{background:var(--gold);border-color:var(--gold);}
.sec-dot.partial{background:#c9a227;border-color:#c9a227;opacity:.6;}
.sb-foot{padding:12px 16px;border-top:1px solid var(--gold-line);font-size:10px;color:var(--text-3);line-height:1.5;}

.center{flex:1;overflow-y:auto;}
.page{max-width:980px;padding:24px 32px 64px;}
.page-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.eyebrow{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dim);font-family:var(--font-mono);}
.page-title{font-size:22px;font-weight:600;letter-spacing:-.01em;margin-top:2px;}
.page-sub{color:var(--text-2);font-size:13px;margin-top:4px;max-width:680px;}

.doctrine{border-left:2px solid var(--gold-dim);background:rgba(201,162,39,.05);padding:10px 14px;margin-bottom:20px;border-radius:0 var(--radius-2) var(--radius-2) 0;}
.doctrine .ref{font-size:10px;font-family:var(--font-mono);letter-spacing:.08em;color:var(--gold);text-transform:uppercase;margin-bottom:3px;}
.doctrine p{font-size:12.5px;color:var(--text-2);}

.card{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-2);padding:16px 18px;margin-bottom:16px;}
.card-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px;}
.span-2{grid-column:span 2;}.span-3{grid-column:1/-1;}
.field label{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6b8caa;margin-bottom:5px;}
.field label .req{color:var(--accent-1);margin-left:3px;}
.field .hint{font-size:11px;color:var(--text-3);margin-top:4px;}
.input,.select,.textarea{width:100%;padding:8px 10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-2);color:#dde8f4;font-size:13px;transition:border-color 120ms;}
.textarea{resize:vertical;min-height:64px;line-height:1.45;}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--gold-dim);}
.select option{background:var(--bg-2);}
.input.locked{color:var(--text-3);cursor:not-allowed;}

.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-2);border:none;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;}
.btn-primary{background:var(--gold);color:#1a1a1a;}.btn-primary:hover{background:#ffe44d;}
.btn-ghost{background:rgba(255,255,255,.06);color:#c8b88a;border:1px solid rgba(201,162,39,.2);}.btn-ghost:hover{background:rgba(201,162,39,.12);color:#fff;}
.btn-sm{padding:5px 10px;font-size:11.5px;}
.btn-icon{background:none;border:1px solid transparent;color:var(--text-3);cursor:pointer;padding:6px;border-radius:var(--radius-2);display:inline-flex;}
.btn-icon:hover{color:var(--status-stop);border-color:rgba(248,113,113,.3);}
svg.i{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}

/* Mission statement preview */
.mission-preview{font-family:var(--font-mono);font-size:13px;line-height:1.6;color:#f0f0e8;background:var(--bg-0);border:1px solid var(--border-2);border-left:3px solid var(--gold);padding:12px 14px;border-radius:var(--radius-2);}
.mission-preview .gap{color:var(--status-caution);}

/* Row tables */
.rows{display:flex;flex-direction:column;gap:10px;}
.row{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--radius-2);padding:12px;}
.row-hdr{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.row-id{font-family:var(--font-mono);font-size:11px;color:var(--gold);letter-spacing:.06em;}
.row-hdr .spacer{flex:1;}
.empty{border:1px dashed var(--border-2);border-radius:var(--radius-2);padding:20px;text-align:center;color:var(--text-3);font-size:12.5px;}

.chips{display:flex;flex-wrap:wrap;gap:6px;}
.chip{font-size:11px;padding:4px 10px;border-radius:12px;background:rgba(201,162,39,.08);border:1px solid rgba(201,162,39,.25);color:#d9c58a;cursor:pointer;transition:background .12s;}
.chip:hover{background:rgba(201,162,39,.18);color:#fff;}
.chip .plus{color:var(--gold);margin-right:3px;}

.seg{display:inline-flex;border:1px solid var(--border-2);border-radius:var(--radius-2);overflow:hidden;}
.seg button{background:none;border:none;color:var(--text-2);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;cursor:pointer;}
.seg button+button{border-left:1px solid var(--border-2);}
.seg button.on{background:var(--accent-1-bg);color:var(--accent-1);}

.check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);cursor:pointer;}
.check input{accent-color:var(--accent-1);width:14px;height:14px;}

/* Status — color + shape + text */
.status{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;white-space:nowrap;}
.status::before{content:"";width:8px;height:8px;flex-shrink:0;}
.status.go{color:var(--status-go);background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.3);}
.status.go::before{background:var(--status-go);border-radius:50%;}
.status.caution{color:var(--status-caution);background:rgba(250,204,21,.08);border:1px solid rgba(250,204,21,.3);}
.status.caution::before{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid var(--status-caution);}
.status.stop{color:var(--status-stop);background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.3);}
.status.stop::before{background:var(--status-stop);}
.status.pending{color:var(--status-muted);border:1px solid var(--border-2);}
.status.pending::before{border:1.5px solid var(--status-muted);border-radius:50%;width:6px;height:6px;}
.status.info{color:var(--status-info);background:rgba(96,165,250,.08);border:1px solid rgba(96,165,250,.3);}
.status.info::before{background:var(--status-info);transform:rotate(45deg);width:7px;height:7px;}

.check-list{display:flex;flex-direction:column;}
.check-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-1);}
.check-row:last-child{border-bottom:none;}
.check-row .what{flex:1;font-size:13px;}
.check-row .what small{display:block;color:var(--text-3);font-size:11.5px;}
.check-row .go-to{font-size:11px;color:var(--gold-dim);background:none;border:none;cursor:pointer;white-space:nowrap;}
.check-row .go-to:hover{color:var(--gold);}

.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
.summary-card{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-2);padding:14px;}
.summary-card .label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);}
.summary-card .value{font-family:var(--font-mono);font-size:26px;font-weight:600;margin-top:2px;}

/* Library */
.lib{padding:32px;max-width:1200px;}
.lib-hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;flex-wrap:wrap;}
.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.ex-card{background:linear-gradient(160deg,rgba(0,0,0,.35),rgba(0,0,0,.25));border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:18px 20px;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 3px 16px rgba(0,0,0,.4);transition:border-color .2s,background .2s;text-align:left;color:inherit;width:100%;}
.ex-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#c9a227,transparent);opacity:.5;}
.ex-card:hover{border-color:#c9a227;background:rgba(201,162,39,.06);}
.ex-card-name{font-size:15px;font-weight:700;margin-bottom:4px;}
.ex-card-code{font-size:11px;color:#c9a227;letter-spacing:1px;font-family:var(--font-mono);margin-bottom:12px;}
.ex-card-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--text-3);}

/* Module 2 */
.topbar-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid rgba(201,162,39,.25);color:#c8b88a;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:3px;cursor:pointer;}
.topbar-btn:hover{color:#fff;background:rgba(201,162,39,.12);}
.tag{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:3px;border:1px solid var(--border-2);color:var(--text-2);white-space:nowrap;}
.tag.lg{font-size:11px;padding:4px 10px;}
.tag.red{border-color:rgba(248,113,113,.35);color:#f5a3a3;}
.notice{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--status-caution);border:1px solid rgba(250,204,21,.25);background:rgba(250,204,21,.05);padding:8px 12px;border-radius:var(--radius-2);margin-bottom:16px;}
.row.tight{display:flex;align-items:center;gap:8px;padding:8px 10px;}
.row.tight .field label:empty{display:none;}
.row.tight .row-id{min-width:56px;}
.field.grow{flex:1;min-width:0;}
.field.w-120{width:120px;flex-shrink:0;}.field.w-160{width:160px;flex-shrink:0;}.field.w-240{width:240px;flex-shrink:0;}.field.w-280{width:280px;flex-shrink:0;}
.sub-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin:16px 0 10px;display:flex;align-items:center;justify-content:space-between;}
.check-wrap{display:flex;flex-direction:column;gap:6px;}
.screen-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.check.screen{align-items:flex-start;background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--radius-2);padding:8px;}
.check.screen span{display:flex;flex-direction:column;}
.check.screen b{font-size:12px;color:var(--text-1);}
.check.screen small{font-size:10.5px;color:var(--text-3);line-height:1.35;}
.vs{color:var(--text-3);font-weight:400;margin:0 4px;}
.turn{background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--radius-2);padding:10px;}
.turn-hdr{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.turn-hdr .field label:empty{display:none;}
.turn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.tbl-wrap{overflow-x:auto;}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.tbl th{text-align:left;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:8px 10px;border-bottom:1px solid var(--border-2);white-space:nowrap;vertical-align:bottom;}
.tbl th small{display:block;text-transform:none;letter-spacing:0;font-weight:400;color:var(--text-2);font-size:11px;}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--border-1);vertical-align:top;}
.tbl td .field label:empty{display:none;}
.tbl td small{display:block;color:var(--text-3);font-size:10.5px;margin-top:3px;}
.tbl .num{text-align:center;}
.tbl tr.total td{font-weight:600;border-top:1px solid var(--border-2);font-size:14px;}
.tbl td.lead{color:var(--gold);}
.tbl tr.rec td{background:rgba(74,222,128,.04);}
.acr-tools{display:flex;align-items:center;gap:12px;}
.acr-tools .input{max-width:420px;}
.acr-tbl td.acr{color:var(--gold);font-weight:500;white-space:nowrap;}
.acr-tbl td.cat{color:var(--text-3);font-size:11.5px;}
.chip.on{background:var(--accent-1);color:#0A0E14;border-color:var(--accent-1);}
@media(max-width:1024px){.screen-grid{grid-template-columns:repeat(2,1fr);}.turn-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){.topbar-btn span{display:none;}.row.tight{flex-wrap:wrap;}.field.w-120,.field.w-160,.field.w-240,.field.w-280{width:100%;}.turn-grid,.screen-grid{grid-template-columns:1fr;}}

/* Commander's priorities */
.prio-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;}
.rank-panel{position:sticky;top:12px;}
.prio-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.prio-card.low{opacity:.6;}
.prio-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;margin-top:10px;}
.rates{display:flex;gap:8px;flex-wrap:wrap;}
.rate{width:84px;border:1px solid transparent;border-radius:var(--radius-2);padding:2px;}
.rate label{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;color:#6b8caa;margin-bottom:4px;}
.rate .field label:empty{display:none;}
.rate small{display:block;font-size:10px;color:var(--accent-1);margin-top:2px;}
.rate.edited{border-color:var(--accent-1);background:var(--accent-1-bg);}
.rank-row{margin-bottom:10px;}
.rank-hdr{display:flex;align-items:center;gap:8px;font-size:12.5px;}
.rank-pos{color:var(--text-3);width:14px;}
.rank-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rank-score{font-weight:600;}
.rank-row.top .rank-name,.rank-row.top .rank-score{color:var(--gold);}
.rank-bar{height:6px;background:rgba(255,255,255,.06);border-radius:2px;margin-top:4px;overflow:hidden;}
.rank-bar span{display:block;height:100%;background:linear-gradient(90deg,#c9a227,#FFD700);}
.rank-bar span.neg{background:var(--status-stop);}
.ccir{padding-left:18px;font-size:12px;color:var(--text-2);display:flex;flex-direction:column;gap:6px;}
@media(max-width:1024px){.prio-layout{grid-template-columns:1fr;}.rank-panel{position:static;order:-1;}}

/* Synchronization matrix */
.sync-tbl{min-width:760px;table-layout:fixed;}
.sync-tbl th,.sync-tbl td{border-right:1px solid var(--border-1);}
.sync-tbl thead th{width:220px;}
.sync-tbl .sync-row{position:sticky;left:0;z-index:1;width:190px;background:var(--bg-2);text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:var(--text-1);vertical-align:top;white-space:normal;}
.sync-tbl thead .sync-row{color:var(--gold);}
.sync-tbl .sync-row .tag{display:inline-block;margin-top:4px;color:var(--gold);border-color:rgba(201,162,39,.4);}
.sync-tbl .sync-row.red{color:#f5a3a3;}
.sync-group td{background:var(--bg-0);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:6px 10px;position:sticky;left:0;}
.sync-cell{min-height:44px;font-size:12px;padding:6px 8px;}
.sync-task{font-size:11.5px;background:var(--accent-1-bg);border-left:2px solid var(--accent-1);color:var(--text-1);padding:3px 6px;margin-bottom:4px;border-radius:0 2px 2px 0;}
.sync-tbl td.gap{background:rgba(250,204,21,.05);}
.sync-tbl td.gap .sync-cell{border-color:rgba(250,204,21,.35);}
.sync-tbl tfoot td,.sync-tbl tfoot th{border-top:1px solid var(--border-2);font-size:11.5px;}

/* Module 3 documents */
.doc{background:#F4F1E8;color:#1B1F26;border-radius:var(--radius-2);padding:28px 36px;font-size:13px;line-height:1.55;margin-bottom:16px;}
.doc-class{text-align:center;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.12em;color:#1d6b3a;margin:-8px 0 16px;}
.doc-class:last-child{margin:20px 0 -8px;}
.doc-title{font-size:17px;font-weight:600;text-align:center;margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em;}
.doc-meta{display:grid;grid-template-columns:max-content 1fr;gap:2px 14px;font-size:12.5px;margin:6px 0 14px;}
.doc-meta dt{font-weight:600;color:#4a5260;}
.doc .doc-meta dt{color:#4a5260;}
.doc-h{font-weight:600;margin:14px 0 4px;}
.doc-h.l1{text-transform:uppercase;letter-spacing:.03em;}
.doc-h.l2{margin-left:18px;}
.doc-h.l3{margin-left:18px;font-style:italic;font-weight:500;}
.doc-p{margin:4px 0 6px 18px;}
.doc-list{margin:4px 0 8px 36px;display:flex;flex-direction:column;gap:3px;}
.doc .tbl{margin:6px 0 10px 18px;width:calc(100% - 18px);font-size:12px;}
.doc .tbl th{color:#4a5260;border-color:#c9c4b5;}
.doc .tbl td{border-color:#ddd8ca;}
.slide{background:var(--bg-1);border:1px solid var(--border-1);border-left:3px solid var(--gold);border-radius:var(--radius-2);margin-bottom:14px;}
.slide-hdr{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-1);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
.slide-hdr .mono{color:var(--gold);}
.slide-class{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--status-go);letter-spacing:.1em;font-weight:500;}
.slide-body{padding:14px 18px;font-size:13px;color:var(--text-2);}
.slide-body p{margin-bottom:8px;}
.slide-body .doc-list{margin-left:18px;}
.slide-body b{color:var(--text-1);}
.slide-lead{font-size:14px;color:var(--text-1);}
.tbl tr.excluded td{opacity:.45;}
.tbl td input[type=checkbox]{accent-color:var(--accent-1);width:15px;height:15px;}

@media print{
  @page{margin:14mm;}
  body{background:#fff;color:#000;padding-top:0;overflow:visible;display:block;}
  .class-banner{position:static;}
  .topbar,.branch-bar,.sidebar,.page-hdr,.doctrine,.notice,.toast,.center .page>.card{display:none!important;}
  .workspace,.center,.app{display:block;overflow:visible;}
  .page{padding:0;max-width:none;}
  .doc{background:#fff;padding:0;}
  .slide{break-inside:avoid;background:#fff;border-color:#999;color:#000;}
  .slide-body,.slide-body b,.slide-lead,.slide-hdr{color:#000;}
}

/* Workflow map */
.jpp-rail{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:20px;}
.jpp-pip{background:var(--bg-1);border:1px solid var(--border-1);border-top:3px solid var(--border-2);padding:8px;font-size:11px;color:var(--text-3);line-height:1.3;}
.jpp-pip span{display:block;font-family:var(--font-mono);font-size:16px;font-weight:600;color:var(--text-3);}
.jpp-pip.on{border-top-color:var(--gold);color:var(--text-2);}
.jpp-pip.on span{color:var(--gold);}
.jpp-hdr{display:flex;align-items:flex-start;gap:14px;margin-bottom:8px;}
.jpp-num{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--gold);width:28px;flex-shrink:0;line-height:1.1;}
.jpp-step.is-locked .jpp-num{color:var(--text-3);}
.jpp-name{font-size:15px;font-weight:600;}
.jpp-sum{font-size:12.5px;color:var(--text-2);margin-top:2px;}
.jpp-mod{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border:1px solid var(--border-2);padding:3px 8px;border-radius:3px;white-space:nowrap;}
@media(max-width:768px){.jpp-rail{grid-template-columns:repeat(4,1fr);}.jpp-hdr{flex-wrap:wrap;}}

.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--bg-2);border:1px solid var(--border-2);color:var(--text-1);padding:8px 16px;border-radius:var(--radius-2);font-size:12.5px;opacity:0;pointer-events:none;transition:all 180ms var(--ease-out);z-index:900;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

@media(max-width:768px){
  body{overflow:auto;}
  .topbar{padding:0 12px;height:46px;}
  .topbar-brand .brand-full{display:none;}.topbar-brand .brand-short{display:inline;}
  .topbar-dtg{display:none;}
  .btab-group-main{font-size:10px;letter-spacing:.06em;gap:4px;}
  .btab-group-main .step{display:none;}
  .workspace{flex-direction:column;}
  .sidebar{width:100%;border-right:none;border-bottom:1px solid var(--gold-line);}
  .sb-head{padding:10px 16px;}
  .sec-group,.sb-foot{display:none;}
  .sec-list{display:flex;overflow-x:auto;padding:0 8px;}
  .sec-item{width:auto;white-space:nowrap;border-left:none;border-bottom:2px solid transparent;padding:10px 12px;}
  .sec-item.active{border-bottom-color:var(--gold);}
  .page,.lib{padding:16px;}
  .grid-2,.grid-3{grid-template-columns:1fr;}
  .span-2{grid-column:auto;}
  .summary-grid{grid-template-columns:repeat(2,1fr);}
  .page-hdr{flex-direction:column;}
}

/* Sign-in and account */
.userbox{display:flex;align-items:center;gap:8px;}
.user-chip{display:flex;flex-direction:column;line-height:1.15;font-size:11px;color:var(--text-1);text-align:right;}
.user-chip small{color:var(--text-3);font-size:10px;letter-spacing:.04em;}
.auth-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 16px;}
.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px;padding:28px;}
.auth-card.wide{max-width:560px;}
.auth-card .doctrine{margin-bottom:0;}
.auth-err{color:var(--status-stop);font-size:12.5px;min-height:1em;}
.btn-block{width:100%;justify-content:center;padding:10px 16px;}
.btn:disabled{opacity:.5;cursor:wait;}
.sb-ro{color:var(--status-info);font-weight:600;margin-bottom:6px;letter-spacing:.04em;text-transform:uppercase;}
.sb-delete{display:block;background:none;border:1px solid rgba(248,113,113,.3);color:var(--status-stop);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:3px;cursor:pointer;margin-bottom:8px;}
.sb-delete:hover{background:rgba(248,113,113,.08);}
.tbl td small{display:block;}
/* Read-only roles: hide editing controls; the server enforces the same rules. */
body.ro [data-act="add"],body.ro [data-act="remove"],body.ro .chip[data-act^="prompt"],body.ro [data-act="adopt-ccir"],body.ro [data-act="start-wargame"],
body.ro [data-act="add-branch"],body.ro [data-act="import-exchange"],body.ro [data-act^="prio-baseline"],body.ro [data-act="prio-restore"],body.ro [data-act="prio-moderate"],
body.ro [data-act="dtg-now"],body.ro [data-act="copy-intent"]{display:none!important;}
body.ro .page .input,body.ro .page .textarea,body.ro .page .select,body.ro .page .seg button,body.ro .page input[type=checkbox]{pointer-events:none;}
body.ro .page .input,body.ro .page .textarea,body.ro .page .select{background:transparent;border-color:var(--border-1);}
@media(max-width:768px){.user-chip{display:none;}}
body.ro .page [data-act-select="sync-coa"]{pointer-events:auto;background:rgba(255,255,255,.05);}
.branch-bar[hidden]{display:none!important;}

/* Operational baseline maps (Keen Edge 27) */
:root{--t-jftx:#E0A43A;--t-cpx:#60A5FA;--t-mar:#2DD4BF;--t-air:#C084FC;--t-land:#A3B86C;--t-hadr:#F472B6;}
.notice.ok{color:var(--status-go);border-color:rgba(74,222,128,.25);background:rgba(74,222,128,.05);}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;}
.map-layout.with-card{grid-template-columns:minmax(0,1fr) 340px;}
.map-box{padding:8px;}
svg.map{width:100%;height:auto;display:block;background:#0B1622;border-radius:var(--radius-2);}
svg.map .land{fill:#1F2A37;stroke:#3A4A5E;stroke-width:.6;}
svg.map .grat{fill:none;stroke:rgba(255,255,255,.05);stroke-width:.6;}
svg.map .tick{fill:#55677D;font:10px var(--font-mono);}
svg.map .ctx{fill:#6F8197;font:600 11px var(--font-sans);letter-spacing:.12em;}
svg.map .ctx.sea{fill:#3E6A8A;font-style:italic;font-weight:500;}
svg.map .leader{stroke:#7A8BA0;stroke-width:.8;opacity:.6;}
svg.map .anchor{stroke:#0B1622;stroke-width:1.2;}
svg.map .anchor.hq{fill:var(--gold);}
svg.map .chip{cursor:pointer;}
svg.map .chip .frame{fill:#111A26;stroke:#3A4658;stroke-width:1;}
svg.map .chip:hover .frame,svg.map .chip:focus .frame{stroke:var(--gold-dim);}
svg.map .chip.sel .frame{stroke:var(--gold);stroke-width:2;}
svg.map .chip.linked .frame{stroke:var(--status-go);}
svg.map .chip .nm{fill:#E6EDF6;font:600 11px var(--font-sans);}
svg.map .chip .tg{fill:#8C9AAD;font:9.5px var(--font-mono);}
svg.map .hqsym{fill:none;stroke:var(--status-info);stroke-width:1.3;}
svg.map .staff{stroke:var(--status-info);stroke-width:1.3;}
svg.map .pair{stroke:var(--status-info);stroke-width:1.2;stroke-dasharray:4 3;opacity:.45;}
svg.map .pair.on{stroke:var(--gold);opacity:1;stroke-width:2;}
svg.map .inset-frame{fill:#0B1622;stroke:#3A4658;}
svg.map .inset-title{fill:#8C9AAD;font:9.5px var(--font-mono);letter-spacing:.08em;}
.t-jftx{fill:var(--t-jftx);background:var(--t-jftx);}.t-cpx{fill:var(--t-cpx);background:var(--t-cpx);}.t-mar{fill:var(--t-mar);background:var(--t-mar);}
.t-air{fill:var(--t-air);background:var(--t-air);}.t-land{fill:var(--t-land);background:var(--t-land);}.t-hadr{fill:var(--t-hadr);background:var(--t-hadr);}
.dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle;}
.map-card{position:sticky;top:12px;max-height:calc(100vh - 160px);overflow-y:auto;}
.src-list{padding-left:18px;font-size:12px;display:flex;flex-direction:column;gap:4px;}
.src-list a,.impact a{color:var(--status-info);}
.tbl tr.click{cursor:pointer;}
.tbl tr.click:hover td{background:rgba(201,162,39,.05);}
.impact{border-left:2px solid var(--accent-1);background:var(--accent-1-bg);padding:8px 12px;margin-top:10px;border-radius:0 var(--radius-2) var(--radius-2) 0;}
.impact .ref{font:600 10px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-1);margin-bottom:3px;}
.impact p{font-size:12.5px;color:var(--text-1);}
@media(max-width:1100px){.map-layout.with-card{grid-template-columns:1fr;}.map-card{position:static;max-height:none;}}
