:root{--bg:#f6f5f2;--surface:#fff;--ink:#1f2328;--muted:#6b7079;--line:#e4e1da;--accent:#2f5d50;--accent-ink:#fff;--accent-soft:#e6efeb;--warn:#9a5b13;--warn-soft:#fbf0e1;--danger:#a83232;--danger-soft:#f8e6e6;--radius:8px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font:14px/1.5 var(--font)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:650}h2{margin:0 0 12px;font-size:16px;font-weight:600}p{margin:0 0 12px}.muted{color:var(--muted)}.small{font-size:12px}.shell{grid-template-columns:210px 1fr;min-height:100vh;display:grid}.side{color:#dfe7e3;background:#1f2a27;flex-direction:column;gap:4px;padding:20px 14px;display:flex}.brand{color:#fff;letter-spacing:-.01em;padding:4px 10px 18px;font-size:16px;font-weight:700}.side a{color:#cfdad5;border-radius:6px;padding:8px 10px;display:block}.side a:hover{color:#fff;background:#2c3a36;text-decoration:none}.side .spacer{flex:1}.side form button{color:#9fb0a9;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;width:100%;padding:8px 10px}.side .who{color:#8a9c95;word-break:break-all;padding:0 10px 6px;font-size:12px}.main{width:100%;max-width:1180px;padding:28px 32px 60px}.head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}@media (max-width:760px){.shell{grid-template-columns:1fr}.side{flex-flow:wrap;padding:10px}.side .spacer,.side .who{display:none}.brand{padding:8px 10px}.main{padding:20px 16px 48px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.stack{flex-direction:column;gap:16px;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.grid2>*,.grid3>*,.cols>*{min-width:0}.grid3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.cols{grid-template-columns:1fr 340px;align-items:start;gap:16px;display:grid}@media (max-width:900px){.cols,.grid3{grid-template-columns:1fr}}@media (max-width:560px){.grid2{grid-template-columns:1fr}}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:500;display:flex}input,select,textarea{font:14px var(--font);color:var(--ink);background:#fff;border:1px solid #d6d2ca;border-radius:6px;width:100%;padding:8px 10px}textarea{resize:vertical;min-height:90px;line-height:1.5}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}label.check{color:var(--ink);flex-direction:row;align-items:center;gap:8px;font-size:14px;font-weight:400}label.check input{width:auto}.btn{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:500 14px var(--font);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.btn:hover{filter:brightness(1.08);text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{color:var(--ink);background:#fff;border-color:#d6d2ca}.btn.danger{color:var(--danger);background:#fff;border-color:#e2c3c3}.btn.sm{padding:5px 10px;font-size:13px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 14px}th{color:var(--muted);white-space:nowrap;background:#faf9f6;font-size:12px;font-weight:600}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfaf8}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.tag{color:#444;background:#eeece7;border-radius:999px;margin:1px 3px 1px 0;padding:1px 9px;font-size:12px;display:inline-block}.badge{white-space:nowrap;border-radius:4px;padding:1px 7px;font-size:12px;font-weight:500;display:inline-block}.b-subscribed{background:var(--accent-soft);color:var(--accent)}.b-not_subscribed{color:#666;background:#eeece7}.b-unsubscribed{background:var(--danger-soft);color:var(--danger)}.b-pending{background:var(--warn-soft);color:var(--warn)}.notice{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:10px 14px}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.err{background:var(--danger-soft);color:var(--danger)}.stat{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:650}.pager{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.note{border-left:3px solid var(--line);white-space:pre-wrap;margin-bottom:12px;padding:4px 0 4px 12px}.progress{background:#eeece7;border-radius:99px;height:8px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .3s}iframe.preview{border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;height:560px}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}pre{white-space:pre-wrap;word-break:break-all;background:#f2f0eb;border-radius:6px;padding:10px 12px;overflow-x:auto}.b-planned{color:#555;background:#eeece7}.b-active,.b-doing{color:#2c5282;background:#e4ecf6}.b-on_hold{background:var(--warn-soft);color:var(--warn)}.b-done{background:var(--accent-soft);color:var(--accent)}.b-cancelled,.b-todo{color:#666;background:#eeece7}.prio-high{color:var(--danger);font-weight:600}.prio-low{color:var(--muted)}.overdue{color:var(--danger);font-weight:500}.task-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.task-row:last-child{border-bottom:0}.task-row .grow{flex:1;min-width:0}.task-row.done .title{color:var(--muted);text-decoration:line-through}.check-btn{cursor:pointer;width:20px;height:20px;color:var(--accent);background:#fff;border:1.5px solid #b9b4aa;border-radius:5px;flex:none;place-items:center;margin-top:2px;padding:0;font-size:13px;display:grid}.check-btn.on{background:var(--accent-soft);border-color:var(--accent)}details.add summary{cursor:pointer;color:var(--accent);font-weight:500;list-style:none}details.add summary::-webkit-details-marker{display:none}details.add[open] summary{margin-bottom:12px}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.tabs a{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px}.tabs a.on{color:var(--ink);border-color:var(--accent);font-weight:500}.tabs a:hover{color:var(--ink);text-decoration:none}
