*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.4}button,input,textarea,select{font:inherit;color:inherit}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--blue:#0c66e4;--blue-dark:#05c;--on-blue:#fff;--board-bg:#1d5fa8;--board-bg-2:#2c7bd1;--page-bg:#f4f5f7;--surface:#fff;--list-bg:#f1f2f4;--card-bg:#fff;--input-bg:#fff;--text:#172b4d;--text-muted:#626f86;--border:#dcdfe4;--subtle:#091e420f;--hover:#091e4214;--hover-strong:#091e421f;--placeholder:#091e421f;--backdrop:#091e428c;--danger:#c9372c;--danger-bg:#ffeceb;--danger-text:#ae2e24;--warning-bg:#f8e6a0;--warning-text:#533f04;--toast-bg:#ae2e24;--logo-bg:#cfe1fd;--priority-urgent:#c9372c;--priority-urgent-fg:#fff;--focus-color:#388bff;--focus:0 0 0 2px var(--focus-color);--shadow-card:0 1px 1px #091e4240, 0 0 1px #091e424f;--shadow-raised:0 12px 24px #091e424d, 0 0 1px #091e424f;--shadow-modal:0 8px 24px #091e424d;--radius:8px;--list-width:272px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--blue:#579dff;--blue-dark:#85b8ff;--on-blue:#1d2125;--board-bg:#0f2c52;--board-bg-2:#19467d;--page-bg:#1d2125;--surface:#282e33;--list-bg:#101204;--card-bg:#22272b;--input-bg:#1d2125;--text:#dee4ea;--text-muted:#9fadbc;--border:#3b444c;--subtle:#ffffff0f;--hover:#ffffff14;--hover-strong:#ffffff24;--placeholder:#ffffff14;--backdrop:#0009;--danger:#f87168;--danger-bg:#f8716829;--danger-text:#fd9891;--warning-bg:#533f04;--warning-text:#f8e6a0;--logo-bg:#579dff33;--priority-urgent:#f87168;--priority-urgent-fg:#1d2125;--focus-color:#85b8ff;--shadow-card:0 1px 1px #00000080, 0 0 0 1px #ffffff0a;--shadow-raised:0 12px 24px #0000008c, 0 0 0 1px #ffffff0f;--shadow-modal:0 8px 24px #00000080}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{flex-direction:column;min-height:100%;display:flex}.app--board{background:linear-gradient(135deg, var(--board-bg), var(--board-bg-2));height:100%}.app-header{background:var(--surface);border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:12px;height:48px;padding:0 16px;display:flex}.app--board .app-header{background:#0000003d;border-bottom:none}.app-logo{color:var(--text);border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:16px;font-weight:700;text-decoration:none;display:inline-flex}.app--board .app-logo{color:#fff}.app-logo:hover{background:var(--hover)}.app--board .app-logo:hover{background:#fff3}.app-logo-mark{background:linear-gradient(var(--blue), var(--blue)) 3px 3px / 5px 12px no-repeat, linear-gradient(var(--blue), var(--blue)) 10px 3px / 5px 7px no-repeat, var(--logo-bg);border-radius:4px;width:18px;height:18px}.app--board .app-logo-mark{background:linear-gradient(#fff,#fff) 3px 3px/5px 12px no-repeat,linear-gradient(#fff,#fff) 10px 3px/5px 7px no-repeat,#ffffff59}.theme-toggle{background:var(--subtle);border-radius:6px;gap:2px;padding:2px;display:inline-flex}.theme-toggle-option{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;font-size:16px;display:grid}.theme-toggle-option:hover{color:var(--text)}.theme-toggle-option[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0003}.app--board .theme-toggle{background:#ffffff29}.app--board .theme-toggle-option{color:#fffc}.app--board .theme-toggle-option:hover,.app--board .theme-toggle-option[aria-pressed=true]{color:#fff}.app--board .theme-toggle-option[aria-pressed=true]{background:#ffffff4d}.app-main{flex-direction:column;flex:1;min-height:0;display:flex}.muted{color:var(--text-muted);margin:0}.btn{cursor:pointer;background:var(--subtle);border:none;border-radius:4px;justify-content:center;align-items:center;padding:6px 12px;font-weight:500;text-decoration:none;display:inline-flex}.btn-small{padding:4px 8px;font-size:13px}.btn:focus-visible,.icon-button:focus-visible,.add-button:focus-visible,.card:focus-visible,.board-tile:focus-visible,.editable-title button:focus-visible,.theme-toggle-option:focus-visible,.tag-toggle:focus-visible{box-shadow:var(--focus);outline:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);color:var(--on-blue)}.btn-primary:hover:not(:disabled){background:var(--blue-dark)}.btn-ghost{background:0 0}.btn-ghost:hover{background:var(--hover)}.btn-danger{color:var(--danger);background:0 0;margin-left:auto}.btn-danger:hover{background:var(--danger-bg)}.btn-danger-text{color:var(--danger)}.btn-on-dark{color:#fff;background:#fff3}.btn-on-dark:hover{background:#ffffff4d}.icon-button{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;font-size:20px;line-height:1}.icon-button:hover{background:var(--hover-strong);color:var(--text)}.add-button{border-radius:var(--radius);width:100%;color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:8px 10px;font-weight:500;display:flex}.add-button:hover{background:var(--hover);color:var(--text)}.inline-form input{border-radius:var(--radius);background:var(--card-bg);width:100%;box-shadow:var(--shadow-card);border:none;padding:8px 10px}.inline-form input:focus{box-shadow:var(--focus);outline:none}.inline-form-actions{gap:4px;margin-top:8px;display:flex}.editable-title{flex:1;min-width:0;margin:0}.editable-title button{max-width:100%;font-weight:inherit;text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:none;border-radius:4px;padding:4px 8px;display:block}.editable-title-input{background:var(--input-bg);min-width:0;color:var(--text);box-shadow:var(--focus);border:none;border-radius:4px;flex:1;padding:4px 8px;font-weight:600}.editable-title-input:focus{outline:none}.boards-page{width:100%;max-width:1040px;margin:0 auto;padding:32px 16px}.page-title{margin:0 0 16px;font-size:20px}.app-header-actions{align-items:center;gap:8px;min-width:0;display:flex}.app-user{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:30vw;font-size:13px;overflow:hidden}.app--board .app-user{color:#ffffffd9}.auth-page{width:100%;max-width:420px;margin:0 auto;padding:48px 16px}.auth-button{width:100%;min-height:40px}.auth-signup{border-top:1px solid var(--border);margin-top:32px;padding-top:24px}.auth-heading{margin:0 0 12px;font-size:16px}.auth-note{margin-top:12px;font-size:13px}.board-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.board-tile{border-radius:var(--radius);background:linear-gradient(135deg, var(--board-bg), var(--board-bg-2));color:#fff;overflow-wrap:anywhere;height:96px;padding:10px 12px;font-size:16px;font-weight:700;text-decoration:none;transition:filter .1s;display:block}.board-tile:hover{filter:brightness(.92)}.board-tile-new.add-button{background:var(--subtle);justify-content:center;height:96px}.board-tile-new.add-button:hover{background:var(--hover-strong)}.board-tile-new.inline-form{border-radius:var(--radius);background:var(--surface);min-height:96px;box-shadow:var(--shadow-card);padding:8px}.board-tile-new.inline-form input{box-shadow:inset 0 0 0 1px var(--border)}.banner{border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:16px;padding:10px 12px;display:flex}.banner-error{background:var(--danger-bg);color:var(--danger-text)}.board{flex-direction:column;flex:1;min-height:0;display:flex}.board-loading,.board-missing{color:#fff;padding:32px 16px}.board-missing p{margin:0 0 12px;font-size:16px}.board-bar{color:#fff;background:#0000001f;flex:none;align-items:center;gap:12px;padding:12px 16px;display:flex}.board-title{font-size:18px;font-weight:700}.board-title.editable-title button:hover{background:#fff3}.board-title.editable-title-input{color:var(--text);flex:0 360px;font-size:18px}.board-canvas{flex:1;align-items:flex-start;gap:12px;min-height:0;padding:12px 16px 16px;display:flex;overflow:auto hidden}.list{width:var(--list-width);background:var(--list-bg);border-radius:12px;flex-direction:column;flex:none;max-height:100%;padding:8px;display:flex;box-shadow:0 1px 1px #091e4240}.list--drop-target{box-shadow:0 0 0 2px #fffc,0 1px 1px #091e4240}.list-new{box-shadow:none;background:#ffffff3d}.list-new>.add-button{color:#fff}.list-new>.add-button:hover{color:#fff;background:#fff3}.list-new:has(.inline-form){background:var(--list-bg)}.list-header{align-items:flex-start;gap:4px;padding:0 0 6px;display:flex}.list-title{font-size:14px;font-weight:600}.list-title.editable-title button{width:100%;min-height:32px}.list-title.editable-title button:hover{background:var(--hover)}.list-cards{flex-direction:column;gap:8px;min-height:4px;margin:0 -2px;padding:2px;display:flex;overflow-y:auto}.list-add-card{margin-top:8px}.card{border-radius:var(--radius);background:var(--card-bg);box-shadow:var(--shadow-card);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;flex-direction:column;align-items:stretch;gap:6px;padding:8px 10px;display:flex;position:relative}.card:hover{box-shadow:0 0 0 2px var(--focus-color)}.card-title{overflow-wrap:anywhere}.card-labels{flex-wrap:wrap;gap:4px;display:flex}.card-badges{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.card-badge,.priority,.due{align-items:center;gap:4px;display:inline-flex}.card-badge,.priority{font-size:14px}.priority--high{color:var(--text)}.priority--urgent{color:var(--priority-urgent)}.due{border-radius:4px;padding:1px 6px;font-weight:500}.due--overdue{background:var(--danger-bg);color:var(--danger-text)}.due--today,.due--soon{background:var(--warning-bg);color:var(--warning-text)}.tag{white-space:nowrap;text-overflow:ellipsis;background:var(--tag-light);max-width:100%;min-height:20px;color:var(--tag-dark);border:none;border-radius:4px;padding:0 8px;font-size:12px;font-weight:600;line-height:20px;display:inline-block;overflow:hidden}:root[data-theme=dark] .tag{background:var(--tag-dark);color:var(--tag-light)}.tag--green{--tag-light:#baf3db;--tag-dark:#164b35;--tag-bold:#4bce97}.tag--yellow{--tag-light:#f8e6a0;--tag-dark:#533f04;--tag-bold:#f5cd47}.tag--orange{--tag-light:#fedec8;--tag-dark:#702e00;--tag-bold:#fea362}.tag--red{--tag-light:#ffd5d2;--tag-dark:#5d1f1a;--tag-bold:#f87168}.tag--purple{--tag-light:#dfd8fd;--tag-dark:#352c63;--tag-bold:#9f8fef}.tag--blue{--tag-light:#cce0ff;--tag-dark:#09326c;--tag-bold:#579dff}.tag--sky{--tag-light:#c6edfb;--tag-dark:#164555;--tag-bold:#6cc3e0}.tag--lime{--tag-light:#d3f1a7;--tag-dark:#37471f;--tag-bold:#94c748}.tag--pink{--tag-light:#fdd0ec;--tag-dark:#50253f;--tag-bold:#e774bb}.tag--gray{--tag-light:#dcdfe4;--tag-dark:#2c333a;--tag-bold:#8c9bab}.label-toggles{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tag-toggle{cursor:pointer;min-height:28px;padding:0 10px;font-size:13px;line-height:28px}.tag-toggle[aria-pressed=false]{opacity:.5}.tag-toggle[aria-pressed=false]:hover{opacity:.8}.tag-toggle[aria-pressed=true]:before{content:"✓ "}.label-manager{border-radius:var(--radius);background:var(--subtle);margin-top:8px;padding:8px}.label-manager-list{flex-direction:column;gap:4px;margin:0 0 4px;padding:0;list-style:none;display:flex}.label-manager-row{align-items:center;gap:4px;display:flex}.label-manager-row .tag{flex:1;min-width:0;min-height:28px;line-height:28px}.label-form{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);flex-direction:column;gap:8px;padding:8px;display:flex}.label-form-preview .tag{min-height:28px;line-height:28px}.swatches{border:none;flex-wrap:wrap;gap:6px;margin:0;padding:0;display:flex}.swatch{background:var(--tag-bold);cursor:pointer;border-radius:4px;width:36px;height:28px;position:relative}.swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.swatch:has(input:checked){box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}.swatch:has(input:focus-visible){outline:2px solid var(--focus-color);outline-offset:4px}.card--dragging{display:none}.card--preview{z-index:30;pointer-events:none;box-shadow:var(--shadow-raised);will-change:transform;position:fixed;top:0;left:0}body.is-dragging-card,body.is-dragging-card *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}body.is-dragging-card .board-canvas{scroll-snap-type:none}.card-placeholder{border-radius:var(--radius);background:var(--placeholder);min-height:36px}.modal-backdrop{z-index:10;background:var(--backdrop);justify-content:center;align-items:flex-start;padding:48px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);width:100%;max-width:560px;box-shadow:var(--shadow-modal);border-radius:12px;padding:16px 20px 20px}.modal-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.save-status{color:var(--text-muted);margin-left:auto;font-size:12px}.save-status--error{color:var(--danger)}.field-error{color:var(--danger);margin:-8px 0 14px;font-size:12px}.field .field-title[aria-invalid=true]{border-color:var(--danger)}.field{margin-bottom:14px;display:block}.field>span,.field-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.field input,.field textarea,.field select{border:1px solid var(--border);background:var(--input-bg);border-radius:4px;width:100%;min-height:36px;padding:8px 10px}.field .field-title{font-size:16px;font-weight:600}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-inline{align-items:center;gap:6px;display:flex}.field-inline input{flex:1;min-width:0}.field textarea{resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--focus-color);box-shadow:var(--focus);outline:none}.modal-actions{gap:8px;display:flex}.toast{z-index:20;border-radius:var(--radius);background:var(--toast-bg);color:#fff;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:10px 8px 10px 14px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000040}.toast-close{color:#fff;cursor:pointer;background:0 0;border:none;font-size:18px}@media (width<=600px){:root{--list-width:85vw}.board-canvas{scroll-snap-type:x mandatory;padding-left:12px;padding-right:12px}.list{scroll-snap-align:center}.board-bar{padding:8px 12px}.board-title{font-size:16px}.modal-backdrop{padding:16px 8px}.modal-actions{flex-wrap:wrap}.field-row{grid-template-columns:1fr;gap:0}input,textarea,select{font-size:16px}}
