:root{--bg: #f2f4f7;--header: rgba(255, 255, 255, .85);--list-bg: #e9ebf0;--card-bg: #ffffff;--text: #1f2328;--muted: #6b7280;--border: #d7dbe0;--accent: #4f6ef7;--danger: #e5484d;--shadow: 0 1px 2px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .18)}@media(prefers-color-scheme:dark){:root{--bg: #16181d;--header: rgba(29, 32, 38, .85);--list-bg: #22252c;--card-bg: #2a2e36;--text: #e6e8eb;--muted: #9aa2ad;--border: #363b45;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}.app{height:100vh;display:flex;flex-direction:column}button{font:inherit;color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer}button:hover{border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;border-color:transparent;color:var(--muted)}button.ghost:hover{color:var(--text);border-color:var(--border)}button.danger{color:var(--danger);border-color:var(--danger);background:transparent}button.confirm-armed{background:var(--danger);border-color:var(--danger);color:#fff}button.big{font-size:16px;padding:12px 20px}input,textarea,select{font:inherit;color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:6px 10px}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--header);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);flex-wrap:wrap}.logo{font-size:18px}.search{width:200px}.spacer{flex:1}.name-form{display:flex;gap:6px}.save-indicator{color:var(--muted);font-size:13px}.save-error{color:#fff;background:var(--danger);border-color:var(--danger)}.board{flex:1;display:flex;align-items:flex-start;gap:12px;padding:16px;overflow-x:auto;overflow-y:hidden}.list{width:280px;min-width:280px;max-height:100%;display:flex;flex-direction:column;background:var(--list-bg);border-radius:12px;padding:8px}.list.dragging{opacity:.35}.overlay-list{box-shadow:var(--shadow-lg);cursor:grabbing}.list-header{display:flex;align-items:center;gap:8px;padding:4px 6px 8px;cursor:grab}.list-header strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-header input{flex:1;min-width:0;padding:2px 6px}.count{color:var(--muted);font-size:12px}.cards{flex:1;min-height:40px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding:2px}.card{background:var(--card-bg);border:1px solid transparent;border-radius:8px;padding:8px 10px;box-shadow:var(--shadow);cursor:pointer}.card:hover{border-color:var(--accent)}.card.placeholder{opacity:.35}.card.dimmed{opacity:.25}.card.overlay{width:264px;box-shadow:var(--shadow-lg);transform:rotate(2deg);cursor:grabbing}.card-title{line-height:1.35;overflow-wrap:anywhere}.label-bars{display:flex;gap:4px;margin-bottom:6px}.label-bar{width:32px;height:6px;border-radius:3px}.card-meta{display:flex;align-items:center;gap:6px;margin-top:6px}.due{font-size:12px;padding:1px 6px;border-radius:6px}.due.overdue{background:var(--danger);color:#fff}.due.today{background:#ffb224;color:#4d3800}.due.upcoming{border:1px solid var(--border);color:var(--muted)}.has-desc{color:var(--muted);font-size:13px}.add-card{margin-top:6px;text-align:left;background:transparent;border-color:transparent;color:var(--muted)}.add-card:hover{color:var(--text);border-color:var(--border)}.add-card-input{margin-top:6px;resize:none;min-height:56px}.add-list-btn{min-width:200px;padding:10px;background:transparent;border-style:dashed;color:var(--muted)}.add-list-form{display:flex;gap:6px;min-width:260px;background:var(--list-bg);border-radius:12px;padding:8px}.add-list-form input{flex:1;min-width:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:10}.modal{width:100%;max-width:540px;max-height:84vh;overflow-y:auto;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-lg)}.modal-title{font-size:17px;font-weight:600}.field-label{margin-top:8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.label-picker{display:flex;flex-wrap:wrap;gap:6px}.label-chip{color:#fff;border:none;border-radius:999px;padding:4px 10px;font-size:12px;opacity:.45}.label-chip.active{opacity:1}.due-row{display:flex;align-items:center;gap:8px}.modal-desc{resize:vertical}.modal-footer{display:flex;justify-content:space-between;margin-top:10px}.centered{flex:1;display:flex;align-items:center;justify-content:center}.muted{color:var(--muted)}.login-gate{height:100vh;display:flex;align-items:center;justify-content:center}.login-gate form{display:flex;flex-direction:column;gap:10px;width:260px;background:var(--list-bg);border:1px solid var(--border);border-radius:14px;padding:24px;text-align:center}.login-gate h1{margin:0 0 6px;font-size:20px}.login-error{margin:0;color:var(--danger);font-size:13px}
