:root{--bg:#f7f8fa;--surface:#fff;--text:#1a1d21;--text-muted:#5f6673;--border:#e3e6ea;--primary:#4f6df5;--primary-hover:#3d59d9;--danger:#d93d42;--danger-soft:#fdecec;--on-primary:#fff;--surface-hover:#f0f2f5;--column:#eef0f3;--primary-soft:#e8ecfe;--focus:#4f6df5;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--shadow-lg:0 8px 24px #10182829;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#14161a;--surface:#1d2025;--text:#eef0f2;--text-muted:#9aa1ab;--border:#2c3036;--primary:#7b93ff;--primary-hover:#97a9ff;--danger:#ff6b70;--danger-soft:#3a1d20;--on-primary:#0f1320;--surface-hover:#262a31;--column:#181b20;--primary-soft:#252c4a;--focus:#97a9ff;--shadow:0 1px 2px #0006;--shadow-lg:0 8px 24px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif}button{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:.4rem;padding:0 .9rem;font-size:.9rem;font-weight:500;line-height:1;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}button:hover{background:var(--surface-hover)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed;background:0 0}.btn-primary{background:var(--primary);color:var(--on-primary);border-color:#0000;font-weight:600}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.btn-danger:hover{background:var(--danger-soft);color:var(--danger)}.btn-sm{height:30px;padding:0 .7rem;font-size:.85rem}.icon-btn{width:28px;height:28px;padding:0;font-size:1.1rem}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:.5rem .75rem}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:1.5rem;width:220px;padding:1.5rem 1rem;display:flex}.brand{margin:0;font-size:1.25rem}.sidebar nav{flex-direction:column;gap:.25rem;display:flex}.nav-link{color:var(--text-muted);border-radius:8px;padding:.5rem .75rem;text-decoration:none}.nav-link.active,.nav-link:hover{background:var(--bg);color:var(--text)}.sidebar-footer{flex-direction:column;gap:1rem;margin-top:auto;display:flex}.theme-select{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.user-box{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.content{flex:1;min-width:0;padding:2rem}.content>section{max-width:900px}.content>section.board-page{max-width:none}.inline-form{gap:.5rem;margin-bottom:1.25rem;display:flex}.inline-form input{flex:1}.card-list{flex-direction:column;gap:.75rem;padding:0;list-style:none;display:flex}.card-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.5rem;padding:1rem;display:flex}.todo-lists{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.todo-list-card ul{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.hint{color:var(--text-muted);font-size:.9rem}.form-error{color:var(--danger)}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:1rem;width:320px;padding:2rem;display:flex}.auth-form label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.9rem;display:flex}.auth-form a{color:var(--primary);font-weight:500}.google-button{justify-content:center;min-height:44px;display:flex}.divider{color:var(--text-muted);align-items:center;gap:.75rem;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--border);flex:1}.page-loading{text-align:center;color:var(--text-muted);padding:2rem}textarea{resize:vertical}.board-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.board-tile{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;transition:border-color .15s,transform .15s;position:relative}.board-tile:hover{border-color:var(--primary);transform:translateY(-1px)}.board-tile-link{min-height:96px;color:var(--text);flex-direction:column;gap:.4rem;padding:1.1rem 2.75rem 1.1rem 1.1rem;text-decoration:none;display:flex}.board-tile-delete{position:absolute;top:.6rem;right:.6rem}.board-header{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.board-header h2{margin:.25rem 0 0}.back-link{color:var(--text-muted);font-size:.9rem;text-decoration:none}.back-link:hover{color:var(--text)}.badge{background:var(--primary-soft);color:var(--text);border-radius:999px;padding:.25rem .6rem;font-size:.8rem}.kanban{align-items:flex-start;gap:1rem;padding-bottom:1rem;display:flex;overflow-x:auto}.kanban-column{background:var(--column);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:0 0 280px;gap:.5rem;max-height:calc(100vh - 170px);padding:.75rem;display:flex}.kanban-column-header{align-items:center;gap:.5rem;min-height:32px;padding:0 .25rem;display:flex}.kanban-column-title{cursor:text;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.count{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:0 .5rem;font-size:.8rem;line-height:1.5}.column-actions{opacity:0;gap:.1rem;margin-left:auto;transition:opacity .15s;display:flex}.kanban-column:hover .column-actions,.column-actions:focus-within{opacity:1}.kanban-cards{flex-direction:column;gap:.5rem;min-height:48px;padding:2px;display:flex;overflow-y:auto}.kanban-empty{text-align:center;color:var(--text-muted);border:1px dashed var(--border);border-radius:8px;margin:0;padding:.9rem;font-size:.85rem}.kanban-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);cursor:grab;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;word-break:break-word;border-radius:8px;padding:.65rem 2rem .65rem .75rem;position:relative}.kanban-card:hover{border-color:var(--primary)}.kanban-card.is-dragging{opacity:.35}.kanban-card.is-overlay{cursor:grabbing;box-shadow:var(--shadow-lg);transform:rotate(2deg)}.kanban-card-title{cursor:text;white-space:pre-wrap}.card-delete{opacity:0;position:absolute;top:.35rem;right:.35rem}.kanban-card:hover .card-delete,.card-delete:focus-visible{opacity:1}.inline-edit{width:100%;padding:.3rem .45rem}.add-card{justify-content:flex-start;width:100%}.new-card,.new-column{flex-direction:column;gap:.5rem;display:flex}.new-card textarea{width:100%}.form-row{gap:.4rem;display:flex}.new-column-trigger{border:1px dashed var(--border);height:48px;color:var(--text-muted);background:0 0;border-radius:12px;flex:0 0 280px;justify-content:flex-start}.new-column-trigger:hover{color:var(--text);border-color:var(--primary);background:var(--surface-hover)}.header-actions,.item-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.item-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.badge{text-overflow:ellipsis;white-space:nowrap;align-self:flex-start;max-width:100%;overflow:hidden}.dialog{border:1px solid var(--border);background:var(--surface);width:min(520px,100vw - 32px);color:var(--text);box-shadow:var(--shadow-lg);border-radius:14px;padding:0}.dialog::backdrop{background:#00000073}.dialog-body{flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.dialog-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.dialog-header h3{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.05rem;overflow:hidden}.share-form{flex-wrap:wrap;gap:.5rem;display:flex}.share-form input{flex:200px}.share-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.share-list li{border-top:1px solid var(--border);align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.share-person{overflow-wrap:anywhere;flex-direction:column;flex:1;min-width:0;display:flex}.share-person .hint{font-size:.8rem}.dialog-note{margin:0;font-size:.8rem}.shared-list{flex-direction:column;gap:.75rem;padding:0;list-style:none;display:flex}.shared-row{flex-direction:row;justify-content:space-between;align-items:center}.shared-main{flex-direction:column;gap:.2rem;min-width:0;display:flex}.shared-type{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem}.shared-title{color:var(--text);font-weight:600;text-decoration:none}.shared-title:hover{color:var(--primary)}.card-open{width:100%;height:auto;color:var(--text);text-align:left;white-space:pre-wrap;cursor:pointer;background:0 0;border:none;padding:0;font-weight:400;line-height:1.4;display:block}.card-open:hover{background:0 0}.kanban-card{padding:.65rem .75rem}.card-meta{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:.45rem;font-size:.78rem;display:flex}.due{background:var(--surface-hover);border:1px solid var(--border);border-radius:999px;padding:.05rem .45rem}.due.is-late{color:var(--danger);background:var(--danger-soft);border-color:#0000}.dialog-wide{width:min(600px,100vw - 32px)}.field{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.field input,.field textarea{width:100%;font-size:.95rem}.form-row.wrap{flex-wrap:wrap;align-items:center}.dialog-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.dialog-footer .form-row{margin-left:auto}.content>section.wide-page{max-width:1200px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.search{width:min(280px,100%)}.empty-state{text-align:center;border:1px dashed var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:.35rem;padding:2.5rem 1rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:1.5rem 0 .6rem;font-size:.75rem;font-weight:600}.todo-lists{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start}.list-title{cursor:text;font-weight:600}.progress{background:var(--surface-hover);border-radius:999px;height:4px;overflow:hidden}.progress>div{background:var(--primary);height:100%;transition:width .2s}.todo-items{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.todo-item{background:var(--surface);border-radius:6px;align-items:center;gap:.4rem;min-height:34px;padding:.1rem .25rem;display:flex}.todo-item:hover{background:var(--surface-hover)}.todo-item.is-dragging{opacity:.5}.todo-item-title{cursor:text;overflow-wrap:anywhere;flex:1;min-width:0}.todo-item.is-done .todo-item-title{color:var(--text-muted);text-decoration:line-through}.drag-handle{width:18px;height:24px;color:var(--text-muted);letter-spacing:-2px;cursor:grab;opacity:0;touch-action:none;background:0 0;border:none;padding:0;font-size:.8rem}.todo-item:hover .drag-handle,.drag-handle:focus-visible{opacity:1}.item-delete{opacity:0}.todo-item:hover .item-delete,.item-delete:focus-visible{opacity:1}.add-item{margin:0}:root{--note-default:var(--surface);--note-yellow:#fff6cc;--note-green:#dcf5e3;--note-blue:#dcebfd;--note-pink:#fde2ec;--note-purple:#ece3fd}[data-theme=dark]{--note-yellow:#3b3520;--note-green:#1f3528;--note-blue:#1d2e45;--note-pink:#3d2130;--note-purple:#2e2645}.note-default{background:var(--note-default)}.note-yellow{background:var(--note-yellow)}.note-green{background:var(--note-green)}.note-blue{background:var(--note-blue)}.note-pink{background:var(--note-pink)}.note-purple{background:var(--note-purple)}.notes-grid{columns:240px;column-gap:1rem}.note-card{break-inside:avoid;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:.5rem;margin-bottom:1rem;padding:.9rem;display:flex}.note-open{height:auto;color:var(--text);text-align:left;white-space:normal;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:stretch;gap:.4rem;padding:0;font-weight:400;line-height:1.45;display:flex}.note-open:hover{background:0 0}.note-title{font-size:1rem}.note-content{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-line-clamp:10;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.note-actions{align-items:center;gap:.25rem;min-height:30px;display:flex}.pin{filter:grayscale();opacity:.5;font-size:.9rem}.pin.is-pinned{filter:none;opacity:1}.new-note-trigger{width:100%;max-width:560px;height:46px;color:var(--text-muted);box-shadow:var(--shadow);justify-content:flex-start;margin-bottom:1.25rem}.new-note{border:1px solid var(--border);max-width:560px;box-shadow:var(--shadow-lg);border-radius:12px;flex-direction:column;gap:.5rem;margin-bottom:1.25rem;padding:.9rem;display:flex}.new-note input,.new-note textarea,.note-dialog input,.note-dialog textarea{background:0 0;border-color:#0000}.new-note input,.note-title-input{font-size:1.05rem;font-weight:600}.note-dialog textarea{resize:vertical}.color-picker{gap:.35rem;display:flex}.swatch{border:1px solid var(--border);border-radius:50%;width:24px;height:24px;padding:0}.swatch.is-selected{outline:2px solid var(--primary);outline-offset:2px}.swatch.note-default:hover{background:var(--note-default)}.swatch.note-yellow:hover{background:var(--note-yellow)}.swatch.note-green:hover{background:var(--note-green)}.swatch.note-blue:hover{background:var(--note-blue)}.swatch.note-pink:hover{background:var(--note-pink)}.swatch.note-purple:hover{background:var(--note-purple)}.swatch:hover{transform:scale(1.1)}.topbar,.drawer-backdrop,.menu-close{display:none}.sidebar-top{justify-content:space-between;align-items:center;display:flex}@media (width<=767px){.app-shell{flex-direction:column}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.5rem;height:52px;padding:0 .5rem;display:flex;position:sticky;top:0}.menu-button{width:40px;height:40px;font-size:1.3rem}.topbar-title{font-weight:600}.sidebar{z-index:40;width:min(280px,85vw);box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.menu-open .sidebar{transform:none}.menu-close{display:inline-flex}.drawer-backdrop{z-index:30;opacity:0;pointer-events:none;background:#00000073;transition:opacity .2s;display:block;position:fixed;inset:0}.menu-open .drawer-backdrop{opacity:1;pointer-events:auto}.nav-link{padding:.75rem}.content{padding:1rem}h2{font-size:1.3rem}.inline-form{flex-wrap:wrap}.inline-form input{min-width:0}.board-header{flex-wrap:wrap;align-items:flex-start}.kanban{scroll-snap-type:x mandatory;margin:0 -1rem;padding:0 1rem 1rem;scroll-padding:0 1rem}.kanban-column,.new-column-trigger{scroll-snap-align:start;flex-basis:85vw;max-height:calc(100vh - 190px)}.shared-row{flex-direction:column;align-items:stretch;gap:.5rem}.auth-form{width:calc(100vw - 32px);max-width:360px;padding:1.5rem}.dialog{width:calc(100vw - 16px);max-height:calc(100vh - 32px)}.new-note-trigger,.new-note{max-width:none}}@media (hover:none){.column-actions,.drag-handle,.item-delete,.card-delete{opacity:1}button,.nav-link{min-height:40px}.icon-btn{min-width:36px;min-height:36px}.swatch{width:32px;height:32px;min-height:0}}@media (width<=767px){.page-header{margin-bottom:.75rem}.search{width:100%}}
