:root{--navy:#0b1f6b;--navy2:#142a85;--orange:#f97316;--bg:#f4f6fb;--card:#fff;--ink:#16203a;--mute:#64708f;--line:#e2e7f2;--ok:#16a34a;--bad:#dc2626;--warn:#d97706;--info:#2563eb;--okbg:#dcfce7;--badbg:#fee2e2;--warnbg:#fef3c7;--infobg:#dbeafe;--greybg:#eef1f7}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--ink)}header{background:#fff;border-bottom:3px solid var(--orange);display:flex;align-items:center;gap:20px;padding:8px 24px;position:sticky;top:0;z-index:5}header img{height:54px}header .tag{font-weight:700;color:var(--navy);letter-spacing:.5px}header .tag b{color:var(--orange)}header .sp{flex:1}.layout{display:flex;min-height:calc(100vh - 72px)}nav{width:210px;background:var(--navy);padding:14px 10px;flex-shrink:0}nav button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:none;border:0;color:#c7d0f0;padding:10px 12px;border-radius:8px;font:inherit;cursor:pointer;margin-bottom:2px}nav button:hover{background:var(--navy2);color:#fff}nav button.on{background:var(--orange);color:#fff;font-weight:600}nav .grp{color:#7f8bc4;font-size:11px;text-transform:uppercase;letter-spacing:1px;margin:14px 12px 6px}nav .badge{margin-left:auto;background:#fff;color:var(--navy);border-radius:10px;padding:0 7px;font-size:11px;font-weight:700}main{flex:1;padding:22px 26px;min-width:0}h1{margin:0 0 4px;font-size:22px;color:var(--navy)}.sub{color:var(--mute);margin-bottom:18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;border-top:3px solid var(--navy)}.kpi .v{font-size:24px;font-weight:700;color:var(--navy)}.kpi .l{color:var(--mute);font-size:12px}.kpi.o{border-top-color:var(--orange)}.kpi.g{border-top-color:var(--ok)}.kpi.r{border-top-color:var(--bad)}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}.panel h2{margin:0 0 10px;font-size:15px;color:var(--navy)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:1100px){.grid2{grid-template-columns:1fr}}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--mute);padding:8px;border-bottom:2px solid var(--line);white-space:nowrap}td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}tr.click{cursor:pointer}tr.click:hover{background:#f7f9ff}.pill{display:inline-block;border-radius:10px;padding:1px 9px;font-size:12px;font-weight:600;white-space:nowrap}.s-Completed,.s-Done{background:var(--okbg);color:var(--ok)}.s-In-Progress{background:var(--infobg);color:var(--info)}.s-Started,.s-Assigned{background:var(--warnbg);color:var(--warn)}.s-Not-Started,.s-Pending{background:var(--greybg);color:var(--mute)}.s-Ready{background:#ffedd5;color:#c2410c}.s-Invoiced,.s-Paid{background:var(--okbg);color:var(--ok)}.s-Part-invoiced{background:var(--warnbg);color:var(--warn)}.s-Not-invoiced{background:var(--greybg);color:var(--mute)}.s-Issued{background:var(--infobg);color:var(--info)}.s-Cancelled{background:var(--badbg);color:var(--bad)}.pohead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:10px}.pohead .t{font-size:16px;font-weight:700;color:var(--navy)}.pohead .sp{flex:1}.linebox{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:4px 12px 10px;margin:8px 0}.clienthead{font-weight:700;color:var(--navy);margin:14px 0 4px;display:flex;gap:10px;align-items:center}td input.q,td input.r{width:90px;text-align:right;padding:4px 6px}.invdoc td,.invdoc th{padding:6px 8px}.pos{color:var(--ok)}.neg{color:var(--bad)}.mute{color:var(--mute)}button.btn{background:var(--navy);color:#fff;border:0;border-radius:7px;padding:7px 14px;font:inherit;cursor:pointer}button.btn:hover{background:var(--navy2)}button.btn.o{background:var(--orange)}button.btn.o:hover{background:#ea580c}button.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}button.btn.sm{padding:3px 10px;font-size:12px}button.btn.danger{background:#fff;color:var(--bad);border:1px solid #fecaca}.bar{height:8px;border-radius:4px;background:var(--greybg);overflow:hidden;min-width:70px}.bar i{display:block;height:100%;background:var(--ok)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px}.toolbar .sp{flex:1}input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #cdd5e8;border-radius:7px;background:#fff;color:var(--ink);width:100%}label{display:block;font-size:12px;color:var(--mute);margin:10px 0 3px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips label{display:flex;gap:6px;align-items:center;margin:0;color:var(--ink);font-size:13px;background:var(--greybg);border-radius:14px;padding:3px 10px}.chips input{width:auto}.flow{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.step{background:var(--greybg);border:1px solid var(--line);border-radius:8px;padding:4px 9px;font-size:12px}.step b{color:var(--navy)}.arrow{color:var(--orange);font-weight:700}.wfcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}dialog{border:0;border-radius:12px;padding:0;width:min(720px,94vw);box-shadow:0 20px 60px #0b1f6b55}dialog::backdrop{background:#0b1f6b88}.dh{background:var(--navy);color:#fff;padding:12px 18px;display:flex;align-items:center;border-radius:12px 12px 0 0}.dh h3{margin:0;flex:1;font-size:16px}.dh button{background:none;border:0;color:#fff;font-size:20px;cursor:pointer}.db{padding:6px 18px 18px;max-height:76vh;overflow:auto}.df{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.stepedit{display:grid;grid-template-columns:28px 1fr 110px 90px;gap:8px;align-items:center;margin-bottom:6px}.tl{border-left:3px solid var(--line);margin-left:8px;padding-left:16px}.tl .ev{position:relative;margin-bottom:8px;font-size:13px}.tl .ev:before{content:"";position:absolute;left:-23px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--orange)}.tl .t{color:var(--mute);font-size:11px}.task{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;display:flex;gap:14px;align-items:center;background:#fff}.task .main{flex:1}.task.act{border-left:4px solid var(--info)}.task.ready{border-left:4px solid var(--orange)}.timer{font-size:20px;font-weight:700;color:var(--info);font-variant-numeric:tabular-nums}.vbar{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:12px}.vbar .nm{width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vbar .tr{flex:1;position:relative;height:16px}.vbar .b1,.vbar .b2{position:absolute;left:0;height:7px;border-radius:3px}.vbar .b1{top:0;background:#b6c1e8}.vbar .b2{top:8px}.legend{font-size:12px;color:var(--mute);margin-bottom:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 10px}#toast{position:fixed;bottom:22px;right:22px;background:var(--navy);color:#fff;padding:11px 18px;border-radius:9px;display:none;z-index:99;max-width:420px}#toast.err{background:var(--bad)}.empty{color:var(--mute);padding:18px;text-align:center}.ro .wr,.nomoney .money{display:none!important}#login{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0b1f6b,#142a85);z-index:50;display:flex;align-items:center;justify-content:center}#login .box{background:#fff;border-radius:14px;padding:26px 30px;width:min(430px,92vw);border-top:5px solid var(--orange)}#login img{width:240px;display:block;margin:0 auto 14px}#lerr{color:var(--bad);min-height:20px;margin-top:8px;font-size:13px}.demo{margin-top:14px;font-size:12px;color:var(--mute)}.demo button{margin:3px 3px 0 0}.who{font-size:13px;color:var(--mute);text-align:right;line-height:1.3}.who b{color:var(--navy)}@media print{nav,header,main,.noprint,.dh button{display:none!important}dialog{position:static;width:100%;box-shadow:none}.db{max-height:none;overflow:visible}}.modal{border:0;border-radius:12px;padding:0;width:min(720px,94vw);box-shadow:0 20px 60px #0b1f6b55}.modal::backdrop{background:#0b1f6b88}button.link{background:none;border:0;padding:0;color:var(--navy);text-decoration:underline;cursor:pointer;font:inherit}
