@font-face{font-family:"General Sans";font-weight:400;font-display:swap;src:url(/assets/fonts/GeneralSans-400.woff2) format("woff2")}
@font-face{font-family:"General Sans";font-weight:500;font-display:swap;src:url(/assets/fonts/GeneralSans-500.woff2) format("woff2")}
@font-face{font-family:"General Sans";font-weight:600;font-display:swap;src:url(/assets/fonts/GeneralSans-600.woff2) format("woff2")}
/* ARHAFEZ OS — mock styles, v2 (after his references: Relate, Planex, Triangle, Aerion).
   Product-UI look: soft cards on a warm grey ground, sans only, icons in the nav,
   KPI cards with deltas, pills for state. Still Ink & Paper: no pure white, one red. */
:root{
  --bg:#ECEBE7;          /* page ground */
  --card:#F7F6F3;        /* cards: lightest surface, not pure white */
  --card-2:#F0EFEB;      /* inner wells, hovers */
  --ink:#0B0B0A; --ink-2:#2A2A28;
  --grey:#62615E; --mute:#8F8E8A;
  --line:rgba(11,11,10,.09); --line-2:rgba(11,11,10,.14);
  --red:#E93223; --red-bg:rgba(233,50,35,.09);
  --green:#1E8E55; --green-bg:rgba(30,142,85,.10);
  --amber:#B7791F; --amber-bg:rgba(183,121,31,.11);
  --blue:#2F6FD6; --blue-bg:rgba(47,111,214,.09);
  --r:14px; --r-sm:9px;
  --sh:0 1px 0 rgba(11,11,10,.03),0 1px 2px rgba(11,11,10,.04);
  --sans:"General Sans",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
ul{list-style:none;margin:0;padding:0}
svg.i{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.num{font-variant-numeric:tabular-nums}

/* ---------- shell */
.os{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100svh}
.side{position:sticky;top:0;height:100svh;overflow:auto;padding:16px 14px;display:flex;flex-direction:column;gap:14px}
.ws{display:flex;align-items:center;gap:11px;background:var(--card);border-radius:var(--r);padding:10px 12px;box-shadow:var(--sh)}
.ws__mark{width:34px;height:34px;border-radius:10px;background:var(--ink);display:grid;place-items:center}
.ws__mark img{width:22px;height:auto;filter:invert(1)}
.ws b{display:block;font-weight:500;font-size:14px}
.ws small{display:block;font-size:12px;color:var(--mute)}
.ws .i{margin-left:auto;color:var(--mute)}
.find{display:flex;align-items:center;gap:9px;background:var(--card-2);border-radius:var(--r-sm);padding:9px 11px;font-size:13px;color:var(--mute)}
.find kbd{margin-left:auto;font:inherit;font-size:11px;border:1px solid var(--line-2);border-radius:5px;padding:1px 5px}
.nav p{font-size:11px;color:var(--mute);letter-spacing:.04em;text-transform:uppercase;padding:0 10px 6px;margin:4px 0 0}
.nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:var(--r-sm);font-size:14px;color:var(--ink-2);transition:background .15s}
.nav a .i{color:var(--grey)}
.nav a:hover{background:rgba(11,11,10,.04)}
.nav a[aria-current]{background:var(--card);box-shadow:var(--sh);font-weight:500}
.nav a[aria-current] .i{color:var(--ink)}
.nav a .c{margin-left:auto;font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums}
.nav a .c.need{color:#fff;background:var(--red);border-radius:99px;padding:0 7px;line-height:18px}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;border-top:1px solid var(--line-2);padding:14px 6px 2px;font-size:13px}
.me__av{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--card);display:grid;place-items:center;font-size:12px;font-weight:500}
.me small{display:block;color:var(--mute);font-size:12px}
.me .i{margin-left:auto;color:var(--mute)}

.main{padding:16px 16px 16px 0;min-width:0}
.panel{background:var(--card);border-radius:18px;box-shadow:var(--sh);min-height:calc(100svh - 32px);min-width:0}
.top{display:flex;align-items:center;gap:12px;padding:14px 26px;border-bottom:1px solid var(--line)}
.top .find{background:var(--bg);min-width:300px}
.top__end{margin-left:auto;display:flex;align-items:center;gap:6px}
.ibtn{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:var(--grey);border:0;background:none;cursor:pointer;position:relative}
.ibtn:hover{background:var(--card-2)}
.ibtn .dot{position:absolute;top:8px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--red);border:2px solid var(--card)}
.btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:500;background:var(--ink);color:var(--card);cursor:pointer}
.btn--ghost{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
.body{padding:26px}

/* ---------- page head */
.ph{display:flex;align-items:flex-end;gap:16px;margin-bottom:22px}
.ph h1{font-size:26px;font-weight:500;letter-spacing:-.01em;margin:0}
.ph p{margin:4px 0 0;font-size:14px;color:var(--grey)}
.ph__end{margin-left:auto;display:flex;gap:8px;align-items:center}
.seg{display:flex;background:var(--bg);border-radius:10px;padding:3px}
.seg button{border:0;background:none;padding:6px 12px;font-size:13px;color:var(--grey);border-radius:8px;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:var(--sh)}

/* ---------- cards */
.box{background:var(--card);border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line);min-width:0}
.box__h{display:flex;align-items:center;gap:9px;padding:16px 18px 6px}
.box__h h2{font-size:15px;font-weight:500;margin:0}
.box__h .i{color:var(--grey)}
.box__h a{margin-left:auto;font-size:13px;color:var(--grey);display:flex;align-items:center;gap:3px}
.box__h a:hover{color:var(--ink)}
.box__b{padding:6px 18px 16px}

