:root{--bg:#0b0b0f;--bg-elev:#14141b;--bg-elev-2:#1c1c26;--border:#2a2a37;--border-strong:#3a3a4a;--text:#e8e8ef;--text-dim:#a0a0b0;--text-faint:#6b6b7b;--accent:#7c6cff;--accent-dim:#4a4270;--danger:#ff5c72;--ok:#3ecf8e;--warn:#f5a623;--radius:12px;--radius-sm:8px;--shadow:0 8px 30px rgba(0,0,0,0.45);--col-width:300px}*{box-sizing:border-box}body,html{padding:0;margin:0;height:100%;overscroll-behavior:none}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,input,textarea{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100dvh}.topbar{display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid var(--border);background:var(--bg-elev);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar h1{font-size:15px;font-weight:650;margin:0;letter-spacing:.2px}.topbar .spacer{flex:1 1}.icon-btn{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;color:var(--text-dim);transition:background .15s,color .15s,border-color .15s}.icon-btn:hover{background:var(--border);color:var(--text)}.app-title{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:2px 4px 2px 0;margin:0;border-radius:var(--radius-sm);transition:opacity .15s}.app-title:hover{opacity:.8}.app-title .app-title-text{font-size:15px;font-weight:650;letter-spacing:.2px}.app-title .app-title-caret{font-size:10px;color:var(--text-faint);line-height:1}.menu-sheet{position:fixed;z-index:50;left:0;right:0;bottom:0;background:var(--bg-elev);border-top:1px solid var(--border);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;max-width:560px;margin:0 auto;animation:slide-up .2s ease}@keyframes slide-up{0%{transform:translateY(24px);opacity:.6}}.menu-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.menu-head h2{font-size:14px;font-weight:650;margin:0;color:var(--text-dim)}.menu-body{display:flex;flex-direction:column;padding:8px 8px max(12px,env(safe-area-inset-bottom));gap:4px}.menu-row{display:flex;align-items:center;gap:10px;padding:10px 8px}.sync-row{justify-content:space-between}.menu-item{display:flex;flex-direction:column;gap:2px;padding:12px 8px;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;transition:background .15s}.menu-item:hover{background:var(--bg-elev-2)}.menu-sub{font-size:12px;color:var(--text-faint)}.logout-row{border-top:1px solid var(--border);margin-top:4px;padding-top:12px}.board{flex:1 1;display:flex;gap:14px;padding:16px 16px max(16px,env(safe-area-inset-bottom));overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity}.column{flex:0 0 var(--col-width);width:var(--col-width);display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);max-height:100%;scroll-snap-align:start}.column.drop-over{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.column-head{display:flex;align-items:center;gap:8px;padding:12px 14px 8px}.column-head .title{font-size:13px;font-weight:650;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim)}.column-head .count{font-size:12px;color:var(--text-faint);background:var(--bg-elev-2);border-radius:999px;padding:1px 8px}.column-list{flex:1 1;overflow-y:auto;padding:4px 10px 10px;display:flex;flex-direction:column;gap:8px;min-height:40px}.add-card{margin:0 10px 12px;padding:9px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:transparent;color:var(--text-faint);font-size:13px;transition:color .15s,border-color .15s}.add-card:hover{color:var(--text);border-color:var(--accent)}.card{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 12px;cursor:-webkit-grab;cursor:grab;transition:border-color .15s,transform .05s;touch-action:manipulation}.card:hover{border-color:var(--border-strong)}.card:active{cursor:-webkit-grabbing;cursor:grabbing}.card.dragging{opacity:.4}.card .card-title{font-size:14px;font-weight:550;line-height:1.35;word-break:break-word}.card .card-title.untitled{color:var(--text-faint);font-style:italic;font-weight:450}.card .card-preview{margin-top:5px;font-size:12.5px;color:var(--text-dim);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .card-meta{margin-top:8px;display:flex;align-items:center;gap:8px}.badge-dot{width:6px;height:6px;border-radius:50%;flex:0 0 auto}.badge-dot.dirty{background:var(--warn)}.badge-dot.synced{background:var(--ok)}.card .insight-chip{font-size:11px;color:var(--accent);background:var(--accent-dim);border-radius:999px;padding:1px 7px}.sync-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-dim);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:999px;padding:4px 10px}.sync-badge .dot{width:7px;height:7px;border-radius:50%}.sync-badge .dot.online{background:var(--ok)}.sync-badge .dot.offline{background:var(--text-faint)}.sync-badge .dot.pending{background:var(--warn);animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.35}}.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.sheet{position:fixed;z-index:50;background:var(--bg-elev);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:var(--shadow);right:0;top:0;bottom:0;width:min(560px,100%);animation:slide-in .2s ease}@keyframes slide-in{0%{transform:translateX(20px);opacity:.6}}.sheet-head{display:flex;align-items:center;gap:10px;padding:max(14px,env(safe-area-inset-top)) 16px 14px;border-bottom:1px solid var(--border)}.sheet-head select{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:13px}.sheet-body{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px}.title-input{width:100%;background:transparent;border:none;outline:none;font-size:22px;font-weight:650;padding:0}.title-input::placeholder{color:var(--text-faint)}.body-textarea{width:100%;min-height:220px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:15px;line-height:1.6;resize:none;outline:none}.body-textarea:focus{border-color:var(--accent-dim)}.body-readonly{white-space:pre-wrap;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:15px;line-height:1.6;color:var(--text-dim)}.insights{border-top:1px solid var(--border);padding-top:14px}.insights h3{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-faint);margin:0 0 10px}.insight{background:var(--bg-elev-2);border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px}.insight .kind{font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.insight .content{margin-top:5px;font-size:13.5px;line-height:1.5;color:var(--text);white-space:pre-wrap}.sheet-foot{display:flex;gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border)}.btn{border-radius:var(--radius-sm);padding:9px 14px;font-size:13px;border:1px solid var(--border);background:var(--bg-elev-2);transition:background .15s}.btn:hover{background:var(--border)}.btn.danger{color:var(--danger);border-color:transparent;background:transparent;margin-left:auto}.btn.danger:hover{background:rgba(255,92,114,.12)}.btn.primary{background:var(--accent);border-color:var(--accent);color:white}.btn.primary:hover{filter:brightness(1.08)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(360px,100%);background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px}.login-card h1{font-size:20px;margin:0 0 4px}.login-card p{color:var(--text-dim);font-size:13px;margin:0 0 20px}.login-card input{width:100%;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 12px;font-size:15px;outline:none;margin-bottom:12px}.login-card input:focus{border-color:var(--accent-dim)}.login-card .error{color:var(--danger);font-size:13px;margin-bottom:12px}.center-state{flex:1 1;display:grid;place-items:center;padding:40px;text-align:center;color:var(--text-dim)}.center-state .big{font-size:15px;color:var(--text);margin-bottom:6px}.col-empty{color:var(--text-faint);font-size:12.5px;text-align:center;padding:14px 8px;border:1px dashed var(--border);border-radius:var(--radius-sm)}@media (max-width:640px){:root{--col-width:82vw}}.card{border-left-width:3px;border-left-style:solid}.card.tone-neutral{border-left-color:var(--border)}.card.tone-fresh{border-left-color:var(--ok)}.card.tone-aging{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 6%,var(--bg-elev-2))}.card.tone-stale{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 9%,var(--bg-elev-2))}.tag-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-chip{font-size:11px;line-height:1;padding:4px 8px;border-radius:999px;color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border)}button.tag-chip{cursor:pointer}.tag-chip.selected{color:var(--accent);background:var(--accent-dim);border-color:var(--accent)}.tag-chip.add{border-style:dashed;color:var(--text-faint)}.tag-input{padding:3px 8px;font-size:11px;width:100px;outline:none}.mode-toggle,.tag-input{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:999px}.mode-toggle{display:inline-flex;padding:2px;margin-left:6px}.mode-toggle button{border:0;background:transparent;color:var(--text-dim);font-size:12px;padding:5px 12px;border-radius:999px}.mode-toggle button.active{background:var(--accent);color:#fff}.dump{flex:1 1;overflow-y:auto;padding:16px 16px max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;max-width:720px;margin:0 auto;width:100%}.dump-composer{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.dump-composer textarea{width:100%;min-height:84px;background:transparent;border:0;outline:none;resize:none;font-size:16px;line-height:1.5}.dump-composer .row{display:flex;align-items:center;gap:10px;margin-top:8px}.meta-panel{border-top:1px solid var(--border);padding-top:14px;display:grid;grid-template-columns:max-content 1fr;grid-gap:6px 12px;gap:6px 12px}.meta-panel h3{grid-column:1/-1;font-size:12px;letter-spacing:.6px;margin:0 0 4px}.meta-panel .k,.meta-panel h3{text-transform:uppercase;color:var(--text-faint)}.meta-panel .k{font-size:11px;letter-spacing:.5px}.meta-panel .v{font-size:13.5px;color:var(--text);line-height:1.45}.settings{max-width:720px;margin:0 auto;width:100%;padding:20px;display:flex;flex-direction:column;gap:20px}.settings textarea{width:100%;min-height:160px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:15px;line-height:1.6;resize:vertical;outline:none}.settings textarea:focus{border-color:var(--accent-dim)}.settings .k{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint)}.btn.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger)}