:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#e9eee9;background:#121718;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,4vw,42px);letter-spacing:-1.6px}h2{font-size:19px;letter-spacing:-.5px}.muted{color:#a2aeac}.small{font-size:12px}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#191f20;padding:28px 18px;border-right:1px solid #303b3b;display:flex;flex-direction:column;gap:25px}.logo{font-size:34px;letter-spacing:-2px;font-weight:900}.logo b{color:#b7f0cf}.tag{font-size:10px;letter-spacing:2px;color:#94a5a1;text-transform:uppercase}.nav{display:grid;gap:7px}.nav button{border:0;border-radius:9px;padding:12px 14px;text-align:left;background:transparent;color:#aeb9b7}.nav button.active,.nav button:hover{background:#2b3736;color:#e6f5ed}.bottom{margin-top:auto;display:grid;gap:12px}.main{padding:36px clamp(18px,4vw,65px);max-width:1550px;width:100%;margin:auto}.top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:32px}.pill{padding:8px 12px;background:#273332;border-radius:40px;color:#bfe7d2;font-size:12px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:26px 0}.stat,.panel{background:#1d2526;border:1px solid #303a3a;border-radius:14px;padding:21px}.stat strong{display:block;font-size:28px;letter-spacing:-1px;margin:8px 0}.stat span{color:#a1b0ad;font-size:12px}.panel{margin:15px 0;overflow:auto}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:10px 0 15px}.button{background:#c6efd6;color:#13231a;border:0;padding:11px 16px;border-radius:9px;font-weight:700}.button.secondary{background:#2c3738;color:#e7eee9}.button.tiny{padding:6px 10px;font-size:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}td,th{padding:14px 10px;border-bottom:1px solid #334040;vertical-align:middle}th{color:#96a8a4;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:1px}tr:last-child td{border:0}.badge{border:1px solid #475b55;padding:5px 8px;border-radius:20px;white-space:nowrap;font-size:11px}.good{color:#b7f0cf}.warn{color:#ffcb87}.over{color:#ff9993}.progress{height:6px;background:#35413e;border-radius:9px;overflow:hidden;margin-top:7px}.progress i{display:block;background:#b7f0cf;height:100%}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form label{display:grid;gap:7px;color:#b3c0bb;font-size:12px}.form input,.form select,.form textarea,.login input{width:100%;background:#12191a;border:1px solid #43504e;color:#eff5f0;border-radius:8px;padding:11px}.form .wide{grid-column:1/-1}.form textarea{min-height:85px}.form button{justify-self:start}.error{color:#ffaaa2;margin:12px 0}.success{color:#b7f0cf;margin:12px 0}.loginwrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(420px,100%);background:#1d2526;border:1px solid #35403f;padding:32px;border-radius:16px;display:grid;gap:14px}.login input{margin-top:5px}.login label{font-size:12px;color:#a9b8b3}.login .button{margin-top:10px}.loading{padding:20vh 20px;text-align:center;font-size:38px;font-weight:900}.loading small{display:block;font-size:13px;font-weight:400;color:#a9b8b3}.notice{padding:14px;border:1px solid #3e5550;border-radius:9px;color:#b9d5c7;margin:15px 0}.taskcard{padding:15px;border-bottom:1px solid #35403f;display:flex;justify-content:space-between;gap:15px;align-items:center}.taskcard:last-child{border:0}.taskcard.done{opacity:.55}.taskcard.done strong{text-decoration:line-through}@media(max-width:950px){.layout{grid-template-columns:1fr}.sidebar{position:static;padding:14px 20px;gap:8px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.bottom{display:none}.main{padding:22px 15px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.grid,.form{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.stat strong{font-size:25px}td,th{padding:10px 6px}}