.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}
.kpi{padding:16px 18px}
.kpi__l{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--grey)}
.kpi__l .i{width:15px;height:15px}
.kpi__n{display:flex;align-items:baseline;gap:9px;margin-top:12px}
.kpi__n b{font-size:28px;font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.kpi__n span{font-size:12px;color:var(--mute)}
.kpi__f{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-top:6px;font-size:12px;color:var(--mute)}
.spark{width:96px;height:30px}
.spark polyline{fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.spark .area{stroke:none}

.pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;border-radius:99px;padding:2px 9px;white-space:nowrap;background:var(--card-2);color:var(--grey)}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.pill.no-dot::before{display:none}
.pill--red{background:var(--red-bg);color:var(--red)}
.pill--green{background:var(--green-bg);color:var(--green)}
.pill--amber{background:var(--amber-bg);color:var(--amber)}
.pill--blue{background:var(--blue-bg);color:var(--blue)}
.pill--ink{background:var(--ink);color:var(--card)}
.delta{font-size:12px;font-weight:500;border-radius:6px;padding:1px 6px}
.delta--up{color:var(--green);background:var(--green-bg)}
.delta--down{color:var(--red);background:var(--red-bg)}

.list li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line);font-size:14px}
.list li:first-child{border-top:0}
.list .ic{width:32px;height:32px;border-radius:10px;background:var(--card-2);display:grid;place-items:center;color:var(--grey);flex:none}
.list .ic .i{width:15px;height:15px}
.list .ic--red{background:var(--red-bg);color:var(--red)}
.list .tx{min-width:0;flex:1}
.list .tx b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.list .tx small{display:block;font-size:12px;color:var(--mute);margin-top:1px}
.list .end{margin-left:auto;text-align:right;font-size:13px;color:var(--grey);white-space:nowrap}

.chk{width:18px;height:18px;border-radius:6px;border:1.5px solid var(--line-2);flex:none;display:grid;place-items:center}
.done .chk{background:var(--ink);border-color:var(--ink)}
.done .chk::after{content:"";width:8px;height:4px;border:1.6px solid var(--card);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.done .tx b{color:var(--mute);text-decoration:line-through}

.bar{height:6px;border-radius:99px;background:var(--card-2);overflow:hidden;min-width:70px}
.bar i{display:block;height:100%;border-radius:99px;background:var(--ink)}

.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-weight:400;font-size:12px;color:var(--mute);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl td b{font-weight:500;display:block}
.tbl td small{color:var(--mute);font-size:12px}
.tbl .prog{display:flex;align-items:center;gap:10px}
.tbl .prog .bar{flex:1}
.tbl .r{text-align:right}

.mock-flag{position:fixed;right:14px;bottom:14px;font-size:12px;color:var(--mute);background:var(--card);border-radius:8px;padding:5px 10px;box-shadow:inset 0 0 0 1px var(--line)}

/* ---------- responsive */
@media (max-width:1180px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .os{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;padding:12px 12px 0;gap:6px}
  .side .find,.nav p,.me,.ws small,.ws>.i{display:none}
  .ws{padding:6px;box-shadow:none;background:none}
  .nav{display:contents}
  .nav a{white-space:nowrap;padding:7px 10px}
  .nav a .i{display:none}
  .main{padding:12px}
  .top{padding:12px 16px}
  .top .find{min-width:0;flex:1}
  .top .btn span{display:none}
  .body{padding:18px 16px}
  .ph{flex-wrap:wrap}
  .ph__end{margin-left:0}
  .tbl .hide-s{display:none}
}
@media (max-width:520px){.kpis{grid-template-columns:minmax(0,1fr)}}

/* ---------- shared simple pieces (v3, "keep it simple") */
.act{display:flex;gap:6px}
.act button{border:0;background:var(--ink);color:var(--card);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}
.act button.ghost{background:var(--card-2);color:var(--ink)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-6px 0 18px;overflow-x:auto}
.tabs a,.tabs button{padding:9px 12px;font-size:14px;color:var(--grey);border:0;background:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.tabs [aria-current],.tabs [aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:500}
.tabs .c{color:var(--red);font-size:12px;margin-left:4px}
.crumb{font-size:13px;color:var(--mute);margin-bottom:8px}
.crumb a:hover{color:var(--ink)}
.cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px}
.stack{display:grid;gap:14px;align-content:start}
.list a.tx:hover b{text-decoration:underline;text-underline-offset:3px}
.add-row{display:flex;align-items:center;gap:10px;padding:11px 0 2px;font-size:14px;color:var(--mute);border-top:1px solid var(--line)}
.add-row input{flex:1;border:0;background:none;font:inherit;color:var(--ink);outline:none}
@media (max-width:1000px){.cols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:620px){.list li{flex-wrap:wrap}.list li:has(.act) .tx{flex-basis:100%}.list li .act{margin-left:auto}}
[hidden]{display:none!important}
@media (max-width:620px){.tbl .pill{white-space:normal}.tbl td,.tbl th{padding-left:6px;padding-right:6px}}
