:root{--bg:#f5f6f8;--surface:#fff;--text:#1a1a1a;--muted:#6b7280;--border:#e5e7eb;--accent:#2563eb;--ok:#16a34a;--err:#dc2626;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#101114;--surface:#1a1c21;--text:#f3f4f6;--muted:#9ca3af;--border:#2e303a;--accent:#60a5fa}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}.hello{min-height:100svh;padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.hello h1{letter-spacing:2px;margin:0;font-size:48px}.page{max-width:480px;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));flex-direction:column;gap:16px;margin:0 auto;display:flex}.page.wide{max-width:1120px}@media (width>=1000px){.page.wide{padding:24px 32px}}.card{overflow-x:auto}.topbar{justify-content:space-between;align-items:center;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.card h2{margin:0;font-size:18px}.error-card{border-color:var(--err)}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px}button:disabled{opacity:.6;cursor:default}button.ghost{color:var(--accent);border:1px solid var(--border);background:0 0}button.dev-user{background:var(--surface);color:var(--text);border:1px solid var(--border);text-align:left}.table{border-collapse:collapse;width:100%;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 6px}.table th{color:var(--muted);font-weight:500}tr.inactive td{color:var(--muted);text-decoration:line-through}.form{flex-direction:column;gap:12px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:14px;display:flex}.form input,.form select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px}.ok{color:var(--ok);font-weight:600}.err{color:var(--err);font-weight:600}.note{color:var(--muted);font-size:14px}.tabs{flex-wrap:wrap;gap:8px;display:flex}.tab{color:var(--text);border:1px solid var(--border);background:0 0}.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.row{flex-wrap:wrap;gap:12px;display:flex}.row label{flex:1;min-width:140px}.inline{align-items:center;gap:6px;display:inline-flex}button.small{padding:4px 10px;font-size:13px}.cat-group h3{align-items:center;gap:8px;margin:16px 0 6px;font-size:15px;display:flex}.badge{color:#fff;border-radius:6px;padding:2px 8px;font-size:12px}.badge.income{background:var(--ok)}.badge.expense{background:var(--accent)}.cat-list{margin:0;padding:0;list-style:none}.cat-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;display:flex}.cat-list li.inactive span{color:var(--muted);text-decoration:line-through}.balance-card{text-align:center;align-items:center}.balance-big{font-size:36px;font-weight:700}.actions{gap:10px;display:flex}.actions-inline{flex-wrap:wrap;gap:8px;display:flex}.actions button{flex:1;padding:14px;font-size:16px}.photo-upload{flex-direction:column;gap:8px;display:flex}.photo-btn{border:2px dashed var(--accent);text-align:center;cursor:pointer;color:var(--accent);border-radius:8px;padding:12px;display:inline-block}.photo-preview{object-fit:contain;border-radius:8px;max-width:100%;max-height:200px}button.linklike{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}optgroup{color:var(--text)}.attend-status{justify-content:center;gap:16px;padding:8px 0;font-weight:600;display:flex}.kanban{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=560px){.kanban{grid-template-columns:1fr}}.kanban-col{background:var(--bg);border:1px solid var(--border);border-radius:10px;min-height:100px;padding:10px}.kanban-col.done-col{border-color:var(--ok)}.kanban-head{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.kanban-head .count{color:var(--muted);background:var(--surface);border-radius:10px;padding:1px 8px;font-size:12px}.kanban-card{background:var(--surface);border:1px solid var(--border);cursor:grab;border-radius:8px;margin-bottom:8px;padding:10px}.kanban-card.overdue{border-color:var(--err)}.kanban-card.archived{opacity:.6}.kanban-title{margin-bottom:4px;font-weight:500}.kanban-actions{align-items:center;gap:6px;margin-top:8px;display:flex}.kanban-actions select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;flex:1;padding:4px;font-size:13px}.checklist{flex-direction:column;gap:8px;display:flex}.check-item{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:10px}.check-item.done{background:var(--accent-bg,#16a34a14);border-color:var(--ok)}.check-main{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check-main input{width:20px;height:20px;margin-top:3px}.check-item.done .check-title{color:var(--muted);text-decoration:line-through}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg)}.detail-grid{grid-template-columns:1fr 1fr;gap:16px;padding:8px 0;display:grid}@media (width<=640px){.detail-grid{grid-template-columns:1fr}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:12px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.stat-value{margin-top:4px;font-size:24px;font-weight:700}.period-tabs{margin-top:-6px}.barchart{flex-direction:column;gap:8px;display:flex}.bar-row{grid-template-columns:140px 1fr auto;align-items:center;gap:10px;font-size:14px;display:grid}.bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar-track{background:var(--bg);border-radius:6px;height:20px;overflow:hidden}.bar-fill{border-radius:6px;min-width:2px;height:100%}.bar-value{font-variant-numeric:tabular-nums;white-space:nowrap}@media (width<=560px){.bar-row{grid-template-columns:100px 1fr}.bar-value{text-align:right;grid-column:2;font-size:13px}}.code-box{letter-spacing:4px;text-align:center;background:var(--bg);border:2px dashed var(--accent);-webkit-user-select:all;user-select:all;border-radius:10px;padding:12px;font-size:28px;font-weight:700}
