/* مرصد المشاريع الصحية — MOH-grade design tokens */
:root{
  --green-900:#004f33; --green-800:#005c3b; --green:#006C46; --green-600:#23874B; --green-50:#e9f3ee; --green-100:#d6e9df;
  --ink:#14201b; --ink-2:#3b4a44; --muted:#67786f; --line:#e3e8e5; --line-2:#eef2f0;
  --bg:#f4f7f5; --card:#ffffff; --shadow:0 1px 2px rgba(20,32,27,.04),0 8px 24px rgba(20,32,27,.05);
  --ok:#1f9d57; --yellow:#d9a400; --orange:#e07b1a; --red:#c0392b;
  --ok-bg:#e7f5ec; --yellow-bg:#fbf3d9; --orange-bg:#fbeada; --red-bg:#fbe6e3;
  --r:14px; --r-sm:9px;
  --sans:'IBM Plex Sans Arabic','IBM Plex Sans',system-ui,'Segoe UI',Tahoma,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
body[dir="rtl"]{direction:rtl}
body[dir="ltr"]{direction:ltr}
a{color:var(--green-600);text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cdd8d2;border-radius:10px;border:3px solid var(--bg)}

/* ---------- App shell ---------- */
body{--side:74px}
body.nav-pinned,body.nav-peek{--side:250px}
.app{display:grid;grid-template-columns:var(--side) 1fr;grid-template-rows:60px 1fr;height:100vh;grid-template-areas:"side top" "side main";transition:grid-template-columns .24s cubic-bezier(.16,1,.3,1)}
.sidebar{grid-area:side;background:linear-gradient(180deg,var(--green-900),var(--green-800));color:#dff0e8;display:flex;flex-direction:column;padding:14px 12px;gap:4px;overflow:hidden;z-index:20;position:relative}
.topbar{grid-area:top;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 22px;z-index:5}
.main{grid-area:main;overflow-y:auto;padding:24px 28px 60px}

/* brand */
.brand{padding:2px 2px 13px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:8px;min-height:64px}
.moh-chip{background:#fff;border-radius:11px;padding:8px 10px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.18);height:48px;overflow:hidden}
/* collapsed: show ONLY the emblem (rightmost part of the official logo) via background-crop */
.moh-chip .logo-mark{width:34px;height:34px;display:block;background:url('moh-logo.png') no-repeat right center;background-size:auto 34px}
.moh-chip .logo-full{height:30px;width:auto;display:none}
body.nav-pinned .moh-chip .logo-mark,body.nav-peek .moh-chip .logo-mark{display:none}
body.nav-pinned .moh-chip .logo-full,body.nav-peek .moh-chip .logo-full{display:block}
.brand-prod{display:flex;align-items:baseline;gap:8px;margin-top:11px;padding:0 4px;white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .18s}
.brand-prod b{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.3px}
.brand-prod small{font-size:11px;color:#a7d3bf;font-weight:500}

.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--r-sm);color:#eaf7f0;font-weight:500;font-size:14px;transition:background .14s,color .14s;position:relative;white-space:nowrap;overflow:hidden}
.nav-item svg{width:21px;height:21px;flex:none;opacity:1;transition:opacity .14s}
body:not(.nav-pinned):not(.nav-peek) .nav-item:not(.active){background:rgba(255,255,255,.06)}
body:not(.nav-pinned):not(.nav-peek) .nav-item:not(.active):hover{background:rgba(255,255,255,.14)}
.nav-item .nav-label{transition:opacity .16s}
.nav-item:hover{background:rgba(255,255,255,.09);color:#fff}
.nav-item:hover svg{opacity:1}
.nav-item.active{background:#fff;color:var(--green-900);font-weight:600}
.nav-item.active svg{opacity:1}
.nav-item:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.nav-badge{position:absolute;inset-inline-end:11px;background:var(--red);color:#fff;font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 5px;transition:inset-inline-end .2s}
.nav-sep{font-size:10.5px;color:#7fb89d;text-transform:uppercase;letter-spacing:.6px;padding:14px 13px 6px;font-weight:600;white-space:nowrap;overflow:hidden;height:30px;transition:opacity .16s}
.side-foot{margin-top:auto;font-size:11px;color:#8ec4ac;padding:12px 10px 2px;border-top:1px solid rgba(255,255,255,.12);line-height:1.7;white-space:nowrap;overflow:hidden}

/* collapsed rail: hide labels, center icons, badge as a dot */
body:not(.nav-pinned):not(.nav-peek) .nav-item .nav-label,
body:not(.nav-pinned):not(.nav-peek) .brand-prod,
body:not(.nav-pinned):not(.nav-peek) .nav-sep,
body:not(.nav-pinned):not(.nav-peek) .side-foot{opacity:0;pointer-events:none}
body:not(.nav-pinned):not(.nav-peek) .nav-item .nav-label{display:none}
body:not(.nav-pinned):not(.nav-peek) .nav-item{justify-content:center;padding-inline:0}
body:not(.nav-pinned):not(.nav-peek) .nav-badge{inset-inline-end:14px;top:6px;min-width:9px;height:9px;border-radius:50%;padding:0;font-size:0;color:transparent}
body:not(.nav-pinned):not(.nav-peek) .nav-sep{height:8px;padding:6px 0 0}

/* rail pin toggle */
.rail-pin{position:absolute;bottom:64px;inset-inline-end:12px;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#9ed0ba;background:rgba(255,255,255,.06);transition:.14s;z-index:2}
.rail-pin:hover{background:rgba(255,255,255,.14);color:#fff}
.rail-pin svg{width:16px;height:16px;transition:transform .2s}
body.nav-pinned .rail-pin svg{transform:rotate(180deg)}

/* topbar */
.tb-title{font-weight:700;font-size:17px;letter-spacing:-.3px}
.tb-title span{color:var(--muted);font-weight:500;font-size:13px}
.tb-spacer{flex:1}
.tb-pill{display:flex;align-items:center;gap:7px;background:var(--green-50);color:var(--green-800);padding:7px 13px;border-radius:20px;font-size:12.5px;font-weight:600}
.tb-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--ok)}
.lang-btn{border:1px solid var(--line);border-radius:20px;padding:7px 14px;font-weight:600;font-size:13px;color:var(--ink-2);background:var(--card);transition:.13s}
.lang-btn:hover{border-color:var(--green-600);color:var(--green-700)}
.tb-user{display:flex;align-items:center;gap:10px;padding-inline-start:6px}
.tb-user .av{width:34px;height:34px;border-radius:50%;background:var(--green-600);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.tb-user small{display:block;color:var(--muted);font-size:11px}
.tb-user b{font-size:13px;font-weight:600}

/* ---------- generic ---------- */
.page-head{display:flex;align-items:flex-end;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.page-head h1{font-size:21px;font-weight:700;letter-spacing:-.4px}
.page-head p{color:var(--muted);font-size:13px}
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff;padding:9px 16px;border-radius:var(--r-sm);font-weight:600;font-size:13px;transition:.13s}
.btn:hover{background:var(--green-800)}
.btn.ghost{background:var(--card);color:var(--ink-2);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--green-600);color:var(--green-800)}
.btn svg{width:16px;height:16px}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.card-h{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--line-2)}
.card-h h3{font-size:14.5px;font-weight:700}
.card-h .sub{color:var(--muted);font-size:12px;font-weight:500}
.card-h .grow{flex:1}
.card-b{padding:18px}

/* KPI cards */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:15px 16px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;inset-inline-start:0;top:0;bottom:0;width:4px;background:var(--green-600)}
.kpi.red::before{background:var(--red)}.kpi.orange::before{background:var(--orange)}.kpi.yellow::before{background:var(--yellow)}
.kpi .v{font-size:27px;font-weight:700;letter-spacing:-1px;line-height:1.1}
.kpi .l{color:var(--muted);font-size:12px;font-weight:500;margin-top:3px}
.kpi .t{font-size:11px;font-weight:600;margin-top:7px;display:inline-flex;align-items:center;gap:3px}
.kpi .t.up{color:var(--red)}.kpi .t.down{color:var(--ok)}

/* grid layouts */
.grid{display:grid;gap:16px}
.g-2{grid-template-columns:1fr 1fr}
.g-3{grid-template-columns:2fr 1fr}
.g-12{grid-template-columns:1.4fr 1fr}

/* filters */
.filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:18px;align-items:center}
.filters select,.filters input{font-family:inherit;font-size:13px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);padding:8px 12px;color:var(--ink);min-width:130px}
.filters select:focus,.filters input:focus{outline:none;border-color:var(--green-600)}
.filters .fl-label{font-size:12px;color:var(--muted);font-weight:600}

/* badges */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
.b-dot{width:7px;height:7px;border-radius:50%}
.band-green{background:var(--ok-bg);color:#15703d}.band-green .b-dot{background:var(--ok)}
.band-yellow{background:var(--yellow-bg);color:#8a6a00}.band-yellow .b-dot{background:var(--yellow)}
.band-orange{background:var(--orange-bg);color:#9a4f0d}.band-orange .b-dot{background:var(--orange)}
.band-red{background:var(--red-bg);color:#922419}.band-red .b-dot{background:var(--red)}
.chip{font-size:11px;font-weight:600;color:var(--ink-2);background:var(--line-2);padding:3px 9px;border-radius:6px;white-space:nowrap}

/* tables */
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:start;font-weight:600;color:var(--muted);font-size:11.5px;padding:10px 14px;border-bottom:1px solid var(--line);text-transform:none;white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr{transition:.1s}
tbody tr.clickable{cursor:pointer}
tbody tr.clickable:hover{background:var(--green-50)}
.t-name{font-weight:600;color:var(--ink)}
.t-id{font-size:11px;color:var(--muted);font-family:'IBM Plex Sans',monospace}

/* progress bar */
.pbar{height:7px;background:var(--line-2);border-radius:6px;overflow:hidden;min-width:90px;position:relative}
.pbar i{display:block;height:100%;border-radius:6px;background:var(--green-600)}
.pbar.warn i{background:var(--orange)}.pbar.bad i{background:var(--red)}
.pct{font-weight:700;font-size:12.5px}
.plan-tick{font-size:10.5px;color:var(--muted)}

/* heatmap */
.heat{display:grid;gap:5px;font-size:11px}
.heat .hrow{display:grid;grid-template-columns:130px repeat(6,1fr);gap:5px;align-items:center}
.heat .hh{color:var(--muted);font-weight:600;font-size:10.5px;text-align:center;padding-bottom:2px}
.heat .hl{font-weight:600;font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cell{height:38px;border-radius:7px;display:grid;place-items:center;font-weight:700;color:#fff;font-size:12px;cursor:default}
.cell.empty{background:var(--line-2)}
.cell.green{background:var(--ok)}.cell.yellow{background:var(--yellow)}.cell.orange{background:var(--orange)}.cell.red{background:var(--red)}

/* mini-legend */
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);font-weight:500}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;margin-inline-end:5px;vertical-align:-1px}

/* early warning */
.ew-item{display:flex;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line-2);align-items:flex-start}
.ew-item:last-child{border-bottom:none}
.ew-gauge{flex:none;width:62px;text-align:center}
.ew-gauge .pv{font-size:21px;font-weight:700;line-height:1}
.ew-gauge .pl{font-size:10px;color:var(--muted);font-weight:600}
.ew-body{flex:1;min-width:0}
.ew-body h4{font-size:14px;font-weight:700;margin-bottom:3px}
.ew-meta{font-size:11.5px;color:var(--muted);margin-bottom:9px;display:flex;gap:8px;flex-wrap:wrap}
.ew-reasons{display:flex;flex-wrap:wrap;gap:6px}
.ew-reasons .r{font-size:11px;background:var(--red-bg);color:#922419;padding:3px 9px;border-radius:6px;font-weight:600}
.ew-action{flex:none;width:210px;background:var(--green-50);border-radius:var(--r-sm);padding:11px 13px;font-size:12px}
.ew-action b{display:block;font-size:11px;color:var(--green-800);margin-bottom:3px}

/* project detail */
.pd-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:18px;flex-wrap:wrap}
.pd-head .pd-h-main{flex:1;min-width:260px}
.pd-head h1{font-size:20px;margin-bottom:6px}
.pd-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.score-ring{flex:none;text-align:center}
.score-ring .num{font-size:34px;font-weight:800;letter-spacing:-2px}
.dim-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.dim-row:last-child{border:none}
.dim-row .dn{width:165px;font-size:13px;font-weight:600}
.dim-row .dw{font-size:11px;color:var(--muted);width:42px}
.dim-row .db{flex:1}
.dim-row .ds{width:38px;text-align:end;font-weight:700;font-size:13px}
.timeline{position:relative;padding-inline-start:18px}
.timeline .tl{position:relative;padding-bottom:15px}
.timeline .tl::before{content:"";position:absolute;inset-inline-start:-13px;top:4px;width:9px;height:9px;border-radius:50%;background:var(--green-600);box-shadow:0 0 0 3px var(--green-50)}
.timeline .tl::after{content:"";position:absolute;inset-inline-start:-9px;top:13px;bottom:-4px;width:1px;background:var(--line)}
.timeline .tl:last-child::after{display:none}
.timeline .tl b{font-size:13px}.timeline .tl small{color:var(--muted);font-size:11.5px;display:block}
.kv{display:grid;grid-template-columns:130px 1fr;gap:7px 12px;font-size:13px}
.kv dt{color:var(--muted);font-weight:500}.kv dd{font-weight:600}

/* exec brief */
.brief{max-width:920px;margin:0 auto}
.brief-head{background:linear-gradient(110deg,var(--green-900),var(--green));color:#fff;border-radius:var(--r);padding:22px 26px;margin-bottom:18px;display:flex;align-items:center;gap:18px}
.brief-head .logo{background:#fff;border-radius:11px;padding:8px 12px;display:flex;align-items:center;flex:none}
.brief-head .logo img{height:34px;width:auto;display:block}
.brief-head h1{font-size:20px;margin-bottom:3px}
.brief-head p{color:#bfe3d2;font-size:13px}
.brief-head .grow{flex:1}
.brief-head .date{text-align:center}.brief-head .date b{font-size:15px;display:block}.brief-head .date small{color:#bfe3d2;font-size:11px}
.brief-stat{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.brief-stat .bs{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;text-align:center}
.brief-stat .bs .v{font-size:25px;font-weight:800;letter-spacing:-1px}
.brief-stat .bs .l{font-size:12px;color:var(--muted);font-weight:500}
.brief-sec{margin-bottom:16px}
.brief-sec h3{font-size:14px;font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:8px}
.brief-sec h3 .n{width:22px;height:22px;border-radius:6px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:12px}
.mini-list{font-size:13px}
.mini-list .ml{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);align-items:center}
.mini-list .ml:last-child{border:none}
.mini-list .ml .grow{flex:1;min-width:0}
.mini-list .ml .nm{font-weight:600}
.mini-list .ml .sm{font-size:11.5px;color:var(--muted)}

/* weekly update form */
.form-wrap{max-width:920px}
.form-top{display:grid;grid-template-columns:2fr 1fr auto;gap:16px;align-items:end;padding:18px}
.form-status{display:flex;align-items:center;padding-bottom:6px}
.form-section{margin-top:16px}
.form-section .card-h .sn{width:24px;height:24px;border-radius:7px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:12.5px;font-weight:700;flex:none}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.field .req{color:var(--red)}
.f-in{font-family:inherit;font-size:13.5px;border:1px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;color:var(--ink);background:var(--card);width:100%;transition:.13s}
.f-in:focus{outline:none;border-color:var(--green-600);box-shadow:0 0 0 3px var(--green-50)}
.f-in:disabled{background:var(--line-2);color:var(--muted)}
textarea.f-in{resize:vertical;min-height:42px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}
.seg button{padding:9px 18px;font-size:13px;font-weight:600;color:var(--ink-2);border-inline-end:1px solid var(--line)}
.seg button:last-child{border-inline-end:none}
.seg button.on{background:var(--green);color:#fff}
.dropzone{display:flex;align-items:center;gap:14px;border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:18px;color:var(--muted)}
.dropzone svg{width:26px;height:26px;color:var(--green-600);flex:none}
.dropzone b{color:var(--ink);font-size:13.5px}
.dropzone .grow,.dropzone>div:nth-child(2){flex:1}
.form-actions{display:flex;align-items:center;gap:10px;margin-top:18px;padding-top:4px}
.form-actions svg{width:15px;height:15px}
.form-banner{display:flex;align-items:center;gap:10px;background:var(--ok-bg);border:1px solid #cfe9d8;color:#15703d;border-radius:var(--r);padding:13px 16px;font-size:13.5px;font-weight:600;margin-bottom:16px}
.form-banner svg{width:18px;height:18px;flex:none}
.note{font-size:11.5px;color:var(--muted);background:var(--green-50);border:1px solid var(--green-100);border-radius:var(--r-sm);padding:10px 13px;display:flex;gap:8px;align-items:flex-start;line-height:1.6}
.note svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--green-600)}

/* ---------- access gate ---------- */
.lock{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--green-900),var(--green-800) 55%,#00301f);z-index:50;padding:20px}
.lock-bg{position:absolute;inset:0;opacity:.06;background-image:radial-gradient(circle at 80% 20%,#fff 0,transparent 40%),radial-gradient(circle at 15% 85%,#fff 0,transparent 35%)}
.lock-card{position:relative;width:100%;max-width:380px;background:var(--card);border-radius:20px;padding:34px 30px 30px;box-shadow:0 24px 60px rgba(0,0,0,.35);text-align:center}
.lock-card .logo{height:54px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.lock-card .logo img{height:52px;width:auto}
.lock-card h2{font-size:20px;font-weight:700;letter-spacing:-.3px}
.lock-card .sub{color:var(--muted);font-size:13px;margin:5px 0 22px}
.lock-card .gov{font-size:11.5px;color:var(--green-700);font-weight:600;margin-bottom:22px;display:flex;align-items:center;justify-content:center;gap:6px}
.code-in{width:100%;font-family:'IBM Plex Sans',monospace;font-size:24px;font-weight:600;text-align:center;letter-spacing:10px;padding:13px;border:2px solid var(--line);border-radius:12px;color:var(--ink);transition:.13s}
.code-in::placeholder{letter-spacing:8px;color:#c3cdc8;font-weight:400}
.code-in:focus{outline:none;border-color:var(--green-600);box-shadow:0 0 0 4px var(--green-50)}
.code-in.err{border-color:var(--red);animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.lock-card .btn{width:100%;justify-content:center;margin-top:14px;padding:13px;font-size:14px}
.lock-err{color:var(--red);font-size:12.5px;font-weight:600;margin-top:12px;min-height:17px}
.lock-foot{margin-top:20px;font-size:11px;color:var(--muted);line-height:1.6}
.cbox{position:relative;width:100%}
.cbox canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important}
.mt16{margin-top:16px}.mt20{margin-top:20px}.mb0{margin-bottom:0}
.flex{display:flex;align-items:center;gap:8px}.wrap{flex-wrap:wrap}.grow{flex:1}
@media(max-width:1180px){.kpis{grid-template-columns:repeat(3,1fr)}.g-2,.g-3,.g-12{grid-template-columns:1fr}}

/* ---------- mobile ---------- */
.hamburger{display:none;width:38px;height:38px;border-radius:9px;align-items:center;justify-content:center;color:var(--ink-2);border:1px solid var(--line);background:var(--card);flex:none}
.hamburger svg{width:20px;height:20px}
.hamburger:active{transform:translateY(1px)}
.nav-scrim{position:fixed;inset:0;background:rgba(18,28,23,.45);z-index:40;opacity:0;pointer-events:none;transition:opacity .22s}
body.nav-open .nav-scrim{opacity:1;pointer-events:auto}

@media(max-width:760px){
  .app{grid-template-columns:1fr;grid-template-rows:56px 1fr;grid-template-areas:"top" "main";transition:none}
  .hamburger{display:flex}
  /* sidebar becomes an off-canvas drawer from the right (physical, works LTR+RTL) */
  .sidebar{position:fixed;top:0;bottom:0;right:0;left:auto;width:272px;max-width:84vw;transform:translateX(100%);transition:transform .26s cubic-bezier(.16,1,.3,1);box-shadow:-10px 0 36px rgba(0,0,0,.35);z-index:50;padding:16px 14px}
  body.nav-open .sidebar{transform:translateX(0)}
  /* drawer always shows full content */
  .sidebar .nav-label{display:inline!important;opacity:1!important}
  .brand-prod,.nav-sep,.side-foot{opacity:1!important}
  .nav-item{justify-content:flex-start!important;padding-inline:12px!important}
  body:not(.nav-pinned):not(.nav-peek) .nav-item:not(.active){background:transparent!important}
  .nav-badge{inset-inline-end:11px!important;top:auto!important;min-width:20px!important;height:20px!important;border-radius:10px!important;font-size:11px!important;color:#fff!important;padding:0 5px!important}
  .moh-chip .logo-mark{display:none}
  .moh-chip .logo-full{display:block}
  .rail-pin{display:none}
  /* topbar */
  .topbar{padding:0 12px;gap:9px}
  .tb-title{font-size:15px;flex:1}
  .topbar .tb-spacer,.topbar .kbar-btn,.topbar .tb-pill{display:none}
  .tb-user>div{display:none}.tb-user{padding:0}
  /* main + grids */
  .main{padding:16px 13px 80px}
  .page-head{margin-bottom:16px}.page-head h1{font-size:18px}
  .kpis{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
  .kpi{padding:13px 14px}.kpi .v{font-size:23px}
  .g-2,.g-3,.g-12{grid-template-columns:1fr}
  .filters{gap:7px}.filters select{min-width:0;flex:1 1 44%}
  /* wide content scrolls horizontally instead of breaking */
  .card:has(>table){overflow-x:auto}
  .card>table{min-width:620px}
  .card-b .heat{overflow-x:auto}.heat .hrow{min-width:540px}
  .ew-item{flex-wrap:wrap}.ew-gauge{width:52px}.ew-body{flex:1 1 60%}.ew-action{width:100%;margin-top:8px}
  .form-top{grid-template-columns:1fr;gap:12px}.form-grid{grid-template-columns:1fr}
  .form-actions{flex-wrap:wrap}.form-section .card-b .seg{width:100%}.seg{display:flex}.seg button{flex:1}
  .brief{max-width:100%}.brief-stat{grid-template-columns:1fr 1fr}.brief-head{flex-wrap:wrap;gap:12px;padding:18px}
  .pd-head{flex-direction:column}.pd-head .score-ring{align-self:flex-start;width:auto}
  .kv{grid-template-columns:115px 1fr}
  .palette-scrim{padding-top:8vh}.palette{width:94vw}
  .lock-card{max-width:94vw;padding:28px 22px}
}
@media(max-width:380px){ .kpis{grid-template-columns:1fr} }

/* ---------- smart interactions ---------- */
/* topbar ⌘K trigger */
.kbar-btn{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);padding:7px 11px 7px 13px;color:var(--muted);font-size:13px;font-weight:500;transition:.14s;min-width:200px}
.kbar-btn:hover{border-color:var(--green-600);color:var(--ink-2)}
.kbar-btn svg{width:15px;height:15px}
.kbar-btn .kbd{margin-inline-start:auto;font-family:'IBM Plex Sans',monospace;font-size:11px;font-weight:600;background:var(--line-2);color:var(--muted);padding:1px 6px;border-radius:5px}
.icon-btn{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;color:var(--ink-2);border:1px solid var(--line);background:var(--card);transition:.14s}
.icon-btn:hover{border-color:var(--green-600);color:var(--green-800);background:var(--green-50)}
.icon-btn svg{width:17px;height:17px}
.icon-btn:active{transform:translateY(1px)}

/* command palette */
.palette-scrim{position:fixed;inset:0;background:rgba(18,28,23,.42);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;opacity:0;animation:scrimIn .16s forwards}
@keyframes scrimIn{to{opacity:1}}
.palette{width:min(580px,92vw);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 70px rgba(18,28,23,.32);overflow:hidden;transform:translateY(-8px) scale(.98);opacity:0;animation:palIn .2s cubic-bezier(.16,1,.3,1) forwards}
@keyframes palIn{to{transform:none;opacity:1}}
.palette-in{display:flex;align-items:center;gap:11px;padding:15px 18px;border-bottom:1px solid var(--line-2)}
.palette-in svg{width:18px;height:18px;color:var(--muted);flex:none}
.palette-in input{flex:1;border:none;outline:none;font-family:inherit;font-size:15.5px;color:var(--ink);background:none}
.palette-in .kbd{font-size:11px;font-weight:600;background:var(--line-2);color:var(--muted);padding:2px 7px;border-radius:5px}
.palette-list{max-height:54vh;overflow-y:auto;padding:8px}
.palette-group{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;padding:10px 12px 5px}
.palette-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .1s}
.palette-row .pr-ico{width:30px;height:30px;border-radius:8px;background:var(--green-50);color:var(--green-700);display:grid;place-items:center;flex:none}
.palette-row .pr-ico svg{width:16px;height:16px}
.palette-row .grow{flex:1;min-width:0}
.palette-row .pr-t{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette-row .pr-s{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette-row.sel,.palette-row:hover{background:var(--green-50)}
.palette-row.sel{box-shadow:inset 0 0 0 1px var(--green-100)}
.palette-empty{padding:26px;text-align:center;color:var(--muted);font-size:13px}

/* toasts */
.toast-wrap{position:fixed;bottom:22px;inset-inline-start:22px;z-index:70;display:flex;flex-direction:column;gap:10px}
.toast{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--ok);border-radius:12px;box-shadow:0 12px 36px rgba(18,28,23,.18);padding:13px 16px;font-size:13.5px;font-weight:500;color:var(--ink);max-width:380px;transform:translateY(8px);opacity:0;animation:toastIn .26s cubic-bezier(.16,1,.3,1) forwards}
.toast.out{animation:toastOut .22s forwards}
.toast svg{width:18px;height:18px;color:var(--ok);flex:none}
@keyframes toastIn{to{transform:none;opacity:1}}
@keyframes toastOut{to{transform:translateY(8px);opacity:0}}

/* view transition */
#view>*{animation:viewIn .32s cubic-bezier(.16,1,.3,1)}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* micro-interactions */
.btn:active{transform:translateY(1px)}
.kpi{transition:transform .16s,box-shadow .16s}
.kpi:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(20,32,27,.09)}
.card{transition:box-shadow .18s}
tbody tr.clickable{cursor:pointer}
.lang-btn:active,.icon-btn:active{transform:translateY(1px)}
*:focus-visible{outline:2px solid var(--green-600);outline-offset:2px;border-radius:4px}
.ew-item{transition:background .14s}
.ew-item:hover{background:var(--green-50)}

/* count-up reserves width so layout doesn't jump */
.kpi .v{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion: reduce){
  *,#view>*,.palette,.palette-scrim,.toast{animation:none!important;transition:none!important}
  .app{transition:none}
}
