:root{--bg:#F7F5F0;--card:#fff;--ink:#1B2333;--muted:#5B6474;--line:#E2DED5;--org:#C2410C;--brand:#1D4E9E;--ok:#1E7B3A;--bad:#B42318}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Readex Pro",system-ui,sans-serif;line-height:1.75}
.wrap{max-width:900px;margin:0 auto;padding:0 16px}
.bar{background:#1B2333;color:#fff}.bar .wrap{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;min-height:58px}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:1.2rem}.sub{opacity:.8;font-size:.9rem}
.bar nav{margin-inline-start:auto;display:flex;gap:.4rem;flex-wrap:wrap}.bar nav a{color:#fff;text-decoration:none;border:1px solid #ffffff44;border-radius:999px;padding:.15rem .8rem;font-size:.9rem}
main{padding:1.4rem 16px 2rem}h1{font-size:1.6rem;margin:.2rem 0 .4rem}h2{margin:0;font-size:1.3rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem;margin:1rem 0}
.narrow{max-width:460px;margin:1.5rem auto}
label{display:block;margin:.7rem 0;font-weight:600}input{display:block;width:100%;margin-top:.25rem;font:inherit;padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:9px;background:#fff}
input:focus{outline:2px solid var(--brand);border-color:var(--brand)}
.btn{font:inherit;font-weight:700;background:var(--brand);color:#fff;border:0;border-radius:9px;padding:.55rem 1.2rem;cursor:pointer;margin-top:.4rem}
.btn.sm{padding:.2rem .7rem;font-size:.85rem;margin:.1rem}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.muted{color:var(--muted)}.small{font-size:.85rem}a{color:var(--brand)}
.alert{background:#FFF7E6;border:1px solid #F5D08A;border-radius:9px;padding:.5rem .8rem}.alert.ok{background:#EAF6EE;border-color:#A6D8B5}.alert.bad{background:#FDECEA;border-color:#F3B4AD}
.chead{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.chead .small{margin-inline-start:auto}
.code{background:var(--org);color:#fff;border-radius:7px;padding:0 .5rem;font-weight:700}
.stats{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}.stats span{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.15rem .6rem;font-size:.9rem}
.dl.main{display:flex;flex-direction:column;background:var(--ok);color:#fff;text-decoration:none;border-radius:12px;padding:.8rem 1rem;font-weight:700;font-size:1.1rem;margin:.8rem 0}
.dl.main small{font-weight:400;opacity:.9;font-size:.85rem}
details{border-top:1px solid var(--line);padding:.5rem 0}summary{cursor:pointer;font-weight:700}
.files{padding-inline-start:1.2rem}.files li{margin:.2rem 0}
.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:#fff;font-size:.9rem}th,td{border:1px solid var(--line);padding:.4rem .5rem;text-align:start;vertical-align:top}th{background:var(--bg)}
.st-pending{background:#FFFBF0}.st-rejected,.st-disabled{opacity:.6}.acts form{display:flex;flex-wrap:wrap;gap:.2rem}
.tag{background:var(--brand);color:#fff;border-radius:5px;padding:0 .35rem;font-size:.75rem}
code{background:#EEF1F6;border-radius:4px;padding:0 .3rem;unicode-bidi:isolate;font-family:Consolas,"DejaVu Sans Mono",monospace;font-size:.92em}
.foot{color:var(--muted);font-size:.85rem;padding-bottom:2rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1rem}
h3{margin:1rem 0 .3rem}.taskpick{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.4rem}
.tp{display:flex;gap:.5rem;align-items:flex-start;font-weight:400;margin:0;border:1px solid var(--line);border-radius:9px;padding:.4rem .6rem;background:#fff;cursor:pointer}
.tp input{width:auto;margin-top:.45rem}.tp span{display:flex;flex-direction:column;line-height:1.5}
.pill{border-radius:999px;padding:0 .6rem;font-size:.85rem;background:var(--bg);border:1px solid var(--line)}.pill.ok{background:#EAF6EE;color:var(--ok);border-color:#A6D8B5}
.linkbox{display:flex;gap:.4rem;align-items:center}.linkbox input{margin:0}.linkbox .btn{margin:0;white-space:nowrap}
form.inline{display:flex;gap:.4rem;flex-wrap:wrap}
table.res td{text-align:center}table.res td:first-child{text-align:start}
td.pass{background:#EAF6EE}td.fail{background:#FDECEA}td.none{color:var(--muted)}
td details summary{list-style:none;cursor:pointer}td .sub{text-align:start;min-width:260px}
td pre{background:#F4F1EA;padding:.4rem;border-radius:6px;white-space:pre-wrap;text-align:left;font-size:.8rem;max-height:240px;overflow:auto}
.dash-tasks{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
td .sub{max-width:380px}
