:root{--shell:#141414;--sht:#d9d9d4;--panel:#fff;--card:#f5f5f3;--cb:#f5f5f3;--bg:#ecece8;--tx:#141414;--mut:#62625c;--bd:#e2e2dc;--ac:#ff9a1f;--acs:#ffeccf;--hl:#141414;--hlt:#fff;--ok:#0b7a4b;--wn:#9a5500;--er:#c62828;--pb:#141414;--pt:#fff;--sa:#2a2a2a;--sat:#fff;--sai:#ff9a1f;--sp:#ff9a1f;--hsp:#ff9a1f;--c1:#ff9a1f;--c2:#ffc94d;--c3:#1c1c1c;--c4:#9a9a95;--c5:#d4d4ce;--c6:#ff6b1a;--c7:#6b6b66}
[data-th=citron]{--card:#fff;--cb:#e2e2dc;--ac:#ffd800;--acs:#fff6b8;--hl:#ffd800;--hlt:#141414;--pb:#ffd800;--pt:#141414;--sa:#ffd800;--sat:#141414;--sai:#141414;--sp:#141414;--hsp:#141414;--c1:#ffd800;--c2:#141414;--c3:#8a8a84;--c4:#d4d4ce;--c5:#ffe866;--c6:#4a4a46;--c7:#b8b8b2}
[data-mode=dark]{--shell:#0b0b0c;--panel:#151516;--card:#1e1e20;--cb:#1e1e20;--bg:#272729;--tx:#f4f4f1;--mut:#a8a8a2;--bd:#2d2d30;--acs:#3a2a10;--hl:#ff9a1f;--hlt:#141414;--ok:#4ade80;--wn:#fbbf24;--er:#f87171;--pb:#ff9a1f;--pt:#141414;--sa:#ff9a1f;--sat:#141414;--sai:#141414;--hsp:#141414;--c3:#f4f4f1;--c7:#a8a8a2}
[data-th=citron][data-mode=dark]{--card:#1b1b1b;--cb:#2d2d2d;--ac:#ffe14d;--acs:#3a3500;--hl:#ffe14d;--pb:#ffe14d;--sa:#ffe14d;--sp:#ffe14d;--c1:#ffe14d;--c2:#f4f4f1;--c3:#8a8a84;--c4:#4a4a46;--c5:#a89a2a;--c6:#d4d4ce}
*{box-sizing:border-box;margin:0}body{font:14px/1.5 Inter,system-ui,sans-serif;background:var(--shell);color:var(--tx);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}small{color:var(--mut);font-size:12px;display:block}
:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
.app{display:flex;min-height:100vh;padding:14px;gap:14px}
aside{width:248px;flex:none;color:var(--sht);display:flex;flex-direction:column;position:sticky;top:14px;height:calc(100vh - 28px);overflow:auto;padding:6px;z-index:30;transition:transform .25s}
.wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:14px}
.brand{display:flex;gap:12px;align-items:center;color:#fff;font-weight:700;font-size:20px;padding:6px 8px 20px}.logo{width:36px;height:36px;border-radius:10px;background:var(--ac);color:#141414;display:grid;place-items:center;font-weight:800}.lg{width:36px;height:36px;border-radius:10px;object-fit:cover}
.sl,.sec{color:#8d8d87;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:0 10px 6px;display:block}.sec{margin-top:14px}
aside select{background:#1f1f1f;border-color:#2e2e2e;color:#fff;margin-bottom:6px}aside option{color:#000}
nav a{display:flex;gap:12px;align-items:center;padding:10px 12px;min-height:44px;border-radius:12px;color:#b9b9b3;text-decoration:none;margin-bottom:3px;transition:.15s}nav a .ic{color:#8d8d87}
nav a:hover{background:#1f1f1f;color:#fff}nav a.on{background:var(--sa);color:var(--sat);font-weight:600}nav a.on .ic{color:var(--sai)}
.nb{margin-left:auto;background:var(--ac);color:#141414;border-radius:99px;font-size:11px;padding:0 7px;font-weight:700}
.upc{margin-top:auto;background:#1f1f1f;border-radius:16px;padding:14px;color:#fff;position:relative}.upc small{color:#9a9a94;text-transform:uppercase;letter-spacing:.06em;font-size:10px}.upc b{display:block;margin:2px 0;font-size:13px}.upc a{position:absolute;right:12px;bottom:12px;width:30px;height:30px;border-radius:50%;background:var(--ac);color:#141414;display:grid;place-items:center;text-decoration:none;font-weight:700}
.side-f{font-size:12px;padding:12px 8px;color:#8d8d87}.side-f b{color:#fff}
#tb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#fff}.sr{flex:1;min-width:180px;max-width:460px;position:relative}.sr input{background:#1f1f1f;border:0;border-radius:99px;color:#fff;padding-left:42px}.sr .ic{position:absolute;left:14px;top:12px;color:#8d8d87}.sr kbd{position:absolute;right:14px;top:11px;font-size:11px;color:#8d8d87;background:#2a2a2a;border-radius:6px;padding:1px 6px}
#tb select{width:auto;background:#1f1f1f;border:0;color:#fff;border-radius:99px;padding:0 14px}#tb option{color:#000}.tsp{flex:1}
#tb .btn{background:#1f1f1f;border:0;color:#fff;border-radius:50%;width:44px;padding:0;justify-content:center;position:relative}#tb .btn .nb{position:absolute;top:-2px;right:-2px}
.pf{display:flex;gap:10px;align-items:center;padding-left:6px}.pf b{display:block;line-height:1.2}.pf small{color:#9a9a94}.av{width:42px;height:42px;border-radius:50%;background:var(--ac);color:#141414;display:grid;place-items:center;font-weight:700}
main{background:var(--panel);border-radius:28px;padding:28px 30px calc(24px + env(safe-area-inset-bottom));flex:1;min-width:0}
.ph{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:22px;flex-wrap:wrap}.ph h1{font-size:30px;letter-spacing:-.02em;line-height:1.15}.ph p{color:var(--mut)}
.ic{width:20px;height:20px;flex:none}
.card{background:var(--card);border:1px solid var(--cb);border-radius:20px;padding:20px}
.grid{display:grid;gap:16px;margin-bottom:16px}.g4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.kpi{background:var(--card);border:1px solid var(--cb);border-radius:20px;padding:18px}.kpi.hl{background:var(--hl);border-color:var(--hl);color:var(--hlt)}.kpi.hl small{color:inherit;opacity:.8}
.kh{display:flex;align-items:center;gap:10px}.ci{width:38px;height:38px;border-radius:12px;background:var(--ac);color:#141414;display:grid;place-items:center;flex:none}.hl .ci{background:var(--hlt);color:var(--hl)}
.kpi b{font-size:28px;display:block;letter-spacing:-.02em;margin:10px 0 4px;line-height:1.1}.kf{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
.sp{width:90px;height:32px;stroke:var(--sp);flex:none}.hl .sp{stroke:var(--hsp)}
h2{font-size:16px;margin-bottom:12px}h3{font-size:12px;margin:20px 0 8px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.btn{border:1px solid var(--bd);background:var(--card);border-radius:12px;padding:9px 16px;min-height:44px;display:inline-flex;gap:8px;align-items:center;font-weight:500;transition:.15s;text-decoration:none;color:var(--tx)}
.btn:hover{border-color:var(--tx)}.btn.p{background:var(--pb);border-color:var(--pb);color:var(--pt)}.btn.p .ic{color:var(--ac)}[data-th=citron] .btn.p .ic,[data-mode=dark] .btn.p .ic{color:inherit}.btn.d{color:var(--er);border-color:var(--er)}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn.sm{min-height:36px;padding:5px 12px}
select,input,textarea{background:var(--panel);border:1px solid var(--bd);border-radius:12px;padding:9px 12px;width:100%;min-height:44px}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--tx)}
label{display:block;font-size:12px;color:var(--mut);margin:0 0 4px;font-weight:500}.chk{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--tx)}
.f{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:640px}th{text-align:left;font-size:12px;color:var(--mut);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--bd)}td{padding:12px 10px;border-bottom:1px solid var(--bd);vertical-align:middle}tr.cl{cursor:pointer}tr.cl:hover td{background:var(--bg)}
.r{text-align:right}.pill{padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;background:var(--bg);display:inline-block}
.Approved{color:var(--ok)}.Pending{color:var(--wn)}.Rejected{color:var(--er)}
.bar{height:8px;background:var(--bg);border-radius:9px;overflow:hidden;display:flex}.bar i{background:var(--tx);transition:width .5s}.bar u{background:repeating-linear-gradient(45deg,var(--ac) 0 4px,transparent 4px 8px)}.bar.w i{background:var(--wn)}.bar.e i{background:var(--er)}
.row{display:flex;justify-content:space-between;gap:10px;margin:14px 0 6px;align-items:center;flex-wrap:wrap}.rh{display:flex;justify-content:space-between;align-items:center;margin:0 0 14px;gap:10px;flex-wrap:wrap}.rh h2{margin:0}
.donut{width:170px;height:170px;border-radius:50%;display:grid;place-items:center;flex:none}.donut div{width:116px;height:116px;background:var(--card);border-radius:50%;display:grid;place-items:center;text-align:center;font-weight:700;font-size:18px}
.dot{width:10px;height:10px;border-radius:3px;display:inline-block;margin-right:8px}
.bars{display:flex;gap:10px;height:230px;padding-top:34px}.bars>div{flex:1;display:flex;flex-direction:column;gap:6px;position:relative;text-align:center;min-width:0}.bars small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr{flex:1;background:var(--bg);border-radius:10px;position:relative;overflow:hidden}.tr i{position:absolute;bottom:0;left:0;right:0;background:var(--ac);border-radius:10px}
.bars>div::after{content:attr(data-tip);position:absolute;top:-34px;left:50%;transform:translateX(-50%);background:var(--tx);color:var(--panel);padding:4px 10px;border-radius:8px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;z-index:2}.bars>div:hover::after,.bars>div:focus::after{opacity:1}
.steps{display:flex;gap:6px;flex-wrap:wrap}.steps span{flex:1;min-width:100px;text-align:center;padding:8px;border-radius:10px;background:var(--bg);color:var(--mut);font-weight:500}.steps .on{background:var(--pb);color:var(--pt)}.steps .on small{color:inherit}.steps .dn{background:var(--acs);color:var(--tx)}
.tabs{display:inline-flex;background:var(--bg);border-radius:99px;padding:3px;gap:2px;flex-wrap:wrap}.tabs button{border:0;background:none;padding:7px 16px;border-radius:99px;min-height:38px;font-weight:500;color:var(--mut)}.tabs .on{background:var(--pb);color:var(--pt)}
.li{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid var(--bd)}.li:last-child{border:0}
.att{display:flex;gap:10px;padding:8px 0;align-items:flex-start}.att .ic{color:var(--wn);margin-top:2px}.ra{display:flex;gap:10px;align-items:center;padding:8px 0}.ra .av{width:34px;height:34px;font-size:12px;background:var(--bg);color:var(--tx)}
.proj{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:16px}.proj h2{font-size:22px;margin:2px 0 6px;letter-spacing:-.02em}.pimg{width:96px;height:96px;border-radius:18px;object-fit:cover;flex:none;background:var(--ac);color:#141414;display:grid;place-items:center;font-size:36px;font-weight:700}.cfs{display:flex;gap:18px;flex-wrap:wrap;align-content:flex-start}.cfs>div{min-width:120px}.th{max-width:120px;max-height:80px;border-radius:10px;display:block;margin:4px 0}.cv{width:100%;height:120px;object-fit:cover;border-radius:14px;margin-bottom:12px;background:var(--bg)}
#modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;place-items:center;z-index:50;padding:16px}#modal.o{display:grid}#modal .card{width:min(600px,100%);max-height:92vh;overflow:auto;background:var(--panel)}
#modal.dr{place-items:stretch end;padding:0}#modal.dr .card{height:100vh;max-height:none;width:min(540px,100%);border-radius:24px 0 0 24px;animation:sl .25s}@keyframes sl{from{transform:translateX(40px);opacity:0}}
.dh{display:flex;justify-content:space-between;gap:10px}.dh h2{font-size:20px;margin:8px 0 2px}.big{font-size:32px;font-weight:700;letter-spacing:-.02em}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0;padding:14px;background:var(--card);border-radius:14px}.nt{margin-top:10px}
.rc{max-width:100%;max-height:240px;border-radius:12px;border:1px solid var(--bd)}.rcf{display:flex;gap:12px;align-items:center;padding:14px;border:1px dashed var(--bd);border-radius:12px}
.ck{display:flex;gap:10px;padding:8px 0;align-items:flex-start}.ck.y .ic{color:var(--ok)}.ck.n .ic{color:var(--wn)}
.tl{padding:8px 0 8px 14px;border-left:2px solid var(--bd)}.act{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.warn{padding:12px;border-radius:12px;background:var(--acs);margin-top:14px}
.lk{position:fixed;inset:0;background:var(--shell);display:grid;place-items:center;z-index:90;padding:16px}.lk .card{width:min(380px,100%);background:var(--panel)}
#toasts{position:fixed;right:16px;bottom:16px;z-index:95;display:grid;gap:8px}.toast{background:var(--tx);color:var(--panel);padding:12px 16px;border-radius:12px;max-width:340px}
.mb{display:none}.note{color:var(--mut);font-size:12px}.foot{margin-top:26px}.rep h3{margin:22px 0 8px}.sig{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}.sig div{border-top:1px solid var(--tx);padding-top:6px}
.hash{font-family:ui-monospace,monospace;font-size:11px;color:var(--mut)}
@media(max-width:1000px){.g21{grid-template-columns:1fr}}
@media(max-width:860px){.app{padding:0;gap:0}.wrap{gap:0}#tb{padding:12px}main{border-radius:22px 22px 0 0;padding:18px}aside{position:fixed;inset:0 auto 0 0;height:100%;background:var(--shell);padding:14px;transform:translateX(-100%)}aside.o{transform:none}.mb{display:inline-flex}.pf div:last-child{display:none}}
@media print{aside,#tb,.noprint,#toasts,.ph{display:none!important}.app{padding:0}main{padding:0;border-radius:0}.card{border:0}body,main{background:#fff;color:#000}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
