:root{--g:#0b5d3b;--g2:#0f7a4e;--bg:#f4f6f5;--card:#fff;--txt:#17201c;--mut:#6b746f;--line:#e1e6e3;--green:#1e9e5a;--yellow:#e0a100;--red:#d33a2c;--blue:#1f6feb}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--txt)}
.wrap{max-width:760px;margin:0 auto;padding:0 14px}
header.top{background:var(--g);color:#fff;padding:10px 0;position:sticky;top:0;z-index:5}
header.top .wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;font-weight:700;font-size:18px}
.back{color:#fff;text-decoration:none;font-size:22px;line-height:1;padding:0 4px}
.nav{margin-left:auto;display:flex;gap:12px;flex-wrap:wrap;font-size:14px}.nav a{color:#dff3e8;text-decoration:none}.nav a.muted{color:#b9d9c8}
main{padding:14px 14px 40px}
h1{font-size:24px;margin:8px 0 14px}h2{font-size:18px;margin:26px 0 8px}h3{font-size:16px;margin:0 0 6px}
p{margin:8px 0}small{font-size:13px}.muted{color:var(--mut)}.small{font-size:13px}.ok{color:var(--green)}.bad{color:var(--red)}
a{color:var(--g2)}
.hello{font-size:15px;color:var(--mut);margin:4px 0 12px}
.bigbtn{display:flex;align-items:center;gap:14px;background:var(--card);border:2px solid var(--line);border-radius:14px;padding:16px;margin:10px 0;text-decoration:none;color:var(--txt);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.bigbtn .num{flex:0 0 40px;height:40px;border-radius:50%;background:var(--g);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.bigbtn.todo{border-color:var(--g2)}.bigbtn.done .num{background:var(--green)}.bigbtn.done{border-color:#bfe6cf}.bigbtn.idle{opacity:.7}.bigbtn.idle .num{background:#9aa39e}
.bigbtn b{font-size:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin:10px 0}
.card.link{display:block;text-decoration:none;color:var(--txt)}.card.link:hover{border-color:var(--g2)}
.card.status{border-width:2px}.card.status.green{border-color:var(--green)}.card.status.yellow{border-color:var(--yellow)}.card.status.red{border-color:var(--red)}.card.status.incomplete,.card.status.baseline{border-color:#c9d1cc}
.statusline{display:flex;align-items:center;gap:12px}
.light{display:inline-block;width:18px;height:18px;border-radius:50%;background:#c9d1cc;vertical-align:middle;flex:0 0 18px}
.light.green{background:var(--green)}.light.yellow{background:var(--yellow)}.light.red{background:var(--red)}
.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:13px;background:#e6ebe8}.badge.green{background:#d9f3e4;color:#0c6b3a}.badge.yellow{background:#fff1c7;color:#7a5600}.badge.red{background:#fadcd8;color:#8f1d13}
.rules{background:#f0f7f3}.rules ol{margin:6px 0 0;padding-left:20px}.rules li{margin:4px 0}
.links{font-size:14px;margin-top:20px}
.form{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin:12px 0}
.rows{display:flex;flex-direction:column}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.row.col{flex-direction:column;align-items:stretch;gap:6px}
.row:last-of-type{border-bottom:0}
.lbl{font-weight:600;display:flex;flex-direction:column}.lbl small{font-weight:400}
input[type=text],input[type=password],input[type=date],input[type=number],input[type=email],select{font:inherit;padding:12px;border:1.5px solid #b9c2bd;border-radius:10px;width:100%;background:#fff}
input.amt{text-align:right;font-size:20px;font-variant-numeric:tabular-nums;max-width:220px}
.row:not(.col) input.amt{width:55%}
input[type=file]{font:inherit}
.check{display:flex;gap:10px;align-items:flex-start;padding:12px 0;font-weight:600}.check input{width:24px;height:24px;margin-top:2px}
.btn{display:inline-block;font:inherit;font-weight:600;padding:12px 18px;border-radius:10px;border:1.5px solid var(--g2);background:#fff;color:var(--g2);text-decoration:none;cursor:pointer}
.btn.primary{background:var(--g);border-color:var(--g);color:#fff;width:100%;margin-top:12px;font-size:18px;padding:14px}
.btn.small{padding:6px 12px;font-size:14px;width:auto;margin:0}
.linkbtn{background:none;border:0;color:var(--g2);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.flash{padding:12px 14px;border-radius:10px;margin:10px 0;background:#d9f3e4;color:#0c6b3a}.flash.err{background:#fadcd8;color:#8f1d13}
.warn{background:#fff1c7;color:#7a5600;padding:10px 12px;border-radius:10px}
.hints{background:#fff8e1;border-radius:10px;padding:10px 10px 10px 28px;margin:10px 0}.hints li{margin:4px 0}
.tscroll{overflow-x:auto;margin:6px 0 14px;-webkit-overflow-scrolling:touch}
.tbl{border-collapse:collapse;width:100%;background:var(--card);font-size:15px}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:#eef2f0;font-weight:600;font-size:13px;white-space:nowrap}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl tr.total td{font-weight:700;border-top:2px solid #c9d1cc}.tbl tr.sub td{color:var(--mut);font-size:13px}
.tbl tr.total.green td{background:#d9f3e4}.tbl tr.total.yellow td{background:#fff1c7}.tbl tr.total.red td{background:#fadcd8}
.tbl td.green{color:var(--green)}.tbl td.yellow{color:#7a5600}.tbl td.red{color:var(--red);font-weight:700}
.tbl tr.big td{background:#fff1c7}.tag{font-size:12px;background:var(--yellow);color:#fff;padding:1px 6px;border-radius:999px}
.tbl tr.rowred td{background:#fdecea}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:600px){.grid2,.grid3{grid-template-columns:1fr}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.stat b{display:block;font-size:22px;margin-top:4px}.stat small{color:var(--mut)}
.alerts{margin:8px 0}.alert{padding:10px 12px;border-radius:10px;margin:6px 0;background:#eef2f0}.alert.red{background:#fadcd8;color:#8f1d13}.alert.yellow{background:#fff1c7;color:#7a5600}.alert.green{background:#d9f3e4;color:#0c6b3a}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}.tabs a{padding:6px 12px;border-radius:999px;background:#e6ebe8;text-decoration:none;color:var(--txt);font-size:14px}.tabs a.on{background:var(--g);color:#fff}
.inline{display:inline-block;margin:4px 6px 4px 0}.inline input[type=text],.inline input[type=date],.inline select{width:auto;padding:6px 8px}
.gallery{display:flex;gap:10px;flex-wrap:wrap}.gallery img{width:150px;height:150px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.gallery figure{margin:0;text-align:center;font-size:13px}
.login{max-width:380px;margin:40px auto}
.addbox{padding:8px 0}.addbox summary{cursor:pointer;color:var(--g2);font-weight:600}
.guide h2{margin-top:22px}.guide ol{padding-left:22px}.guide li{margin:6px 0}
.foot{padding:20px 14px;color:var(--mut);font-size:13px;text-align:center}
details{margin:10px 0}summary{cursor:pointer;font-weight:600}
code{font-size:13px;background:#eef2f0;padding:2px 5px;border-radius:5px;word-break:break-all}
