/* PSA Command Centre — deep ocean navy + Tongan red accent + gold, print-ready A4 */
:root{
  --ink:#0f1b2d; --navy:#0b2545; --navy-2:#13315c; --sea:#1d5d8f; --red:#b3202a; --gold:#c9a227;
  --paper:#f5f7fb; --card:#ffffff; --line:#dde3ec; --muted:#5b6b80; --ok:#1f7a4d; --warn:#b7791f; --bad:#b3202a;
}
html,body{background:var(--paper);color:var(--ink);font-family:'Segoe UI',system-ui,-apple-system,Roboto,Arial,sans-serif}
a{color:var(--sea)}
/* ---------- landing */
body.landing{background:linear-gradient(160deg,#071a33 0%,#0b2545 55%,#5a1016 140%);min-height:100vh;color:#fff}
.landing .kick{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:700}
.landing .hero h1{font-weight:800;letter-spacing:-.5px;font-size:clamp(1.5rem,3.4vw,2.4rem);margin-top:.5rem}
.landing .accent{color:var(--gold);font-weight:600;font-size:1.05rem;max-width:820px;margin:.6rem auto}
.landing .sub{color:rgba(255,255,255,.78);max-width:760px}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;max-width:900px;margin:1.6rem auto 0}
.hero-stats div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:.8rem;padding:.8rem}
.hero-stats b{display:block;font-size:1.7rem;color:var(--gold)}
.hero-stats span{font-size:.75rem;color:rgba(255,255,255,.8)}
@media(max-width:700px){.hero-stats{grid-template-columns:repeat(2,1fr)}}
.grp-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:1rem 0 .4rem;font-weight:700}
.role-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:1rem;padding:1rem;display:flex;flex-direction:column;gap:.6rem;transition:transform .15s,background .15s}
.role-card:hover{transform:translateY(-3px);background:rgba(255,255,255,.12)}
.role-card .icon{font-size:1.7rem;line-height:1}
.role-card .title{font-weight:700}
.role-card .tier{font-size:.72rem;color:var(--gold)}
.role-card p{font-size:.8rem;color:rgba(255,255,255,.78);margin:0;flex:1}
.btn-enter{background:var(--gold);color:#0b2545;font-weight:700;border:0}
.btn-enter:hover{filter:brightness(1.08);color:#0b2545}
.landing-foot{font-size:.78rem;color:rgba(255,255,255,.7);margin-top:2rem}
.landing-foot a{color:var(--gold)}
/* ---------- shell */
.sidebar{position:fixed;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,var(--navy),#081a31);color:#dbe5f3;overflow-y:auto;z-index:1040;display:flex;flex-direction:column}
.brand{display:flex;gap:.7rem;align-items:center;padding:1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.brand-mark{background:var(--red);color:#fff;font-weight:800;border-radius:.5rem;padding:.35rem .5rem;font-size:.85rem;letter-spacing:.05em}
.brand-title{font-weight:700;color:#fff;font-size:.95rem}
.brand-sub{font-size:.7rem;color:var(--gold)}
.nav-grp{font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:#8fa6c4;padding:.9rem 1rem .3rem}
.nav-item-cc{display:flex;gap:.55rem;align-items:center;padding:.42rem 1rem;color:#dbe5f3;text-decoration:none;font-size:.84rem;border-left:3px solid transparent}
.nav-item-cc:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item-cc.active{background:rgba(201,162,39,.14);border-left-color:var(--gold);color:#fff;font-weight:600}
.nav-item-cc .ic{width:1.3rem;text-align:center}
.nav-item-cc .pill{margin-left:auto;background:var(--red);color:#fff;border-radius:999px;font-size:.66rem;padding:0 .45rem}
.side-foot{margin-top:auto;font-size:.66rem;color:#8fa6c4;padding:1rem;border-top:1px solid rgba(255,255,255,.08)}
.main{margin-left:270px;min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:1030;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:.6rem;align-items:center;padding:.55rem 1.2rem;flex-wrap:wrap}
.role-chip{font-size:.82rem;font-weight:600;color:var(--navy);margin-right:auto}
.role-chip .org{background:var(--navy);color:#fff;border-radius:999px;padding:.05rem .5rem;font-size:.66rem;margin-left:.3rem}
.search-wrap{position:relative;width:min(340px,100%)}
.search-results{position:absolute;top:110%;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:.5rem;box-shadow:0 10px 30px rgba(0,0,0,.12);max-height:60vh;overflow:auto;display:none;z-index:1050}
.search-results a{display:block;padding:.45rem .7rem;text-decoration:none;color:var(--ink);border-bottom:1px solid #f0f2f6;font-size:.82rem}
.search-results a:hover,.search-results a.sel{background:#eef4fb}
.search-results small{display:block;color:var(--muted);font-size:.72rem}
.status-strip{background:#fff7e0;border-bottom:1px solid #f1e2b0;color:#6b5310;font-size:.76rem;padding:.3rem 1.2rem}
.content{padding:1.3rem 1.4rem;flex:1;max-width:1400px;width:100%}
.foot{padding:1rem 1.4rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted);background:#fff}
@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none}.main{margin-left:0}}
/* ---------- components */
.page-head h1{font-weight:800;color:var(--navy)}
.lead-sm{color:var(--muted);font-size:.92rem;max-width:900px}
.tor-ref{font-size:.74rem;color:var(--red);font-weight:600}
.cc-card{border:1px solid var(--line);border-radius:.8rem;box-shadow:0 1px 2px rgba(15,27,45,.04)}
.cc-card .card-header{background:#fbfcfe;border-bottom:1px solid var(--line);font-size:.9rem}
.cc-table{font-size:.83rem}
.cc-table thead th{background:#f2f5fa;color:var(--navy);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.kpi{background:#fff;border:1px solid var(--line);border-radius:.8rem;padding:.9rem 1rem;height:100%}
.kpi .v{font-size:1.6rem;font-weight:800;color:var(--navy);line-height:1.1}
.kpi .l{font-size:.75rem;color:var(--muted)}
.kpi.accent{border-left:4px solid var(--gold)}
.kpi.red{border-left:4px solid var(--red)}
.kpi.ok{border-left:4px solid var(--ok)}
.bar{height:.55rem;background:#e7ecf3;border-radius:999px;overflow:hidden}
.bar>span{display:block;height:100%;background:var(--sea)}
.bar>span.in{background:var(--navy)} .bar>span.re{background:var(--gold)}
.rag{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;vertical-align:middle}
.rag.R{background:var(--bad)} .rag.A{background:#e0a100} .rag.G{background:var(--ok)}
.doc{background:#fff;border:1px solid var(--line);border-radius:.8rem;padding:1.6rem 2rem;max-width:960px}
.doc h2{font-size:1.05rem;color:var(--navy);margin-top:1.2rem;font-weight:700}
.doc p,.doc li{font-size:.9rem;line-height:1.6}
.doc-meta{display:grid;grid-template-columns:repeat(4,auto);gap:.3rem 1.2rem;font-size:.76rem;color:var(--muted);border-bottom:2px solid var(--navy);padding-bottom:.6rem;margin-bottom:.8rem}
.doc-meta b{color:var(--ink)}
.clearance{display:flex;gap:.3rem;flex-wrap:wrap}
.clearance .st{font-size:.7rem;padding:.2rem .5rem;border-radius:.3rem;background:#e7ecf3;color:var(--muted)}
.clearance .st.done{background:#d9f0e3;color:var(--ok)} .clearance .st.cur{background:#fff1cc;color:#7a5a00;font-weight:700}
.gantt{font-size:.74rem}
.gantt td.cell{padding:0;width:5.5%;border-left:1px solid #eef1f6}
.gantt .gb{height:.9rem;margin:.25rem 0;background:var(--sea);border-radius:2px}
.gantt .gb.ms{background:var(--red)}
.gantt .ws-i{background:#1d5d8f}.gantt .ws-ii{background:#2e7d6b}.gantt .ws-iii{background:#6a3d9a}.gantt .ws-iv{background:#a0522d}
.gantt .ws-v{background:#2b6cb0}.gantt .ws-vi{background:#0f766e}.gantt .ws-vii{background:#b7791f}.gantt .ws-viii{background:#9b2c2c}.gantt .ws-rep{background:#4a5568}
.mm-row{border-bottom:1px solid #eef1f6;padding:.55rem 0}
.mm-row:last-child{border-bottom:0}
.mm-id{font-weight:800;color:var(--red);font-size:.8rem;min-width:3rem}
.mm-req{font-size:.85rem}
.mm-feat{font-size:.8rem;color:var(--muted)}
.heat td{text-align:center;font-weight:700;width:3rem;height:2.2rem}
.comment{border-left:3px solid var(--gold);padding:.3rem .6rem;margin-bottom:.5rem;background:#fffcf2;font-size:.85rem}
.chip{display:inline-block;font-size:.7rem;padding:.1rem .45rem;border-radius:.3rem;background:#eef2f8;color:var(--navy);margin:.1rem}
.redacted{background:repeating-linear-gradient(45deg,#f1f3f7,#f1f3f7 8px,#e6e9ef 8px,#e6e9ef 16px);border:1px dashed #b9c2cf;border-radius:.5rem;padding:1rem;color:var(--muted);font-size:.85rem}
.chart svg{width:100%;height:auto}
.small-note{font-size:.75rem;color:var(--muted)}
.print-header{display:none}
/* ---------- print (A4) */
@page{size:A4;margin:16mm 14mm}
@media print{
  .no-print,.sidebar,.topbar,.status-strip,.nav-tabs,form{display:none!important}
  .main{margin:0}
  body{background:#fff}
  .content{padding:0;max-width:none}
  .print-header{display:flex;justify-content:space-between;border-bottom:2px solid #0b2545;padding-bottom:6px;margin-bottom:10px;font-size:9pt}
  .cc-card,.doc,.kpi{box-shadow:none;break-inside:avoid;border-color:#bbb}
  .doc{border:0;padding:0}
  a{color:inherit;text-decoration:none}
  .foot{font-size:8pt}
  .badge{border:1px solid #999;color:#000!important;background:#fff!important}
}
