:root{--ink:#0F1E3A;--paper:#EEF2F8;--card:#fff;--line:#D9E0EB;--text:#16213A;--mute:#5E6B80;--green:#1E9E5A;--red:#D9433A;--violet:#6A4BDB;--gold:#F2B705}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:#1B4FA0}
.topbar{background:var(--ink);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:12px 24px}
.topbar a{color:#fff}
.brand{display:flex;gap:10px;align-items:center;font-weight:800;font-size:18px;text-decoration:none}
.m{display:grid;grid-template-columns:repeat(2,9px);gap:3px}.m i{width:9px;height:9px;border-radius:2px;background:var(--green)}.m i:nth-child(2){background:var(--violet);border-radius:50%}.m i:nth-child(3){background:#DCE2EA}.m i:nth-child(4){background:var(--gold)}
main{max-width:1180px;margin:0 auto;padding:22px 20px 60px;display:grid;gap:16px}
h1{margin:0;font-size:26px}h2{margin:0 0 10px;font-size:17px}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;display:grid;gap:10px;align-content:start}
.card.narrow{max-width:420px;margin:40px auto}
.card.head{grid-template-columns:1fr auto;align-items:center}
.muted{color:var(--mute)}.small{font-size:14px}.bad{color:var(--red);font-weight:600}
label{display:grid;gap:4px;font-size:14px;font-weight:600;color:var(--mute)}
input,select,textarea{font:inherit;font-weight:400;color:var(--text);padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%}
.btn{display:inline-block;font:inherit;font-weight:700;font-size:15px;padding:9px 16px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--text);cursor:pointer;text-decoration:none;justify-self:start}
.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.danger{border-color:var(--red);color:var(--red)}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.tiles div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:grid;border-top:4px solid var(--ink)}
.tiles b{font-size:28px;line-height:1.1}.tiles span{color:var(--mute);font-size:14px}
.tiles .due{border-top-color:var(--gold)}.tiles .lapsed{border-top-color:var(--red)}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mute);font-weight:600;font-size:14px}
table.list tr:not(:first-child){cursor:pointer}table.list tr:not(:first-child):hover td{background:#F6F8FB}
.state{display:inline-block;font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px}
.state.active{background:#DDF4E7;color:#11643A}.state.soon{background:#FFF1C9;color:#7A5600}.state.ended{background:#FDE2DF;color:#9E2A20}.state.paused{background:#E9EDF2;color:#4A5568}
.card.head .state{font-size:15px;padding:6px 14px}
.key{font:700 22px ui-monospace,Consolas,monospace;letter-spacing:.04em;margin:0}
.big{font-size:28px;font-weight:800;margin:0}.big small{font-size:16px;color:var(--mute);font-weight:600}

td .bar{height:6px;border-radius:3px;background:#E6EAF1;overflow:hidden;margin-top:6px;padding:0}
td .bar i{background:var(--green)}td .bar i.over{background:var(--red)}
.flash{padding:10px 14px;border-radius:8px}.flash.ok{background:#E7F6EE;color:#14532F}.flash.bad{background:#FCEDEA;color:#8C2513}
.warn{background:#FFF4CC;border:1px solid #F2D27A;border-radius:10px;padding:10px 14px}
@media (max-width:800px){.g2,.g3{grid-template-columns:1fr}.tiles{grid-template-columns:1fr 1fr}.card.head{grid-template-columns:1fr}}
