:root{--bg:#f5f6f4;--card:#fff;--ink:#1d2421;--muted:#6a746f;--line:#dfe3e0;--brand:#2f6b4f;--brand-ink:#fff;--late:#b3261e;--accent:#e8f1ec}
@media (prefers-color-scheme:dark){:root{--bg:#141816;--card:#1d2220;--ink:#e6ebe8;--muted:#9aa5a0;--line:#2c3431;--brand:#5fb98c;--brand-ink:#0c1410;--late:#ff8a80;--accent:#24302a}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:var(--brand)}
main{max-width:1200px;margin:0 auto;padding:16px}
h1{font-size:1.5rem;margin:.2em 0 .6em}h2{font-size:1.1rem;margin:.2em 0 .6em}h3{font-size:.95rem;margin:1em 0 .4em;color:var(--muted)}
.muted{color:var(--muted)}.small{font-size:.82rem}.late{color:var(--late);font-weight:600}.struck{text-decoration:line-through;color:var(--muted)}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:700;text-decoration:none;color:var(--brand);font-size:1.1rem}
.top nav{display:flex;flex-wrap:wrap;gap:2px;flex:1}
.top nav a{padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--ink)}
.top nav a.on,.top nav a:hover{background:var(--accent)}
.right{display:flex;align-items:center;gap:12px}.right form{margin:0}.who{color:var(--muted);text-decoration:none}
.btn{display:inline-block;padding:7px 13px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:7px;cursor:pointer;text-decoration:none;font:inherit}
.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.btn.danger{color:var(--late);border-color:var(--late)}
button.link{background:none;border:0;color:var(--brand);cursor:pointer;font:inherit;padding:2px 4px}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:7px 9px;max-width:100%}
textarea{width:100%}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.card.narrow{max-width:400px;margin:8vh auto}
.stack{display:grid;gap:10px}.stack label,.grid-form label{display:grid;gap:3px;font-size:.85rem;color:var(--muted)}
.stack input,.grid-form input,.grid-form select{width:100%}
.grid-form{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px;align-content:start}
.grid-form .full{grid-column:1/-1}.actions{display:flex;gap:12px;align-items:center}
.inline-form{display:inline-flex;gap:6px;align-items:center;margin:0}
.head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.flash{padding:9px 12px;border-radius:7px;background:var(--accent);margin-bottom:12px}.flash.err{background:#fde7e5;color:#8c1d18}
@media (prefers-color-scheme:dark){.flash.err{background:#3a1f1d;color:#ffb4ab}}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.group{margin-bottom:18px}.scroll{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:10px}
table.tasks{width:100%;border-collapse:collapse}
.tasks th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}
.tasks td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.tasks tr:last-child td{border-bottom:0}.tasks tr.done a{color:var(--muted)}.num{color:var(--muted);width:2.5em}.nowrap{white-space:nowrap}
.tasks select.inline{padding:3px 5px;font-size:.85rem}
.tasks td input{width:100%;min-width:110px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;text-decoration:none;color:var(--ink);display:grid}
.tile b{font-size:1.8rem;line-height:1.1}.tile span{color:var(--muted);font-size:.85rem}.tile.late b{color:var(--late)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;align-items:start}
.cols.wide{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}
@media (max-width:800px){.cols.wide,.grid-form{grid-template-columns:1fr}}
ul.plain{list-style:none;margin:0;padding:0}ul.plain li{padding:6px 0;border-bottom:1px solid var(--line)}ul.plain li:last-child{border:0}
li.check{display:flex;justify-content:space-between;align-items:center}li.check form{display:flex;gap:8px;align-items:center;margin:0}
.comment{padding:8px 0;border-bottom:1px solid var(--line)}.comment p{margin:.3em 0;white-space:pre-wrap}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.75rem;background:var(--accent);margin-right:4px}
.p-urgent{background:#b3261e;color:#fff}.p-high{background:#e8a33d;color:#2a1c00}.p-medium{background:#cfe3d8;color:#17382a}
.s-in-progress{color:#1a5fb4}.s-awaiting-decision{color:#9a6700}.s-done{color:var(--brand)}
@media (prefers-color-scheme:dark){.s-in-progress{color:#7db3ff}.s-awaiting-decision{color:#f0c060}.p-medium{background:#2f4a3c;color:#d6efe0}}
.board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow-x:auto;align-items:start}
.col h2{padding:4px 2px;border-bottom:3px solid currentColor}
.dropzone{min-height:120px;padding:4px 0;border-radius:8px}.dropzone.over{background:var(--accent)}
.task-card{padding:10px 12px;margin-bottom:8px;cursor:grab}.task-card.dragging{opacity:.4}.task-card a{font-weight:600;text-decoration:none}
