:root{--surface:#f6f6f3;--raised:#ffffff;--sunken:#eeeee9;--ink:#16181a;--muted:#5e6468;--hair:#e6e6e0;--control:#84898d;--accent:#007a55;--accent-press:#00664a;--on-accent:#ffffff;--mint-bg:#ddf5ea;--mint-ink:#0b5c43;--butter-bg:#fdf0cc;--butter-ink:#6b4a00;--peach-bg:#ffe7dc;--peach-ink:#8a3413;--sky-bg:#e0eefb;--sky-ink:#174f7a;--lilac-bg:#ece7fb;--lilac-ink:#4a3690;--rose-bg:#fce5ea;--rose-ink:#8b0836;--shadow:0 1px 2px rgba(22,24,26,.04),0 6px 20px rgba(22,24,26,.05);--scrim:rgba(22,24,26,.28);--sans:"Outfit","Noto Sans Ethiopic",system-ui,sans-serif;--r-sm:10px;--r-md:14px;--r-lg:22px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--surface:#0e0f10;--raised:#1a1b1d;--sunken:#26272a;--ink:#f6f5f0;--muted:#a9aaa6;--hair:#2b2c2f;--control:#7a7b7f;--accent:#00d492;--accent-press:#00bd82;--on-accent:#00261b;--mint-bg:#12352a;--mint-ink:#7cebc4;--butter-bg:#3a2e12;--butter-ink:#ffd98a;--peach-bg:#3b2218;--peach-ink:#ffb899;--sky-bg:#14293a;--sky-ink:#9ccff5;--lilac-bg:#241f3a;--lilac-ink:#c9bbfa;--rose-bg:#3a1a22;--rose-ink:#ffa9bc;--shadow:none;--scrim:rgba(0,0,0,.5);color-scheme:dark}}:root[data-theme=dark]{--surface:#0e0f10;--raised:#1a1b1d;--sunken:#26272a;--ink:#f6f5f0;--muted:#a9aaa6;--hair:#2b2c2f;--control:#7a7b7f;--accent:#00d492;--accent-press:#00bd82;--on-accent:#00261b;--mint-bg:#12352a;--mint-ink:#7cebc4;--butter-bg:#3a2e12;--butter-ink:#ffd98a;--peach-bg:#3b2218;--peach-ink:#ffb899;--sky-bg:#14293a;--sky-ink:#9ccff5;--lilac-bg:#241f3a;--lilac-ink:#c9bbfa;--rose-bg:#3a1a22;--rose-ink:#ffa9bc;--shadow:none;--scrim:rgba(0,0,0,.5);color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--surface);color:var(--ink);font:400 14px/1.5 var(--sans)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}.rail{position:sticky;top:0;height:100vh;overflow:auto;padding:20px 12px;border-right:1px solid var(--hair);background:var(--raised);display:flex;flex-direction:column;gap:2px}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px}.brand i{width:30px;height:30px;border-radius:9px;background:var(--accent);display:grid;place-items:center;color:var(--on-accent);font-style:normal;font-weight:600}.brand b{font-weight:600;font-size:15px}.brand small{display:block;color:var(--muted);font-size:12px;line-height:1.2}.grp{margin:14px 10px 4px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}.nav{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:0 10px;border:0;border-radius:var(--r-sm);background:none;text-align:left;color:var(--ink);text-decoration:none}.nav svg{width:18px;height:18px;flex:none;color:var(--muted)}.nav:hover{background:var(--sunken)}.nav[aria-current=page]{background:var(--mint-bg);color:var(--mint-ink);font-weight:500}.nav[aria-current=page] svg{color:var(--mint-ink)}.nav em{margin-left:auto;font-style:normal;font-size:12px;font-weight:600;min-width:22px;text-align:center;padding:0 6px;border-radius:999px;background:var(--rose-bg);color:var(--rose-ink)}.main{min-width:0;padding-block:20px 48px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}.top{display:flex;align-items:center;gap:12px;margin-bottom:20px}.top h1{margin:0;font-size:24px;line-height:32px;font-weight:600;text-wrap:balance}.top p{margin:0;color:var(--muted)}.top .sp{flex:1}.env{padding:2px 10px;border-radius:999px;background:var(--butter-bg);color:var(--butter-ink);font-size:12px;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 14px;border:0;border-radius:var(--r-sm);background:var(--sunken);font-weight:500;white-space:nowrap}.btn:hover{filter:brightness(.97)}.btn--pri{background:var(--accent);color:var(--on-accent)}.btn--pri:hover{background:var(--accent-press);filter:none}.btn--danger{background:var(--rose-bg);color:var(--rose-ink)}.btn--q{background:none}.btn svg{width:16px;height:16px}.card{background:var(--raised);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px 20px;min-width:0}.card h2{margin:0 0 2px;font-size:16px;font-weight:600}.card .sub{margin:0 0 12px;color:var(--muted);font-size:13px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.kpi{display:flex;flex-direction:column;gap:2px}.kpi small{color:var(--muted);font-size:13px}.kpi b{font-size:26px;line-height:34px;font-weight:600;font-variant-numeric:tabular-nums}.kpi span{font-size:12px;color:var(--muted)}.up{color:var(--accent)}.down{color:var(--rose-ink)}.kpi.warn{background:var(--butter-bg);color:var(--butter-ink)}.kpi.warn small,.kpi.warn span{color:inherit}.tbl{overflow-x:auto;margin:0 -20px -18px}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th{text-align:left;font-weight:500;font-size:12px;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--hair);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--hair);vertical-align:middle}tr:last-child td{border-bottom:0}th:first-child,td:first-child{padding-left:20px}th:last-child,td:last-child{padding-right:20px}tbody tr.click{cursor:pointer}tbody tr.click:hover td{background:var(--sunken)}td.num,th.num{text-align:right}.who{display:flex;align-items:center;gap:10px;min-width:0}.av{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:13px}.who b{display:block;font-weight:500;white-space:nowrap}.who small{display:block;color:var(--muted);font-size:12px}.pill{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap}.t-mint{background:var(--mint-bg);color:var(--mint-ink)}.t-butter{background:var(--butter-bg);color:var(--butter-ink)}.t-peach{background:var(--peach-bg);color:var(--peach-ink)}.t-sky{background:var(--sky-bg);color:var(--sky-ink)}.t-lilac{background:var(--lilac-bg);color:var(--lilac-ink)}.t-rose{background:var(--rose-bg);color:var(--rose-ink)}.t-plain{background:var(--sunken);color:var(--ink)}.bar{display:flex;align-items:center;gap:10px;margin:8px 0}.bar>span:first-child{width:110px;flex:none}.bar .track{flex:1;height:8px;border-radius:999px;background:var(--sunken);overflow:hidden}.bar .track i{display:block;height:100%;background:var(--accent);border-radius:999px}.bar b{width:44px;text-align:right;font-weight:500;font-variant-numeric:tabular-nums}.list{display:grid;gap:2px}.row{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 0;border-bottom:1px solid var(--hair)}.row:last-child{border-bottom:0}.row .grow{flex:1;min-width:0}.row .grow b{display:block;font-weight:500}.row .grow small{display:block;color:var(--muted);font-size:12px}.tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}.search{display:flex;align-items:center;gap:8px;flex:1;min-width:200px;max-width:360px;height:38px;padding:0 12px;border-radius:var(--r-sm);background:var(--raised);box-shadow:inset 0 0 0 1px var(--hair)}.search input{flex:1;min-width:0;border:0;outline:0;background:none}.search svg{width:16px;height:16px;color:var(--muted)}.chip{min-height:32px;padding:0 12px;border:0;border-radius:999px;background:var(--raised);box-shadow:inset 0 0 0 1px var(--hair);font-size:13px}.chip[aria-pressed=true]{background:var(--ink);color:var(--surface);box-shadow:none}.tabs{display:flex;gap:4px;padding:4px;border-radius:var(--r-md);background:var(--sunken);width:max-content;max-width:100%;overflow-x:auto;margin-bottom:14px}.tabs button{min-height:32px;padding:0 14px;border:0;border-radius:10px;background:none;font-weight:500;color:var(--muted);white-space:nowrap}.tabs button[aria-selected=true]{background:var(--raised);color:var(--ink);box-shadow:var(--shadow)}.fld{display:grid;gap:4px}.fld>span{font-size:12px;color:var(--muted);font-weight:500}.inp{width:100%;min-height:40px;padding:8px 12px;border:0;border-radius:var(--r-sm);background:var(--sunken);outline:0}.inp:focus{box-shadow:inset 0 0 0 1.5px var(--accent);background:var(--raised)}textarea.inp{min-height:84px;resize:vertical}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.form{display:grid;gap:14px}.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.f4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sw{position:relative;flex:none;width:42px;height:24px;border:0;border-radius:999px;background:var(--control);padding:0;transition:background .2s}.sw i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--raised);transition:transform .2s cubic-bezier(.22,1,.36,1)}.sw[aria-checked=true]{background:var(--accent)}.sw[aria-checked=true] i{transform:translate(18px)}.note{display:flex;gap:10px;padding:10px 14px;border-radius:var(--r-md);background:var(--sky-bg);color:var(--sky-ink);font-size:13px;line-height:1.5}.note.warn{background:var(--butter-bg);color:var(--butter-ink)}.note.bad{background:var(--rose-bg);color:var(--rose-ink)}.note svg{width:18px;height:18px;flex:none;margin-top:1px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100%);background:var(--raised);box-shadow:-10px 0 40px #0000001f;transform:translate(105%);transition:transform .32s cubic-bezier(.22,1,.36,1);z-index:21;display:flex;flex-direction:column}.drawer.on{transform:none}.scrim.on{opacity:1;pointer-events:auto}.dh{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--hair)}.dh h3{margin:0;font-size:17px;font-weight:600;flex:1;min-width:0}.db{flex:1;overflow:auto;padding:18px 20px;padding-right:max(20px,env(safe-area-inset-right,0px))}.df{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;padding-bottom:max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid var(--hair)}.ib{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:10px;background:none}.ib:hover{background:var(--sunken)}.ib svg{width:18px;height:18px}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;padding:10px 16px;border-radius:12px;background:var(--ink);color:var(--surface);font-weight:500;transition:all .25s;z-index:30;pointer-events:none}.toast.on{opacity:1;transform:translate(-50%)}.receipt{aspect-ratio:3/4;max-width:100%;border-radius:var(--r-md);background:var(--sunken);display:grid;place-items:center;padding:24px}.receipt div{width:100%;max-width:220px;background:var(--raised);border-radius:6px;padding:16px;font-size:12px;box-shadow:var(--shadow)}.receipt div p{margin:4px 0;display:flex;justify-content:space-between;gap:8px}.cmp{display:grid;grid-template-columns:auto 1fr 1fr;gap:6px 14px;font-size:13px;align-items:center}.cmp b{font-weight:500}.cmp span{color:var(--muted)}.ok{color:var(--accent)}.bad{color:var(--rose-ink)}.macro{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.macro div{padding:10px;border-radius:var(--r-sm);background:var(--sunken);text-align:center}.macro small{display:block;color:var(--muted);font-size:12px}.macro b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.phone{width:280px;max-width:100%;margin:0 auto;padding:16px 12px;border-radius:28px;background:linear-gradient(180deg,#0e4a38,#101414);color:#fff}.phone .nt{background:#fff;color:#16181a;border-radius:16px;padding:10px 12px;font-size:12px}.phone .nt b{display:block;font-size:13px}.phone .nt small{color:#5e6468}.res{display:grid;gap:4px;padding:12px;border-radius:var(--r-md);background:var(--sunken);font-size:13px}.res div{display:flex;justify-content:space-between;gap:12px}.res span{color:var(--muted)}.perm td:not(:first-child){text-align:center}.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-top:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.empty{padding:28px;text-align:center;color:var(--muted)}.mobnav{display:none}@media(max-width:1100px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}.g-main{grid-template-columns:1fr}}@media(max-width:860px){.app{grid-template-columns:1fr}.rail{display:none}.mobnav{display:block;margin-bottom:14px}.g2,.g3{grid-template-columns:1fr}.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.f4{grid-template-columns:1fr 1fr}.main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.top{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--surface)}.login .card{width:min(420px,100%);padding:28px}.login h1{margin:0 0 4px;font-size:22px;font-weight:600}.login .brand{padding:0 0 20px}.err{color:var(--rose-ink);font-size:13px;margin:0}.qr{display:grid;place-items:center;padding:12px;background:#fff;border-radius:var(--r-md)}.qr img{width:180px;height:180px}.spin{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}.loading{padding:28px;text-align:center;color:var(--muted)}.rail .me{margin-top:auto;padding:12px 10px 0;border-top:1px solid var(--hair);display:flex;align-items:center;gap:10px}.rail .me .grow{flex:1;min-width:0}.rail .me b{display:block;font-size:13px;font-weight:500}.rail .me small{display:block;color:var(--muted);font-size:12px}.pager{display:flex;justify-content:center;padding:14px 0 0}.thumb{width:40px;height:40px;border-radius:10px;background:var(--sunken);object-fit:cover}.receipt img{width:100%;height:100%;object-fit:contain;border-radius:6px}.btn[disabled]{opacity:.55;cursor:default}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px}.kv span{color:var(--muted)}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}select.inp{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}
