:root{--bg:#f5f7fa;--card:#fff;--ink:#1d2433;--mute:#667085;--line:#e4e7ec;--brand:#0b5fa5;--brand2:#e8f1fb;
--go:#157f3b;--go-bg:#e7f6ec;--warn:#b54708;--warn-bg:#fef4e6;--no:#b42318;--no-bg:#fdecea;--rev:#3a4db8;--rev-bg:#eef0fd}
*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
header.top{background:#0d2b4d;color:#fff;display:flex;align-items:center;gap:18px;padding:10px 20px;flex-wrap:wrap}
header.top .logo{font-weight:700;letter-spacing:.3px}header.top .logo span{opacity:.7;font-weight:400}
header.top nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}header.top nav a{color:#cfe0f5;padding:6px 10px;border-radius:6px}
header.top nav a.on,header.top nav a:hover{background:#1c4574;color:#fff;text-decoration:none}
header.top .me{font-size:13px;color:#cfe0f5;display:flex;gap:10px;align-items:center}
main{max-width:1280px;margin:0 auto;padding:18px 16px 60px}
h1{font-size:20px;margin:0 0 12px}h2{font-size:16px;margin:0 0 10px}h3{font-size:14px;margin:14px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.kpi{font-size:26px;font-weight:700}.kpi small{display:block;font-size:12px;font-weight:400;color:var(--mute)}
table{width:100%;border-collapse:collapse}th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;color:var(--mute);font-weight:600;background:#fafbfc}tr:hover td{background:#fbfcfe}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.v-SOLO{background:var(--go-bg);color:var(--go)}.v-CONSORTIUM{background:var(--warn-bg);color:var(--warn)}
.v-NO{background:var(--no-bg);color:var(--no)}.v-REVIEW{background:var(--rev-bg);color:var(--rev)}
.s{background:#eef2f6;color:#344054}.s-go,.s-preparing,.s-ready{background:var(--brand2);color:var(--brand)}
.s-won{background:var(--go-bg);color:var(--go)}.s-lost,.s-declined{background:var(--no-bg);color:var(--no)}
.mute{color:var(--mute)}.small{font-size:12px}.red{color:var(--no)}.orange{color:var(--warn)}.green{color:var(--go)}
.btn{display:inline-block;border:1px solid var(--brand);background:var(--brand);color:#fff;border-radius:7px;padding:7px 12px;font:inherit;cursor:pointer}
.btn:hover{filter:brightness(1.08);text-decoration:none}.btn.ghost{background:#fff;color:var(--brand)}
.btn.go{background:var(--go);border-color:var(--go)}.btn.warn{background:var(--warn);border-color:var(--warn)}.btn.no{background:#fff;color:var(--no);border-color:var(--no)}
.btn.sm{padding:3px 8px;font-size:12px}
input,select,textarea{font:inherit;padding:6px 8px;border:1px solid #cfd4dc;border-radius:6px;background:#fff;max-width:100%}
textarea{width:100%}label{display:block;font-size:12px;color:var(--mute);margin:6px 0 2px}
form.inline{display:inline}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.row>*{flex:0 0 auto}
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--line);margin:0 0 14px;flex-wrap:wrap}
.tabs a{padding:8px 14px;border-radius:8px 8px 0 0;color:var(--mute)}.tabs a.on{background:var(--card);color:var(--ink);border:1px solid var(--line);border-bottom:2px solid var(--card);margin-bottom:-2px;font-weight:600}
.flash{background:var(--brand2);border:1px solid #b9d4f0;padding:8px 12px;border-radius:8px;margin-bottom:12px}
ul.list{margin:4px 0;padding-left:18px}ul.list li{margin:2px 0}
.box-no{border-left:4px solid var(--no);background:var(--no-bg)}.box-warn{border-left:4px solid var(--warn);background:var(--warn-bg)}
.box-go{border-left:4px solid var(--go);background:var(--go-bg)}.box-info{border-left:4px solid var(--brand);background:var(--brand2)}
.verdict{font-size:18px;font-weight:700}
.task{display:grid;grid-template-columns:28px 1fr 110px 120px 90px;gap:8px;padding:7px 4px;border-bottom:1px solid var(--line);align-items:start}
.task.done .t{text-decoration:line-through;color:var(--mute)}.task .t b{color:var(--no);font-size:11px}
.task details{grid-column:2/-1}.task.late .due{color:var(--no);font-weight:700}
.chk{width:22px;height:22px;border:2px solid #98a2b3;border-radius:5px;background:#fff;cursor:pointer;padding:0;font-size:14px;line-height:16px;color:var(--go)}
.task.done .chk{background:var(--go);border-color:var(--go);color:#fff}
.bar{height:8px;background:#eef2f6;border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--go)}
pre{white-space:pre-wrap;font-size:12px;background:#fafbfc;border:1px solid var(--line);padding:10px;border-radius:8px;max-height:420px;overflow:auto}
.caps{columns:3 220px}.caps label{display:flex;gap:6px;align-items:center;color:var(--ink);font-size:13px;margin:3px 0}
.hl{background:#fff7d6;border:1px solid #f1d27a;border-radius:8px;padding:10px 12px}
@media (max-width:720px){.task{grid-template-columns:28px 1fr;}.task .due,.task .who,.task .kind{grid-column:2}}
