:root{--accent:#1e6fe0;--accent-2:#2c5bd6;--accent-soft:#dce7fb;--board-bg:linear-gradient(135deg,#1e6fe0 0%,#2c5bd6 45%,#3b3f9f 100%);--bg:#f4f5f7;--surface:#fff;--surface-2:#f1f2f4;--surface-3:#e9ebef;--text:#172b4d;--text-muted:#5e6c84;--text-faint:#97a0b0;--border:#dfe1e6;--border-strong:#c1c7d0;--shadow-card:0 1px 0 #091e4221, 0 0 1px #091e4214;--shadow-card-hover:0 4px 12px #091e422e, 0 0 1px #091e421a;--shadow-pop:0 8px 32px #091e422e, 0 0 0 1px #091e4214;--shadow-modal:0 24px 60px #091e4252;--radius-sm:4px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--card-pad:10px 12px;--card-gap:8px;--col-gap:12px;--col-pad:8px;--col-w:280px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--topbar-h:52px;--sidebar-w:60px;--sidebar-w-open:260px;--success:#2db46e;--success-soft:#d4edda;--warning:#e89a1b;--warning-soft:#fff4d6;--danger:#dc3545;--danger-soft:#ffe6e2;--info:#1e6fe0;--info-soft:#dce7fb}.density-compact{--card-pad:6px 10px;--card-gap:4px;--col-pad:6px}.density-comfy{--card-pad:14px 14px;--card-gap:12px;--col-pad:10px}.dark{--bg:#0e1116;--surface:#1b2230;--surface-2:#232b3a;--surface-3:#2c3548;--text:#e6e9ef;--text-muted:#97a0b0;--text-faint:#8b93a5;--border:#2c3344;--border-strong:#3a4356;--shadow-card:0 1px 0 #0006, 0 0 0 1px #ffffff0a;--shadow-card-hover:0 4px 12px #00000080, 0 0 0 1px #ffffff0f;--shadow-pop:0 12px 40px #0009, 0 0 0 1px #ffffff14;--shadow-modal:0 24px 80px #0009;--accent-soft:#1e6fe02e;--success:#3cc97e;--success-soft:#2db46e26;--warning:#f0a832;--warning-soft:#e89a1b26;--danger:#e85d6a;--danger-soft:#dc354526;--info:#4d94e8;--info-soft:#1e6fe026}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px}button{cursor:default;font-family:inherit}input,textarea,select{color:inherit;font-family:inherit}::selection{background:#1e6fe040}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,.btn:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.card:focus-visible{outline:2px solid var(--accent);outline-offset:1px;box-shadow:var(--shadow-card-hover)}.sb-item:focus-visible,.pop-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--surface-2)}.cl-check:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{grid-template-rows:var(--topbar-h) 1fr;height:100vh;display:grid;overflow:hidden}.app-main{grid-template-columns:var(--sidebar-w) 1fr;min-height:0;display:grid}.app-main.sidebar-open{grid-template-columns:var(--sidebar-w-open) 1fr}.workarea{flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:30;align-items:center;gap:12px;padding:0 14px;display:flex;position:relative}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:700;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;box-shadow:0 2px 8px #1e6fe059}.brand-mark svg rect{fill:#ffffffd9}.brand-name{font-size:15px}.tb-search{flex:1;align-items:center;max-width:440px;display:flex;position:relative}.tb-search input{background:var(--surface-2);width:100%;height:34px;color:var(--text);border:1px solid #0000;border-radius:8px;outline:none;padding:0 12px 0 36px;font-size:13px}.tb-search input:focus{background:var(--surface);border-color:var(--accent)}.tb-search svg{color:var(--text-muted);position:absolute;left:10px}.tb-search kbd{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:2px 6px;font-family:ui-monospace,monospace;font-size:10.5px;position:absolute;right:10px}.tb-spacer{flex:1}.icon-btn{appearance:none;width:34px;height:34px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn .badge{background:var(--danger);color:#fff;text-align:center;border:2px solid var(--surface);border-radius:999px;min-width:14px;height:14px;padding:0 4px;font-size:9.5px;font-weight:700;line-height:14px;position:absolute;top:4px;right:4px}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--accent-2)}.btn-ghost{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:13px;display:inline-flex}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-soft{background:var(--surface-2);color:var(--text);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:13px;display:inline-flex}.btn-soft:hover{background:var(--surface-3)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:#b82a38}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;transition:width .18s;display:flex;overflow:hidden}.sidebar-top{padding:10px}.sb-toggle{width:100%;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:0 8px;display:flex}.sb-toggle:hover{background:var(--surface-2)}.sb-toggle .ttl{opacity:0;font-size:13px;font-weight:600;transition:opacity .15s}.sidebar-open .sb-toggle .ttl{opacity:1}.sb-section{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);opacity:0;justify-content:space-between;align-items:center;margin-top:10px;padding:6px 10px;font-size:10.5px;font-weight:600;transition:opacity .15s;display:flex}.sidebar-open .sb-section{opacity:1}.sb-list{flex-direction:column;flex:1;gap:1px;min-height:0;padding:2px 6px;display:flex;overflow-y:auto}.sb-item{height:32px;color:var(--text);cursor:default;border-radius:6px;align-items:center;gap:10px;padding:0 8px;font-size:13px;display:flex;position:relative}.sb-item:hover{background:var(--surface-2)}.sb-item.active{background:var(--accent-soft);color:var(--accent)}.dark .sb-item.active{color:#9ecaff}.sb-item .swatch{border-radius:3px;flex-shrink:0;width:22px;height:18px}.sb-item .ttl{white-space:nowrap;text-overflow:ellipsis;opacity:0;flex:1;min-width:0;transition:opacity .15s;overflow:hidden}.sidebar-open .sb-item .ttl{opacity:1}.sb-item .star-btn{opacity:0;color:var(--text-faint);transition:opacity .15s}.sb-item:hover .star-btn,.sb-item .star-btn.on{opacity:1}.sb-item .star-btn.on{color:#f2c94c}.board-bg{z-index:0;position:absolute;inset:0}.board-bg:after{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#0000002e 100%);position:absolute;inset:0}.board-content{z-index:1;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.board-header{color:#fff;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.board-header .board-title-wrap{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.board-title{color:#fff;letter-spacing:-.01em;background:0 0;border-radius:4px;margin:-2px -6px;padding:2px 6px;font-size:20px;font-weight:700}.board-title:hover{background:#ffffff2e}.board-title.inline-edit-input{color:var(--text);background:#fffffff2;border:none;outline:none;font-size:20px;font-weight:700}.board-desc{color:#ffffffc7;background:0 0;border-radius:4px;max-width:60ch;margin:-2px -6px;padding:2px 6px;font-size:12.5px}.board-desc:hover{background:#ffffff2e}.board-desc.inline-edit-input{color:var(--text);background:#fffffff2}.board-header-right{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;max-width:60%;display:flex}.bh-btn{appearance:none;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#ffffff2e;border:none;border-radius:6px;align-items:center;gap:6px;height:32px;padding:0 10px;font-size:12.5px;display:inline-flex}.bh-btn:hover{background:#ffffff47}.bh-btn.active{color:var(--accent);background:#fffffff2}.view-switch{background:#ffffff2e;border-radius:8px;gap:2px;padding:3px;display:inline-flex}.view-switch .bh-btn{background:0 0;height:26px;padding:0 10px;font-size:12px}.view-switch .bh-btn.active{color:var(--accent);background:#fffffff2}.view-switch .vs-lbl{margin-left:4px}@media (width<=1100px){.view-switch .vs-lbl{display:none}.view-switch .bh-btn{padding:0 8px}}.bh-divider{background:#ffffff4d;width:1px;height:22px}.bh-members .avatar-stack{padding-left:4px}.kanban{align-items:flex-start;gap:var(--col-gap);flex:1;min-height:0;padding:4px 16px 16px;display:flex;overflow:auto hidden}.kanban::-webkit-scrollbar{height:12px}.kanban::-webkit-scrollbar-thumb{background:#ffffff59 padding-box content-box;border:3px solid #0000;border-radius:6px}.kanban::-webkit-scrollbar-track{background:0 0}.column{flex:0 0 var(--col-w);background:var(--surface-2);border-radius:var(--radius-lg);max-height:calc(100vh - 180px);padding:var(--col-pad);flex-direction:column;display:flex;position:relative;box-shadow:0 1px #091e420f}.dark .column{background:var(--surface)}.column.dragging{opacity:.4}.column.drop-target{box-shadow:0 0 0 2px var(--accent)}.col-color-bar{height:4px;margin:calc(-1 * var(--col-pad)) calc(-1 * var(--col-pad)) 0;border-radius:8px 8px 0 0}.col-header{cursor:grab;align-items:center;gap:4px;padding:4px 6px;display:flex}.col-title{color:var(--text);border-radius:4px;flex:1;min-width:0;padding:4px 6px;font-size:13.5px;font-weight:600}.col-title:hover{background:#0000000d}.dark .col-title:hover{background:#ffffff0f}.col-title.inline-edit-input{background:var(--surface);border:1px solid var(--accent);outline:none;font-size:13.5px;font-weight:600}.col-count{color:var(--text-faint);padding:0 4px;font-size:11.5px}.col-menu-btn{width:28px;height:28px}.col-cards{gap:var(--card-gap);scrollbar-width:thin;flex-direction:column;flex:1;min-height:8px;padding:4px 2px 2px;display:flex;overflow-y:auto}.col-cards::-webkit-scrollbar{width:8px}.col-cards::-webkit-scrollbar-thumb{background:#0000001f;border-radius:4px}.dark .col-cards::-webkit-scrollbar-thumb{background:#ffffff1a}.col-add{height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;width:100%;margin-top:4px;padding:0 8px;font-size:13px;display:flex}.col-add:hover{color:var(--text);background:#0000000f}.dark .col-add:hover{background:#ffffff0f}.col-add-form{flex-direction:column;gap:6px;padding:4px 2px 0;display:flex}.col-add-form textarea{resize:none;background:var(--surface);border:1px solid var(--border);border-radius:6px;outline:none;width:100%;min-height:56px;padding:8px 10px;font-size:13px}.col-add-form textarea:focus{border-color:var(--accent)}.col-add-actions{align-items:center;gap:6px;display:flex}.card-drop-slot{height:6px;margin:-2px 0}.card-drop-slot.over{border:2px dashed var(--accent);background:#1e6fe01f;border-radius:6px;height:56px;transition:all .12s}.add-list-col{flex:0 0 var(--col-w);border-radius:var(--radius-lg);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#ffffff38;border:1px dashed #ffffff59;align-items:center;gap:6px;padding:10px;display:flex}.add-list-col:hover{background:#ffffff52}.add-list-form{background:var(--surface-2);border-radius:var(--radius-lg);flex-direction:column;flex:0 0 var(--col-w);gap:6px;padding:8px;display:flex}.add-list-form input{background:var(--surface);border:1px solid var(--accent);border-radius:6px;outline:none;height:32px;padding:0 10px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:var(--card-pad);cursor:pointer;flex-direction:column;gap:6px;transition:box-shadow .12s,transform 80ms;display:flex;position:relative}.card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.card.dragging{opacity:.35;transform:rotate(2deg)}.card-cover{border-radius:var(--radius) var(--radius) 0 0;background-position:50%;background-size:cover;height:110px;margin:-10px -12px 4px}.density-compact .card-cover{height:72px;margin:-6px -10px 4px}.card-labels{flex-wrap:wrap;gap:4px;display:flex}.card-title{color:var(--text);word-break:break-word;font-size:14px;font-weight:500;line-height:1.35}.density-compact .card-title{font-size:13px}.card-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:11.5px;display:flex}.card-meta .item{align-items:center;gap:4px;display:inline-flex}.card-meta .item svg{width:13px;height:13px}.card-meta .due{border-radius:4px;padding:2px 6px}.card-meta .due.due-over{background:var(--danger-soft);color:#bf2600}.card-meta .due.due-soon{background:var(--warning-soft);color:#855900}.card-meta .due.due-done{background:var(--success-soft);color:#1f5c2c;opacity:.85;text-decoration:line-through}.dark .card-meta .due.due-over{background:var(--danger-soft);color:#ffb8ae}.dark .card-meta .due.due-soon{background:var(--warning-soft);color:#ffe08a}.dark .card-meta .due.due-done{background:var(--success-soft);color:#95e6ae}.card-foot{justify-content:space-between;align-items:center;gap:6px;margin-top:2px;display:flex}.card-quick{background:var(--surface);width:22px;height:22px;color:var(--text-muted);cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;display:none;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #0003}.card:hover .card-quick{display:flex}.lbl{color:#fff;text-shadow:0 1px #0000001a;white-space:nowrap;text-overflow:ellipsis;border-radius:6px;max-width:160px;height:16px;padding:0 8px;font-size:11px;font-weight:600;line-height:16px;display:inline-block;overflow:hidden}.lbl-md{border-radius:4px;height:22px;padding:0 10px;font-size:12px;line-height:22px}.lbl-lg{height:28px;padding:0 12px;font-size:13px;line-height:28px}.lbl-compact{border-radius:2px;width:30px;height:6px;padding:0}.density-compact .lbl-compact{width:28px}.avatar{color:#fff;text-transform:uppercase;letter-spacing:.02em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.avatar-stack{display:inline-flex}.avatar-stack>*{margin-left:-6px}.avatar-stack>:first-child{margin-left:0}.avatar-extra{background:var(--surface-3);color:var(--text-muted)}.popover{z-index:200;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-pop);max-height:460px;padding:8px 0;font-size:13px;position:fixed;overflow-y:auto}.pop-hd{border-bottom:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:6px;padding:4px 12px 8px;font-size:12px;font-weight:600;display:flex}.pop-hd b{color:var(--text);font-weight:600}.pop-section{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);padding:6px 12px;font-size:11px;font-weight:600}.pop-item{cursor:default;color:var(--text);align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:flex}.pop-item:hover{background:var(--surface-2)}.pop-item.danger:hover{background:var(--danger-soft);color:#bf2600}.dark .pop-item.danger:hover{background:var(--danger-soft);color:#ffb8ae}.pop-search{background:var(--surface-2);border:1px solid #0000;border-radius:6px;outline:none;width:calc(100% - 16px);height:30px;margin:4px 8px 8px;padding:0 10px;font-size:13px}.pop-search:focus{border-color:var(--accent);background:var(--surface)}.inline-edit{cursor:text;border-radius:4px;outline:none;padding:2px 6px}.inline-edit-input{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--accent);resize:vertical;border-radius:4px;outline:none;width:100%;padding:2px 6px}.inline-edit-placeholder{color:var(--text-faint);font-style:italic}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#091e4280;justify-content:center;align-items:flex-start;padding:56px 16px 32px;animation:.15s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg);border-radius:var(--radius-lg);width:820px;max-width:100%;box-shadow:var(--shadow-modal);animation:.18s slideUp;position:relative}@keyframes slideUp{0%{opacity:.8;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:12px;right:12px}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-cover{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background-position:50%;background-size:cover;height:140px}.modal-head{padding:20px 24px 8px}.modal-head .breadcrumb{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.modal-title{color:var(--text);word-break:break-word;border-radius:6px;margin:-4px -8px;padding:4px 8px;font-size:20px;font-weight:700}.modal-title:hover{background:var(--surface-2)}.modal-title.inline-edit-input{background:var(--surface)}.modal-grid{grid-template-columns:1fr 220px;gap:24px;padding:16px 24px 24px;display:grid}@media (width<=740px){.modal-grid{grid-template-columns:1fr}}.modal-main{flex-direction:column;gap:24px;min-width:0;display:flex}.modal-side{flex-direction:column;gap:16px;display:flex}.m-section{flex-direction:column;gap:8px;display:flex}.m-section-hd{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.m-section-hd .ttl{color:var(--text);text-transform:none;letter-spacing:0;font-size:14px;font-weight:600}.m-side-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:600}.m-desc{background:var(--surface);border:1px solid var(--border);min-height:60px;color:var(--text);white-space:pre-wrap;word-break:break-word;border-radius:6px;padding:10px 12px;font-size:13.5px;line-height:1.5}.m-desc.placeholder{color:var(--text-faint);cursor:text}.m-desc-edit textarea{resize:vertical;background:var(--surface);border:1px solid var(--accent);width:100%;min-height:120px;font:inherit;color:inherit;border-radius:6px;outline:none;padding:10px 12px;font-size:13.5px;line-height:1.5}.m-desc-actions{gap:6px;margin-top:6px;display:flex}.m-side-action{background:var(--surface-2);width:100%;height:30px;color:var(--text);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:8px;padding:0 10px;font-size:12.5px;display:flex}.m-side-action:hover{background:var(--surface-3)}.checklist{flex-direction:column;gap:6px;display:flex}.cl-progress{color:var(--text-muted);align-items:center;gap:8px;font-size:11px;display:flex}.cl-bar{background:var(--surface-3);border-radius:999px;flex:1;height:6px;overflow:hidden}.cl-bar>div{background:var(--accent);height:100%;transition:width .25s}.cl-bar.full>div{background:var(--success)}.cl-item{cursor:default;border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.cl-item:hover{background:var(--surface-2)}.cl-item.done .cl-text{color:var(--text-faint);text-decoration:line-through}.cl-check{border:1.5px solid var(--border-strong);background:var(--surface);color:#0000;cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.cl-check.on{background:var(--accent);border-color:var(--accent);color:#fff}.cl-text{word-break:break-word;flex:1;font-size:13.5px}.cl-del{width:22px;height:22px;color:var(--text-faint);opacity:0;border-radius:4px}.cl-date-btn{color:var(--text-faint);opacity:0;flex-shrink:0}.cl-item:hover .cl-del,.cl-item:hover .cl-date-btn{opacity:1}.cl-del:hover{background:var(--surface-3);color:var(--danger)}.cl-date-btn:hover{background:var(--surface-3);color:var(--accent)}.cl-due{background:var(--info-soft);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;gap:3px;padding:1px 6px;font-size:11px;display:inline-flex}.cl-due svg{width:11px;height:11px}.cl-due.overdue{background:var(--danger-soft,#fde8e8);color:var(--danger)}.cl-due.done{background:var(--success-soft,#e6f7ee);color:#1f5c2c;text-decoration:line-through}.cl-date-input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;flex-shrink:0;width:120px;padding:2px 6px;font-size:12px}.cal-checklist-item{opacity:.85;align-items:center;gap:3px;font-size:11px;display:flex}.cal-checklist-item svg{flex-shrink:0;width:10px;height:10px}.cl-add{gap:6px;margin-top:4px;display:flex}.cl-add input{background:var(--surface);border:1px solid var(--border);height:30px;font:inherit;border-radius:4px;outline:none;flex:1;padding:0 10px;font-size:13px}.cl-add input:focus{border-color:var(--accent)}.comment-list{flex-direction:column;gap:14px;display:flex}.comment{grid-template-columns:32px 1fr;gap:10px;display:grid}.comment-body{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 12px}.comment-meta{align-items:baseline;gap:6px;margin-bottom:4px;display:flex}.comment-meta b{font-size:13px}.comment-meta .ts{color:var(--text-faint);font-size:11.5px}.comment-text{white-space:pre-wrap;word-break:break-word;font-size:13.5px;line-height:1.5}.comment-actions{color:var(--text-muted);gap:10px;margin-top:4px;font-size:11.5px;display:flex}.comment-actions button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0}.comment-actions button:hover{color:var(--text);text-decoration:underline}.new-comment{grid-template-columns:32px 1fr;gap:10px;display:grid}.new-comment textarea{resize:vertical;background:var(--surface);border:1px solid var(--border);width:100%;min-height:38px;font:inherit;border-radius:6px;outline:none;padding:8px 12px;font-size:13.5px}.new-comment textarea:focus{border-color:var(--accent)}.activity-list{flex-direction:column;gap:12px;display:flex}.activity{color:var(--text-muted);grid-template-columns:28px 1fr;gap:10px;font-size:13px;line-height:1.4;display:grid}.activity b{color:var(--text)}.cf-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cf-item{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.cf-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.cf-val{margin-top:2px;font-size:14px;font-weight:600}.calview{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow:auto}.cal-head{color:#fff;align-items:center;gap:12px;display:flex}.cal-grid-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-grid{border-radius:var(--radius);min-width:700px;box-shadow:var(--shadow-card);background:#fff3;grid-template-columns:repeat(7,minmax(100px,1fr));gap:1px;display:grid;overflow:hidden}.cal-dayhead{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:#fffffff2;padding:8px 10px;font-size:11px;font-weight:600}.dark .cal-dayhead{background:var(--surface-2)}.dark .cal-grid{background:var(--border)}.cal-cell{background:var(--surface);flex-direction:column;gap:4px;min-height:110px;padding:6px 8px;display:flex;position:relative}.cal-cell.other-month{background:var(--surface-2);color:var(--text-faint)}.cal-cell.today .cal-day{background:var(--accent);color:#fff}.cal-cell.over{box-shadow:inset 0 0 0 2px var(--accent)}.cal-day{border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:600;display:inline-flex}.cal-card{background:var(--surface-2);border-left:3px solid var(--accent);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;align-items:center;gap:4px;padding:4px 6px;font-size:11.5px;display:flex;overflow:hidden}.cal-card.done{opacity:.55;text-decoration:line-through}.cal-card:hover{background:var(--surface-3)}.cal-cell-more{color:var(--text-muted);font-size:11px}@media (width<=768px){.calview{padding:8px}.cal-head{flex-wrap:wrap;gap:6px}.cal-head h2{font-size:15px!important}.cal-cell{min-height:80px;padding:4px}.cal-dayhead{padding:4px 6px;font-size:10px}.cal-card{padding:2px 4px;font-size:10px}}.tableview{flex:1;padding:16px;overflow:auto}.tbl{background:var(--surface);border-radius:var(--radius);border-collapse:separate;border-spacing:0;width:100%;box-shadow:var(--shadow-card);overflow:hidden}.tbl thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--surface-2);border-bottom:1px solid var(--border);cursor:pointer;padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.tbl tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px;font-size:13.5px}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:var(--surface-2);cursor:pointer}.tbl .lbl-cell{flex-wrap:wrap;gap:4px;display:flex}.tbl .list-pill{background:var(--surface-2);color:var(--text-muted);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.spacer{flex:1}.kbd{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:10.5px}.divider{background:var(--border);height:1px;margin:4px 0}.empty{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:13px}.swatch-grid{grid-template-columns:repeat(6,1fr);gap:6px;padding:6px 12px;display:grid}.swatch-btn{cursor:default;border:none;border-radius:4px;height:28px;position:relative}.swatch-btn:hover{transform:scale(1.05)}.swatch-btn.selected:after{content:"";box-shadow:inset 0 0 0 2px #fff, 0 0 0 2px var(--accent);border-radius:4px;position:absolute;inset:0}.member-row{cursor:default;align-items:center;gap:10px;padding:6px 12px;display:flex}.member-row:hover{background:var(--surface-2)}.member-row .name{flex:1}.member-row .pick{border:1.5px solid var(--border-strong);color:#0000;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.member-row .pick.on{background:var(--accent);border-color:var(--accent);color:#fff}.bg-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 12px;display:grid}.bg-tile{cursor:default;background-position:50%;background-size:cover;border:2px solid #0000;border-radius:6px;height:50px}.bg-tile.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--surface)}.toasts{z-index:999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-pop);border-radius:6px;padding:8px 14px;font-size:13px;animation:.18s slideUp}.viewer-banner{background:var(--info-soft);color:var(--accent);border-bottom:1px solid var(--border);z-index:29;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:13px;font-weight:500;display:flex;position:relative}.viewer-banner button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600}.viewer-banner button:hover{background:var(--accent-2)}.viewer-banner-status{color:var(--text-muted);font-size:12px;font-style:italic}.notif-row{cursor:default;grid-template-columns:28px 1fr;gap:10px;padding:8px 12px;display:grid}.notif-row:hover{background:var(--surface-2)}.notif-row .dot{background:var(--accent);border-radius:50%;align-self:center;width:7px;height:7px}.notif-row.read .dot{background:0 0}.notif-text{font-size:13px;line-height:1.35}.notif-time{color:var(--text-faint);margin-top:2px;font-size:11px}.chip{height:26px;color:var(--text);background:#ffffffd9;border-radius:999px;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.chip .x{color:var(--text-muted);cursor:default}.chip .x:hover{color:var(--text)}.auth-page{background:linear-gradient(135deg,#1e6fe0 0%,#2c5bd6 45%,#3b3f9f 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--surface);border-radius:var(--radius-xl);width:400px;max-width:100%;box-shadow:var(--shadow-modal);padding:40px 36px}.auth-logo{color:var(--accent);letter-spacing:-.02em;margin-bottom:8px;font-size:24px;font-weight:800}.auth-card h1{color:var(--text);margin:0 0 20px;font-size:20px;font-weight:700}.auth-card label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:14px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.auth-card label:first-of-type{margin-top:0}.auth-card input[type=text],.auth-card input[type=email],.auth-card input[type=password]{background:var(--surface-2);border:1px solid var(--border);width:100%;height:40px;color:var(--text);border-radius:8px;outline:none;padding:0 12px;font-size:14px}.auth-card input:focus{border-color:var(--accent);background:var(--surface)}.auth-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;height:42px;margin-top:20px;font-size:14px;font-weight:600}.auth-btn:hover{background:var(--accent-2)}.auth-btn:disabled{opacity:.6;cursor:default}.auth-error{background:var(--danger-soft);color:#bf2600;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13px}.dark .auth-error{background:var(--danger-soft);color:#ffb8ae}.auth-link{text-align:center;color:var(--text-muted);margin-top:18px;font-size:13px}.auth-link a{color:var(--accent);font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.auth-demo{text-align:center;color:var(--text-faint);border-top:1px solid var(--border);margin-top:12px;padding-top:12px;font-size:12px}.auth-demo code{background:var(--surface-2);border-radius:4px;padding:2px 6px;font-family:ui-monospace,monospace;font-size:11px}.auth-verify-message{color:var(--text);margin:12px 0;font-size:14px;line-height:1.6}.auth-verify-hint{color:var(--text-muted);margin-bottom:16px;font-size:12px}.auth-btn-secondary{color:var(--accent);border:1.5px solid var(--accent);cursor:pointer;background:0 0;border-radius:8px;width:100%;margin-bottom:8px;padding:10px;font-size:14px;font-weight:600}.auth-btn-secondary:hover{background:var(--accent-soft)}.auth-btn-secondary:disabled{opacity:.6;cursor:not-allowed}.auth-warning{color:#856404;background:#fff8e1}.dark .auth-warning{color:#ffd93d;background:#ffc1071f}.auth-success{color:#2e7d32;background:#e8f5e9;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13px}.dark .auth-success{color:#7ae8a5;background:#4caf501f}.dashboard{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.dash-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;height:56px;padding:0 24px;display:flex}.dash-logo{color:var(--accent);letter-spacing:-.02em;font-size:17px;font-weight:800}.dash-workspace{color:var(--text-muted);background:var(--surface-2);border-radius:6px;padding:4px 10px;font-size:13px;font-weight:500}.dash-user{color:var(--text-muted);font-size:13px}.dash-logout{border:1px solid var(--border);height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:0 12px;font-size:12px}.dash-logout:hover{background:var(--surface-2);color:var(--text)}.dash-content{width:100%;max-width:1100px;margin:0 auto;padding:32px 40px}.dash-content h2{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;margin:0 0 14px;font-size:14px;font-weight:600;display:flex}.dash-content section{margin-bottom:32px}.board-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.board-tile{border-radius:var(--radius-lg);cursor:pointer;flex-direction:column;justify-content:space-between;height:100px;padding:14px;transition:transform .1s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.board-tile:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.board-tile-title{color:#fff;text-shadow:0 1px 3px #0000004d;font-size:15px;font-weight:700}.board-tile-star{color:#ffffffb3;cursor:pointer;opacity:0;background:0 0;border:none;transition:opacity .15s;position:absolute;bottom:10px;right:10px}.board-tile:hover .board-tile-star{opacity:1}.board-tile-star:hover{color:#f2c94c}.board-tile-new{border:2px dashed var(--border-strong);color:var(--text-muted);justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex;background:var(--surface-2)!important}.board-tile-new:hover{color:var(--text);background:var(--surface-3)!important}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#091e4280;justify-content:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.bg-picker-row{flex-wrap:wrap;gap:8px;margin:8px 0 4px;display:flex}.bg-dot{cursor:pointer;border:2px solid #0000;border-radius:6px;width:36px;height:28px}.bg-dot.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--surface)}@media (width<=768px){.sidebar{display:none}.main{margin-left:0!important}.topbar{padding:0 8px}.tb-search,.tb-search+.tb-spacer{display:none}.bh-actions{flex-wrap:wrap;gap:4px}.board-cols{padding:8px}.col{min-width:260px}.modal{width:95vw;max-width:95vw;max-height:90vh;margin:16px auto}.modal-body{flex-direction:column}.modal-side{border-left:none;border-top:1px solid var(--border);min-width:unset;flex-flow:wrap;width:100%;padding:12px 16px}.dash-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (width<=480px){.bh-views{display:none}.filter-bar{flex-wrap:wrap}.col{scroll-snap-align:start;min-width:85vw}.board-cols{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}}
