:root{--n9:#0b1a33;--n8:#12264a;--n7:#1b3563;--n5:#3c5d94;--g:#c9a24a;--bg:#eef2f8;--t:#1c2536;--m:#6b7891;--red:#d23b3b;--grn:#2e9b6a;--amb:#e0a12b}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 "Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--t)}
header{background:linear-gradient(90deg,var(--n9),var(--n7));color:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;flex-wrap:wrap;gap:8px;position:sticky;top:0;z-index:5}
.brand{font-weight:700;letter-spacing:3px;color:var(--g)}.brand span{letter-spacing:.5px;color:#fff;font-weight:500;margin-left:8px}
.hr{display:flex;gap:12px;align-items:center;font-size:12px}.lo{color:#cfd8ea;text-decoration:none}.upd{color:#cfd8ea}
.badge{padding:3px 10px;border-radius:20px;font-weight:700;font-size:11px;background:var(--grn)}.badge.demo{background:var(--amb);color:#1b1b1b}.badge.stale{background:var(--red)}
main{max-width:1300px;margin:auto;padding:18px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.kpi{background:#fff;border-radius:12px;padding:16px 18px;border-top:4px solid var(--n7);box-shadow:0 2px 8px rgba(11,26,51,.06)}
.kpi b{display:block;font-size:30px;color:var(--n8)}.kpi span{color:var(--m);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.kpi.bad{border-top-color:var(--red)}.kpi.bad b{color:var(--red)}
.card{background:#fff;border-radius:12px;padding:16px 18px;margin-bottom:16px;box-shadow:0 2px 8px rgba(11,26,51,.06)}
h2{margin:0 0 12px;font-size:15px;color:var(--n8);text-transform:uppercase;letter-spacing:.8px}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:640px}th{background:var(--n8);color:#fff;text-align:left;padding:9px 10px;font-weight:600;font-size:12px}td{padding:9px 10px;border-bottom:1px solid #e3e8f1}.r{text-align:right}
tr.over td{color:var(--red)}.bar{background:#e3e8f1;border-radius:6px;height:8px;width:110px;display:inline-block;vertical-align:middle;margin-right:6px}.bar i{display:block;height:100%;border-radius:6px;background:var(--n5)}
.pill{padding:2px 9px;border-radius:12px;font-size:11px;font-weight:600;background:#e3e8f1;color:var(--n8)}.pill.red{background:#fbe1e1;color:var(--red)}.pill.grn{background:#dcf2e7;color:var(--grn)}.pill.amb{background:#fbefd5;color:#8a5d00}
.gantt{overflow-x:auto}.grow{display:grid;grid-template-columns:230px 1fr;align-items:center;min-width:700px;border-bottom:1px solid #eef1f6}.glab{font-size:12px;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gtrk{position:relative;height:26px}
.gb{position:absolute;top:6px;height:14px;border-radius:7px;background:var(--n5)}.gb.done{background:var(--grn)}.gb.over{background:var(--red)}.today{position:absolute;top:0;bottom:0;width:2px;background:var(--g)}
.gax{display:grid;grid-template-columns:230px 1fr;min-width:700px;font-size:11px;color:var(--m)}.gax div:last-child{position:relative;height:18px}.gax span{position:absolute}
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.col{background:#f4f6fb;border-radius:10px;padding:10px;min-height:120px}.col h3{margin:0 0 8px;font-size:12px;color:var(--n7);text-transform:uppercase}
.tk{background:#fff;border-radius:8px;padding:9px;margin-bottom:8px;border-left:4px solid var(--n5);box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:13px}.tk small{display:block;color:var(--m)}.tk.over{border-left-color:var(--red)}.tk.over small.d{color:var(--red);font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two .card{margin:0}.list{list-style:none;margin:0;padding:0}.list li{padding:8px 0;border-bottom:1px solid #eef1f6;display:flex;justify-content:space-between;gap:10px}.list li.over{color:var(--red)}
footer{text-align:center;color:var(--m);font-size:12px;padding:12px 0 26px}
.login{max-width:360px;margin:12vh auto;background:#fff;padding:30px;border-radius:14px;box-shadow:0 8px 30px rgba(11,26,51,.15);border-top:5px solid var(--n8);text-align:center}.login h1{color:var(--n8);margin:6px 0}.login p{color:var(--m)}
.login input{width:100%;padding:11px;border:1px solid #cfd6e3;border-radius:8px;margin:10px 0}.login button{width:100%;padding:11px;border:0;border-radius:8px;background:var(--n8);color:#fff;font-weight:600;cursor:pointer}.err{color:var(--red);font-size:13px}
@media(max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.kanban{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}}
@media(max-width:520px){.kanban{grid-template-columns:1fr}.kpi b{font-size:24px}main{padding:10px}}
.rf{background:var(--g);color:var(--n9);border:0;border-radius:16px;padding:5px 12px;font-weight:700;cursor:pointer}.rf:disabled{opacity:.6}.ms{position:absolute;top:6px;width:14px;height:14px;transform:translateX(-7px) rotate(45deg);background:var(--n5);border-radius:2px}.ms.done{background:var(--grn)}.ms.over{background:var(--red)}
