@font-face{font-family:"Qatar2022";src:url("fonts/qatar2022-bold.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap}

/* Layout: brand band → (sidebar nav | one section at a time). Phone: nav becomes a scrolling strip. Every section = summary tiles first, then detail. */
:root{
  --bg:#F6F2F1; --surface:#FFFFFF; --ink:#1E0F1F; --muted:#6D5E65; --line:#E6DCDB;
  --brand:#8F1C15; --brand-2:#B9473E; --brand-ink:#FFFFFF; --brand-soft:#F6E7E5; --track:#EFE5E3;
  --ok:#2C7A4B; --ok-soft:#E3F2E8; --warn:#9A5E12; --warn-soft:#FBF0DF; --crit:#B8322A; --crit-soft:#FBE5E3;
  --f-display:"Qatar2022","IBM Plex Sans Arabic",Tahoma,sans-serif;
  --f-body:"IBM Plex Sans Arabic",Tahoma,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#130812; --surface:#1E111E; --ink:#F2E9EA; --muted:#AE9CA4; --line:#35243A;
  --brand:#E0645A; --brand-2:#B9473E; --brand-ink:#1A0508; --brand-soft:#3A181C; --track:#2C1C2C;
  --ok:#62C18E; --ok-soft:#173424; --warn:#E3AA52; --warn-soft:#3A2A12; --crit:#F06C60; --crit-soft:#3E1714; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#130812; --surface:#1E111E; --ink:#F2E9EA; --muted:#AE9CA4; --line:#35243A;
  --brand:#E0645A; --brand-2:#B9473E; --brand-ink:#1A0508; --brand-soft:#3A181C; --track:#2C1C2C;
  --ok:#62C18E; --ok-soft:#173424; --warn:#E3AA52; --warn-soft:#3A2A12; --crit:#F06C60; --crit-soft:#3E1714; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.55}
.band{background:linear-gradient(120deg,#8F1C15 0%,#19061A 85%);color:#fff;padding-inline:16px;padding-block:20px 16px}
.band-in{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-end}
.band h1{font-family:var(--f-display);font-weight:700;font-size:1.6rem;margin:0;line-height:1.25}
.band .sub{opacity:.82;font-size:.9rem}
.proto{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:99px;padding:3px 12px;font-size:.8rem;white-space:nowrap}
.shell{max-width:1240px;margin:0 auto;padding-inline:16px;padding-block:20px 60px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
nav.side{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px);display:grid;gap:2px}
.nv{appearance:none;border:0;background:none;font:inherit;color:var(--muted);text-align:start;padding:9px 12px;border-radius:8px;cursor:pointer;display:flex;gap:10px;align-items:center;font-weight:500}
.nv .ix{font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--muted);width:18px}
.nv:hover{background:var(--brand-soft);color:var(--ink)}
.nv[aria-current="true"]{background:var(--surface);color:var(--brand);font-weight:600;box-shadow:inset -3px 0 0 var(--brand)}
.nv .dot{margin-inline-start:auto;width:8px;height:8px;border-radius:50%;background:var(--crit)}
.nv:focus-visible,.seg button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
@media (max-width:820px){
  .shell{grid-template-columns:minmax(0,1fr);gap:14px;padding-top:0}
  nav.side{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);display:flex;overflow-x:auto;margin-inline:-16px;padding:8px 16px;border-bottom:1px solid var(--line);scrollbar-width:none}
  .nv{white-space:nowrap;padding:7px 12px}
  .nv .ix{display:none}
  .nv[aria-current="true"]{box-shadow:inset 0 -3px 0 var(--brand)}
}
main{display:grid;gap:22px;min-width:0}
.sh{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;flex-wrap:wrap}
.sh h2{font-family:var(--f-display);font-weight:700;font-size:1.4rem;margin:0}
.sh p{margin:2px 0 0;color:var(--muted);font-size:.9rem;max-width:60ch}
h3{font-family:var(--f-display);font-weight:500;font-size:1.05rem;margin:0}
.muted{color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:3px;align-content:start}
.kpi .l{font-size:.82rem;color:var(--muted)}
.kpi .v{font-family:var(--f-display);font-size:1.6rem;line-height:1.2;font-variant-numeric:tabular-nums}
.kpi .v small{font-family:var(--f-body);font-size:.78rem;color:var(--muted);margin-inline-start:4px;font-weight:400}
.kpi .d{font-size:.8rem;font-variant-numeric:tabular-nums}
.up{color:var(--ok)} .down{color:var(--crit)} .flat{color:var(--muted)}
.kpi.crit .v{color:var(--crit)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:980px){.grid3{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){.grid2{grid-template-columns:minmax(0,1fr)}}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:12px;align-content:start;min-width:0}
.card .ch{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap}
.card .ch .muted{font-size:.8rem}
/* column chart */
.cols{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px;align-items:end;height:180px;padding-top:18px;position:relative;border-bottom:1px solid var(--line)}
.col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.col i{display:block;width:min(34px,70%);background:var(--brand);border-radius:4px 4px 0 0;min-height:2px}
.col.dim i{background:var(--track);outline:1px dashed var(--muted);outline-offset:-1px}
.col .val{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:4px;white-space:nowrap}
.col.hl .val{color:var(--ink);font-weight:600}
.col:hover i{filter:brightness(1.12)}
.target{position:absolute;inset-inline:0;border-top:2px dashed var(--muted);pointer-events:none}
.target span{position:absolute;inset-inline-start:0;top:-18px;font-size:.72rem;color:var(--muted);background:var(--surface);padding-inline:4px}
.xl{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px;font-size:.75rem;color:var(--muted);text-align:center}
/* horizontal bars */
.hb{display:grid;gap:10px}
.hb .r{display:grid;grid-template-columns:minmax(90px,30%) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:.86rem}
.hb .r .tr{height:10px;background:var(--track);border-radius:6px;overflow:hidden}
.hb .r .tr i{display:block;height:100%;background:var(--brand);border-radius:0 6px 6px 0}
.hb .r b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.hb .r[title]{cursor:default}
/* funnel */
.fun{display:grid;gap:8px}
.fun .st{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:center;font-size:.86rem}
.fun .st .bx{height:30px;background:var(--brand);border-radius:6px;color:var(--brand-ink);display:flex;align-items:center;padding-inline:10px;font-weight:600;font-variant-numeric:tabular-nums;min-width:48px}
.fun .cv{font-size:.78rem;color:var(--muted);padding-inline-start:120px}
/* tables */
.tw{overflow-x:auto;margin-inline:-16px;padding-inline:16px}
table{border-collapse:collapse;width:100%;font-size:.86rem}
table.wide{min-width:600px}
th{font-weight:600;color:var(--muted);font-size:.78rem;text-align:start;padding:8px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.n,th.n{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}
tfoot td{font-weight:600;border-top:2px solid var(--line)}
.pill{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:1px 9px;font-size:.76rem;font-weight:600;background:var(--track);color:var(--ink);white-space:nowrap}
.ok{background:var(--ok-soft);color:var(--ok)} .wa{background:var(--warn-soft);color:var(--warn)} .cr{background:var(--crit-soft);color:var(--crit)} .br{background:var(--brand-soft);color:var(--brand)}
.st-ic{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;font-size:.8rem;font-weight:700}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--muted);align-items:center}
.list{display:grid}
.li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.li:first-child{border-top:0;padding-top:0}
.li .m{flex:1;min-width:0}
.li .t{font-weight:600;overflow-wrap:anywhere}
.li .s{font-size:.8rem;color:var(--muted)}
.li .e{text-align:end;font-size:.82rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.sev{width:4px;align-self:stretch;border-radius:4px;flex:none;background:var(--line)}
.sev.c{background:var(--crit)} .sev.w{background:var(--warn)} .sev.o{background:var(--ok)}
.prog{height:8px;background:var(--track);border-radius:6px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--brand)}
.prog.ok i{background:var(--ok)}
.note{border:1px dashed var(--line);border-radius:12px;padding:12px 16px;font-size:.86rem;color:var(--muted)}
.note b{color:var(--ink)}
/* timeline */
.tl{position:relative;display:grid;gap:0;padding-inline-start:22px}
.tl::before{content:"";position:absolute;inset-inline-start:6px;top:6px;bottom:6px;width:2px;background:var(--line)}
.ev{position:relative;padding-block:8px}
.ev::before{content:"";position:absolute;inset-inline-start:-21px;top:15px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--brand)}
.ev.peak::before{background:var(--brand)}
.ev .dt{font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}
.ev .t{font-weight:600}
.ev .s{font-size:.84rem;color:var(--muted)}
.mono{font-variant-numeric:tabular-nums;letter-spacing:.02em}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* ---------- App additions ---------- */
html{-webkit-text-size-adjust:100%}
body{margin:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.boot{padding:40px 16px;text-align:center;color:var(--muted)}
.band .who{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.band .who .nm{font-size:.88rem;opacity:.9}
.band .lnk{appearance:none;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:99px;padding:4px 12px;font:inherit;font-size:.8rem;cursor:pointer}
.band .lnk:hover{background:rgba(255,255,255,.24)}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tools input[type=month]{font:inherit;font-size:.86rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 8px}
.btn{appearance:none;font:inherit;font-weight:600;border-radius:9px;padding:8px 14px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.btn.sm{padding:4px 10px;font-size:.82rem;border-radius:8px}
.btn.pri{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.danger{color:var(--crit);border-color:var(--crit-soft)}
.btn.danger.arm{background:var(--crit);color:#fff;border-color:var(--crit)}
.btn:disabled{opacity:.6;cursor:wait}
.btn:focus-visible,.chip:focus-visible,tr.click:focus-visible,.li.click:focus-visible,.kpi.click:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{appearance:none;font:inherit;font-size:.82rem;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:99px;padding:4px 12px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
tr.click,.li.click,.kpi.click{cursor:pointer}
tr.click:hover td{background:var(--brand-soft)}
.li.click:hover{background:var(--brand-soft)}
tr.done td{color:var(--muted)}
tr.done td:first-child{text-decoration:line-through}
.empty{padding:18px 8px;color:var(--muted);text-align:center;font-size:.9rem}
.chkbox{appearance:none;flex:none;width:22px;height:22px;border-radius:6px;border:2px solid var(--muted);background:none;cursor:pointer;display:grid;place-items:center;color:var(--brand-ink);padding:0}
.chkbox.on{background:var(--brand);border-color:var(--brand)}
.chkbox svg{width:14px;height:14px}
.sub-h{font-size:.82rem;font-weight:600;color:var(--muted);margin-top:4px}
dialog{border:0;border-radius:14px;padding:0;width:min(560px,calc(100vw - 32px));background:var(--surface);color:var(--ink);max-height:calc(100dvh - 40px)}
dialog::backdrop{background:rgba(25,6,26,.55)}
.dlg{display:grid;gap:14px;padding:18px}
.dlg h3{font-family:var(--f-display);font-weight:500;margin:0;font-size:1.15rem}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fields .full{grid-column:1/-1}
@media (max-width:460px){.fields{grid-template-columns:1fr}}
label.f{display:grid;gap:4px;font-size:.82rem;color:var(--muted)}
label.f.cb{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:.92rem}
.f input,.f select,.f textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
.f input[type=checkbox]{width:18px;height:18px}
.f textarea{min-height:70px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--brand);outline-offset:0}
.actions{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap}
.actions .r{display:flex;gap:8px;margin-inline-start:auto}
.err{color:var(--crit);font-size:.88rem;background:var(--crit-soft);padding:8px 12px;border-radius:8px}
#toast{position:fixed;inset-inline:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;margin:0 auto;max-width:420px;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:.9rem;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.25)}
#toast.bad{background:var(--crit);color:#fff}
/* login */
.login{min-height:100dvh;display:grid;grid-template-rows:auto 1fr}
.login form{width:min(380px,100%);margin:32px auto;padding-inline:16px;display:grid;gap:14px;align-content:start}
.login .card{gap:14px}
.login h2{font-family:var(--f-display);font-weight:500;margin:0;font-size:1.2rem}
.f-in{display:grid;gap:4px;font-size:.84rem;color:var(--muted)}
.f-in input{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.f-in input:focus{outline:2px solid var(--brand)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.88rem}
.kv span:nth-child(odd){color:var(--muted)}

/* ---------- v1.1: Qatar 2022 + mini charts ---------- */
h1,h2,h3,.band h1,.sh h2,.kpi .v,.nv,.btn,.chip,.pill,th,.fun .bx,.hb .r b,.st-ic,.ev .t,.li .t{font-family:var(--f-display);font-weight:700}
.kpi .viz{margin-top:6px;display:block}
.kpi .viz svg{display:block;width:100%;height:30px;overflow:visible}
.kpi .viz .ln{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.kpi .viz .ar{fill:var(--brand-soft);stroke:none}
.kpi .viz .gl{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.kpi .viz .vlab{display:flex;justify-content:space-between;font-size:.68rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px}
.kpi .viz.crit .ln{stroke:var(--crit)} .kpi .viz.crit .ar{fill:var(--crit-soft)}
.kpi .viz.ok .ln{stroke:var(--ok)} .kpi .viz.ok .ar{fill:var(--ok-soft)}
.mtr{height:8px;background:var(--track);border-radius:6px;overflow:hidden}
.mtr i{display:block;height:100%;background:var(--brand);border-radius:6px}
.mtr.crit i{background:var(--crit)} .mtr.ok i{background:var(--ok)} .mtr.warn i{background:var(--warn)}
.stk{display:flex;gap:2px;height:8px;border-radius:6px;overflow:hidden;background:var(--track)}
.stk i{display:block;height:100%;background:var(--brand)}
.stk i:nth-child(2){opacity:.7}.stk i:nth-child(3){opacity:.5}.stk i:nth-child(4){opacity:.35}.stk i:nth-child(n+5){opacity:.22}
.stk.io i:nth-child(1){background:var(--ok);opacity:1}.stk.io i:nth-child(2){background:var(--crit);opacity:1}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.col.thin .val{display:none}
.xl.sparse span{visibility:hidden}.xl.sparse span.on{visibility:visible}
.ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.agent{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;gap:8px;align-content:start}
.agent .nm{font-family:var(--f-display);font-weight:700}
.agent .meta{font-size:.8rem;color:var(--muted)}
.item{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line)}
.item:first-child{border-top:0;padding-top:0}
.item .hd{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.item .t{font-weight:600}
.item .dt{font-size:.88rem;color:var(--ink)}
.item .ac{font-size:.86rem;color:var(--brand);font-weight:600}
.item a{color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}
.setup{display:grid;gap:10px;font-size:.92rem}
.setup ol{margin:0;padding-inline-start:20px;display:grid;gap:6px}
.code{font-family:ui-monospace,Menlo,monospace;font-size:.8rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;overflow-wrap:anywhere;direction:ltr;text-align:left}
.dlg .rep{display:grid;gap:10px;max-height:60vh;overflow:auto}
.kpi .v small{margin-inline:6px 0;display:inline-block}
.kpi .v{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px}
.kpi .v small{margin:0}
