:root{--bg:#faf7f2;--surface:#fff;--surface-soft:#f4efe7;--ink:#2e2a25;--muted:#8a847b;--faint:#b7b0a5;--border:#e9e1d5;--border-strong:#d9cfbf;--accent:#9a6b3f;--accent-soft:#f0e4d3;--danger:#b0553f;--ok:#7d9b76;--radius:10px;--shadow:0 1px 2px #2e2a250f;--shadow-lg:0 12px 32px #2e2a2524;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-size:15px;line-height:1.5}button,select,input,textarea,.card{-webkit-tap-highlight-color:transparent}.card:active{border-color:var(--border-strong)}.column-add:active,.btn-ghost:active{background:var(--surface-soft)}.btn-primary:active{opacity:.85}a{color:var(--accent)}button{font-family:inherit}.shell{max-width:1280px;margin:0 auto;padding:0 20px 64px}.topbar{justify-content:space-between;align-items:center;padding:18px 0 14px;display:flex}.brand{align-items:baseline;gap:10px;display:flex}.brand-name{letter-spacing:-.01em;font-size:20px;font-weight:650}.brand-sub{color:var(--muted);font-size:13px}.topbar-right{align-items:center;gap:12px;display:flex}.sync{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;display:flex}.sync-dot{background:var(--ok);border-radius:50%;width:7px;height:7px}.sync-dot.syncing{background:var(--faint)}.user-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12.5px;overflow:hidden}.btn-ghost{border:1px solid var(--border);color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;padding:7px 12px;font-size:13px}.btn-ghost:hover{border-color:var(--border-strong);background:var(--surface)}.btn-primary{background:var(--ink);color:#fdfbf8;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:550}.btn-primary:hover{background:#453e36}.btn-primary:disabled{opacity:.55;cursor:default}.quickadd{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;gap:8px;margin-bottom:20px;padding:8px;display:flex}.quickadd input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:15px}.quickadd input::placeholder{color:var(--faint)}.board{grid-template-columns:repeat(4,1fr);align-items:start;gap:14px;display:grid}.column{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;min-height:180px;padding:10px}.column.drag-over{border-color:var(--accent);background:#f3ece0}.column-head{justify-content:space-between;align-items:center;padding:4px 6px 10px;display:flex}.column-title{text-transform:uppercase;letter-spacing:.06em;color:#6d675e;align-items:center;gap:8px;font-size:12.5px;font-weight:650;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.dot-todo{background:#a8a29e}.dot-in_progress{background:#c19a5b}.dot-blocked{background:#c26e5a}.dot-done{background:#7d9b76}.count{color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:0 8px;font-size:12px}.column-add{border:1px dashed var(--border-strong);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;margin-top:8px;padding:8px;font-size:13px}.column-add:hover{color:var(--ink);border-color:var(--muted)}.column-empty{color:var(--faint);text-align:center;padding:18px 0 10px;font-size:13px}.sortable{touch-action:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);cursor:pointer;margin-bottom:8px;padding:11px 12px;transition:border-color .15s}.card:hover{border-color:var(--border-strong)}.card.dragging{opacity:.5}.drag-preview{box-shadow:var(--shadow-lg);cursor:grabbing;margin:0}.card-title{overflow-wrap:anywhere;margin:0 0 6px;font-size:14px;font-weight:550;line-height:1.4}.card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.pill{background:var(--surface-soft);border:1px solid var(--border);border-radius:20px;align-items:center;gap:5px;padding:1px 8px;font-size:12px;display:inline-flex}.pill.overdue{color:var(--danger);background:#faf0ec;border-color:#e5c4b9}.pill.today{color:var(--accent);background:#faf3e7;border-color:#e2cdaa}.pri{border-radius:50%;width:7px;height:7px;display:inline-block}.pri-low{background:#b7b0a5}.pri-medium{background:#c19a5b}.pri-high{background:#c26e5a}.tag{color:#6d675e;background:#f2ede4;border-radius:5px;padding:1px 6px;font-size:11.5px}.overlay{z-index:50;background:#2e2a2559;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:14px;width:100%;max-width:560px;max-height:90vh;padding:22px;overflow-y:auto}.modal h2{margin:0 0 14px;font-size:17px}.field{margin-bottom:13px}.field label{color:#6d675e;margin-bottom:5px;font-size:12.5px;font-weight:600;display:block}.field input,.field textarea,.field select{border:1px solid var(--border);width:100%;color:var(--ink);background:#fffdfa;border-radius:8px;padding:9px 11px;font-family:inherit;font-size:14px}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);border-radius:8px;-webkit-box-shadow:inset 0 0 0 40px #fffdfa}.field textarea{resize:vertical;min-height:90px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.seg{gap:6px;display:flex}.seg button{border:1px solid var(--border);cursor:pointer;color:var(--muted);background:#fffdfa;border-radius:8px;flex:1;padding:8px;font-size:13px}.seg button.active{border-color:var(--ink);color:var(--ink);background:var(--surface-soft);font-weight:600}.tag-input-row{gap:8px;display:flex}.tag-list{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.tag-chip{background:#f2ede4;border-radius:6px;align-items:center;gap:6px;padding:3px 4px 3px 9px;font-size:12.5px;display:inline-flex}.tag-chip button{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:2px 6px;font-size:14px;line-height:1}.check-row{border-bottom:1px solid var(--surface-soft);align-items:center;gap:9px;padding:7px 0;display:flex}.check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.check-row span{flex:1;font-size:14px}.check-row span.done{color:var(--muted);text-decoration:line-through}.check-row button{color:var(--faint);cursor:pointer;background:0 0;border:none;font-size:15px}.check-row button:hover{color:var(--danger)}.progress{background:var(--surface-soft);border-radius:4px;height:4px;margin:4px 0 10px;overflow:hidden}.progress i{background:var(--ok);border-radius:4px;height:100%;transition:width .2s;display:block}.modal-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:18px;display:flex}.modal-actions .right{gap:8px;display:flex}.btn-danger{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:8px;font-size:13.5px}.timestamps{color:var(--faint);margin-top:14px;font-size:12px}.form-error{color:var(--danger);overflow-wrap:anywhere;background:#faf0ec;border:1px solid #e5c4b9;border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:13px}.login-wrap{text-align:center;max-width:400px;margin:80px auto;padding:0 20px}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:32px 28px}.login-brand{justify-content:center;gap:6px;margin-bottom:14px;display:flex}.login-brand .status-dot{width:9px;height:9px}.login-card h1{letter-spacing:-.01em;margin:0 0 4px;font-size:24px}.login-card p{color:var(--muted);margin:0 0 20px;font-size:14px}.login-mode{margin-bottom:16px}.login-submit{width:100%;margin-top:2px;padding:11px}.login-hint{color:var(--muted);margin:12px 0 0;font-size:12.5px}.pw-wrap{position:relative}.pw-wrap input{padding-right:66px}.pw-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 9px;font-size:13px;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--ink);background:var(--surface-soft)}.setup-note{border:1px solid var(--border);color:#6d675e;background:#fffdfa;border-radius:12px;max-width:560px;margin:24px auto;padding:16px 20px;font-size:13.5px}.setup-note code{background:var(--surface-soft);border-radius:5px;padding:1px 6px;font-size:12.5px}.mobile-group{display:none}@media (max-width:900px){.board{grid-template-columns:1fr 1fr}}@media (max-width:640px){.board{display:none}.mobile-group{display:block}.mobile-section{margin-bottom:18px}.shell{padding:0 14px 48px}.topbar{padding:14px 0 12px}.brand-sub,.user-email{display:none}.topbar-right{gap:8px}.brand-name{font-size:18px}.field input,.field textarea,.field select,.quickadd input,.status-picker select{font-size:16px}.quickadd{margin-bottom:14px}.quickadd input{padding:8px}.overlay{align-items:flex-end;padding:0}.modal{max-height:92dvh;padding-bottom:calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain;border-radius:16px 16px 0 0}.modal:before{content:"";background:var(--border-strong);border-radius:4px;width:36px;height:4px;margin:0 auto 14px;display:block}.row2{grid-template-columns:1fr}.check-row{padding:10px 0}.check-row input[type=checkbox]{width:20px;height:20px}.check-row button,.tag-chip button{padding:6px 10px}.column-add{padding:11px}.modal-actions{flex-wrap:wrap}.modal-actions .right{flex:1;display:flex}.modal-actions .right>*{flex:1}.login-wrap{margin:36px auto}.login-card{padding:26px 20px}}@media (min-width:641px){.status-picker{display:none}}.status-picker{margin-top:8px}.status-picker select{border:1px solid var(--border);background:var(--surface-soft);width:100%;color:var(--ink);border-radius:7px;padding:6px 8px;font-family:inherit;font-size:12.5px}
