:root{--bg:#f5f6f4;--card:#fff;--ink:#1d2421;--muted:#66706b;--line:#dfe3df;--brand:#1f6f5c;--brand2:#e7f2ee;--warn:#b54708;--bad:#b42318;--good:#067647;--r:10px}
@media (prefers-color-scheme:dark){:root{--bg:#141816;--card:#1d2320;--ink:#e8ece9;--muted:#9aa49f;--line:#2e3632;--brand:#4fb393;--brand2:#1d3a31;--warn:#f79009;--bad:#f97066;--good:#47cd89}}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand)}.pad{padding:16px}.muted{color:var(--muted)}.small{font-size:13px}
header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header .logo{font-weight:800;color:var(--brand);font-size:20px}nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}
nav button{background:none;border:0;padding:6px 10px;border-radius:8px;color:var(--ink);cursor:pointer;font:inherit}nav button.on{background:var(--brand2);color:var(--brand);font-weight:600}
main{padding:16px;max-width:1400px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.stat b{display:block;font-size:26px}
button.btn,.btn{background:var(--brand);color:#fff;border:0;border-radius:8px;padding:7px 12px;font:inherit;cursor:pointer}
.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}.btn.bad{background:var(--bad)}.btn.sm{padding:3px 8px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
input,textarea,select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:7px 9px;width:100%}
textarea{min-height:110px;resize:vertical}label{display:block;margin:8px 0 3px;font-weight:600;font-size:14px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row>*{flex:0 0 auto}
.board{display:grid;grid-template-columns:repeat(6,minmax(200px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px}
.col{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:8px;min-height:200px}.col.over{outline:2px dashed var(--brand)}
.col h3{margin:2px 4px 8px;font-size:14px}.task{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:6px;cursor:grab}
.task .t{font-weight:600}.badge{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;background:var(--brand2);color:var(--brand)}
.badge.cho_duyet{background:#fef0c7;color:#93370d}.badge.da_duyet{background:#d1e9ff;color:#1849a9}.badge.da_dang{background:#d1fadf;color:#05603a}.badge.loi,.badge.tu_choi{background:#fee4e2;color:#912018}.badge.huy{background:#eaecf0;color:#344054}
.stop{background:var(--bad);color:#fff;font-weight:700}.banner{background:var(--bad);color:#fff;padding:8px 16px;font-weight:600}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{border-bottom:1px solid var(--line);padding:6px;text-align:left;vertical-align:top}
.post pre{white-space:pre-wrap;font:inherit;margin:6px 0}.thumbs img{height:70px;border-radius:6px;margin:2px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.gallery img{width:100%;height:110px;object-fit:cover;border-radius:6px}
.token{font-family:ui-monospace,monospace;word-break:break-all;background:var(--brand2);padding:10px;border-radius:8px}
.login{max-width:360px;margin:12vh auto}.err{color:var(--bad)}.ok{color:var(--good)}
dialog{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);max-width:640px;width:calc(100% - 32px)}
@media (max-width:700px){main{padding:10px}.board{grid-template-columns:repeat(6,80vw)}}
