:root{--bg-app: #0b0c10;--bg-side: #0e0f14;--bg-card: #14161d;--bg-elev: #1a1d26;--bg-soft: #11131a;--bg-modal: #1a1d26;--line-1: rgba(255,255,255,.06);--line-2: rgba(255,255,255,.1);--line-3: rgba(255,255,255,.16);--ring: rgba(123, 104, 238, .55);--t-1: #e8eaf2;--t-2: #a8adbe;--t-3: #767b8c;--t-4: #4f5466;--t-inv: #0b0c10;--brand-50: #2a2249;--brand-100: #352a5e;--brand-200: #4a3c7e;--brand-300: #6e5dbc;--brand-400: #8c7df0;--brand-500: #7b68ee;--brand-600: #6a57d6;--brand-700: #5746b2;--brand-tint: rgba(123, 104, 238, .16);--brand-tint-2: rgba(123, 104, 238, .1);--st-todo-bg: rgba(148, 163, 184, .16);--st-todo-fg: #b8bdce;--st-prog-bg: rgba(59, 130, 246, .18);--st-prog-fg: #7eb1ff;--st-block-bg: rgba(239, 68, 68, .18);--st-block-fg: #ff8a8a;--st-done-bg: rgba(16, 185, 129, .18);--st-done-fg: #6fe0a8;--st-todo: #94a3b8;--st-prog: #3b82f6;--st-block: #ef4444;--st-done: #10b981;--pr-crit:#f97373;--pr-hi:#fbbf24;--pr-med:#60a5fa;--pr-lo:#7a7f93;--av-1:#7b68ee;--av-2:#0ea5e9;--av-3:#10b981;--av-4:#f59e0b;--av-5:#ef4444;--av-6:#a855f7;--av-7:#14b8a6;--av-8:#ec4899;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--s8:40px;--r-1:4px;--r-2:6px;--r-3:8px;--r-4:12px;--r-pill:999px;--tx-xs:11px;--tx-sm:12px;--tx-md:13px;--tx-base:14px;--tx-lg:16px;--tx-xl:18px;--tx-2xl:22px;--tx-3xl:28px;--tx-display:42px;--sh-1: 0 1px 2px rgba(0,0,0,.3);--sh-2: 0 4px 12px rgba(0,0,0,.3);--sh-3: 0 8px 24px rgba(0,0,0,.4);--sh-4: 0 24px 60px rgba(0,0,0,.55);--m-fast: .12s ease;--m-base: .2s cubic-bezier(.16,.84,.3,1);--sidebar-w: 232px;--header-h: 48px;--toolbar-h: 42px;--chat-w: 420px;color-scheme:dark}:root[data-theme=light]{--bg-app: #fafafb;--bg-side: #ffffff;--bg-card: #ffffff;--bg-elev: #f3f4f7;--bg-soft: #f6f7fb;--bg-modal: #ffffff;--line-1: #ececf2;--line-2: #dfe0e8;--line-3: #c8cad4;--ring: rgba(123, 104, 238, .3);--t-1: #1a1d26;--t-2: #4a4f63;--t-3: #767b8c;--t-4: #a8adbe;--t-inv: #ffffff;--brand-50: #f3f0ff;--brand-100: #e6dfff;--brand-200: #cdc1ff;--brand-300: #ad9bff;--brand-400: #8d75f7;--brand-tint: rgba(123, 104, 238, .1);--brand-tint-2: rgba(123, 104, 238, .06);--st-todo-bg: #e9eaef;--st-todo-fg: #5a607a;--st-prog-bg: #e0ecff;--st-prog-fg: #1f6feb;--st-block-bg: #ffe1e1;--st-block-fg: #c92a2a;--st-done-bg: #d8f5e3;--st-done-fg: #1a7f3c;--pr-crit:#e02424;--pr-hi:#f59e0b;--pr-med:#3b82f6;--pr-lo:#6b7280;--sh-1: 0 1px 2px rgba(16,18,32,.06);--sh-2: 0 2px 8px rgba(16,18,32,.08);--sh-3: 0 8px 24px rgba(16,18,32,.12);--sh-4: 0 18px 50px rgba(16,18,32,.18);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--tx-md);color:var(--t-1);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv02","cv03","cv11";letter-spacing:-.005em}a{color:var(--brand-400);text-decoration:none}a:hover{color:var(--brand-300)}:root[data-theme=light] a{color:var(--brand-600)}:root[data-theme=light] a:hover{color:var(--brand-700)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--line-3);background-clip:padding-box;border:2px solid transparent}button,.btn{font:inherit;cursor:pointer;border:1px solid transparent;border-radius:var(--r-2);padding:6px 12px;background:var(--brand-500);color:#fff;font-weight:500;font-size:var(--tx-md);line-height:1;display:inline-flex;align-items:center;gap:6px;transition:background var(--m-fast),border-color var(--m-fast),box-shadow var(--m-fast),transform var(--m-fast),color var(--m-fast);white-space:nowrap;height:30px}button:hover{background:var(--brand-600)}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--ring);outline-offset:1px}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--bg-elev);color:var(--t-1);border-color:var(--line-2)}button.secondary:hover{background:var(--bg-card);border-color:var(--line-3)}:root[data-theme=light] button.secondary{background:var(--bg-card)}:root[data-theme=light] button.secondary:hover{background:var(--bg-elev)}button.ghost{background:transparent;color:var(--t-2);border-color:transparent;padding:5px 10px}button.ghost:hover{background:var(--bg-elev);color:var(--t-1)}button.icon{padding:6px;width:30px;justify-content:center}button.icon.sm{width:22px;height:22px;padding:3px;border-radius:var(--r-1)}button.danger{background:#dc2626}button.danger:hover{background:#b91c1c}button svg{flex-shrink:0}.kbd{display:inline-flex;align-items:center;font-family:SFMono-Regular,ui-monospace,monospace;font-size:10px;font-weight:500;padding:2px 5px;border-radius:4px;background:var(--bg-elev);border:1px solid var(--line-2);color:var(--t-3);line-height:1;min-width:16px;justify-content:center}input,select,textarea{font:inherit;background:var(--bg-elev);color:var(--t-1);border:1px solid var(--line-2);border-radius:var(--r-2);padding:7px 10px;width:100%;font-size:var(--tx-md);transition:border-color var(--m-fast),box-shadow var(--m-fast),background var(--m-fast)}input::placeholder,textarea::placeholder{color:var(--t-4)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-400);box-shadow:0 0 0 3px var(--ring);background:var(--bg-card)}:root[data-theme=light] input,:root[data-theme=light] select,:root[data-theme=light] textarea{background:var(--bg-card)}textarea{resize:vertical;min-height:64px;font-family:inherit}label{display:block;font-size:var(--tx-sm);color:var(--t-2);font-weight:500}label>input,label>select,label>textarea{margin-top:5px;font-weight:400;color:var(--t-1)}.error{color:#ff6f6f;font-size:var(--tx-sm);margin:6px 0 0;min-height:1em}:root[data-theme=light] .error{color:#c92a2a}.success{color:#5ed29a;font-size:var(--tx-sm);margin:6px 0 0}:root[data-theme=light] .success{color:#1a7f3c}.muted{color:var(--t-3);font-size:var(--tx-sm)}.small-note{font-size:var(--tx-xs);margin-top:8px}.notice{background:var(--brand-tint);border:1px solid var(--brand-200);color:var(--t-1);padding:8px 12px;border-radius:var(--r-2);font-size:var(--tx-sm);margin:0 0 12px}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--bg-side);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid var(--line-1);font-size:var(--tx-md)}.sidebar .brand{display:flex;align-items:center;gap:9px;padding:12px 14px;height:var(--header-h);border-bottom:1px solid var(--line-1)}.sidebar .brand-img{width:24px;height:24px;border-radius:5px;background:#fff;padding:2px}.sidebar .brand-name{font-weight:600;font-size:var(--tx-base);color:var(--t-1);letter-spacing:-.01em}.sidebar .ws-switcher{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.sidebar .label-eyebrow{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--t-3);text-transform:uppercase}.sidebar select{padding:6px 9px;font-size:var(--tx-md);background:var(--bg-elev)}.sidebar .section-label{padding:14px 16px 4px;font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--t-3);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.sidebar .nav{display:flex;flex-direction:column;gap:1px;padding:0 8px}.nav-item{display:flex;align-items:center;gap:9px;padding:6px 9px;color:var(--t-2);font-size:var(--tx-md);border-radius:var(--r-2);text-decoration:none;transition:background var(--m-fast),color var(--m-fast);cursor:pointer}.nav-item:hover{background:var(--bg-elev);color:var(--t-1);text-decoration:none}.nav-item.active{background:var(--brand-tint);color:var(--brand-400);font-weight:500}:root[data-theme=light] .nav-item.active{color:var(--brand-700)}.nav-item svg{width:15px;height:15px;opacity:.85;flex-shrink:0}.nav-item.active svg{opacity:1}.nav-item span{flex:1}.nav-item .nav-badge{font-style:normal;font-size:10px;background:var(--bg-elev);color:var(--t-3);padding:1px 6px;border-radius:var(--r-pill);font-weight:500}.nav-item.active .nav-badge{background:var(--brand-tint);color:var(--brand-400)}:root[data-theme=light] .nav-item.active .nav-badge{color:var(--brand-700)}.sidebar-footer{margin-top:auto;padding:8px;border-top:1px solid var(--line-1);display:flex;flex-direction:column;gap:4px}.user-card{display:flex;align-items:center;gap:9px;padding:6px;border-radius:var(--r-2);transition:background var(--m-fast)}.user-card:hover{background:var(--bg-elev)}.user-meta{flex:1;min-width:0;display:flex;flex-direction:column}.user-meta strong{font-size:var(--tx-md);color:var(--t-1);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-meta span{font-size:var(--tx-xs);color:var(--t-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-card .icon{background:transparent;color:var(--t-3);border:none;width:24px;height:24px;padding:4px}.user-card .icon:hover{background:var(--bg-card);color:var(--t-1)}.theme-toggle{display:flex;gap:2px;background:var(--bg-elev);padding:3px;border-radius:var(--r-2);margin:0 6px}.theme-toggle button{flex:1;background:transparent;color:var(--t-3);border:none;padding:5px 8px;font-size:var(--tx-xs);height:24px;gap:4px;justify-content:center}.theme-toggle button:hover{background:transparent;color:var(--t-1)}.theme-toggle button.active{background:var(--bg-card);color:var(--t-1);box-shadow:var(--sh-1)}.theme-toggle button svg{width:12px;height:12px}.avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:10px;font-weight:600;color:#fff;background:var(--brand-500);letter-spacing:.02em;flex-shrink:0}.avatar.lg{width:32px;height:32px;font-size:12px}.avatar.sm{width:20px;height:20px;font-size:9px}.avatar.av-c1{background:var(--av-1)}.avatar.av-c2{background:var(--av-2)}.avatar.av-c3{background:var(--av-3)}.avatar.av-c4{background:var(--av-4)}.avatar.av-c5{background:var(--av-5)}.avatar.av-c6{background:var(--av-6)}.avatar.av-c7{background:var(--av-7)}.avatar.av-c8{background:var(--av-8)}.avatar.unassigned{background:transparent;color:var(--t-3);border:1.5px dashed var(--line-3);font-weight:400}.main{display:flex;flex-direction:column;min-width:0;background:var(--bg-app)}.page-header{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);padding:0 18px;background:var(--bg-side);border-bottom:1px solid var(--line-1);position:sticky;top:0;z-index:20;gap:12px}.crumbs{display:flex;align-items:center;gap:7px;font-size:var(--tx-md);color:var(--t-3);min-width:0;overflow:hidden}.crumbs .crumb{color:var(--t-2);white-space:nowrap}.crumbs .crumb.current{color:var(--t-1);font-weight:600}.crumbs .crumb-sep{color:var(--t-4);font-size:10px}.crumbs svg{width:14px;height:14px;color:var(--t-3)}.page-actions{display:flex;align-items:center;gap:6px}.net-status{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;font-size:var(--tx-xs);font-weight:500;color:var(--t-3);background:var(--bg-elev);border:1px solid var(--line-1);border-radius:var(--r-pill);margin-right:4px;-webkit-user-select:none;user-select:none;transition:all var(--m-fast)}.net-status .net-dot{width:6px;height:6px;border-radius:50%;background:var(--t-4);box-shadow:0 0 0 2px transparent}.net-status[data-online=true] .net-dot{background:#10b981;box-shadow:0 0 0 2px #10b9812e}.net-status[data-online=false]{color:#f59e0b;border-color:#f59e0b66;background:#f59e0b1a}.net-status[data-online=false] .net-dot{background:#f59e0b;animation:pulse-dot 1.6s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 #f59e0b73}50%{box-shadow:0 0 0 5px #f59e0b00}}.search-box{position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--t-3);width:13px;height:13px}.search-box input{padding:6px 10px 6px 28px;width:200px;height:30px;font-size:var(--tx-md);background:var(--bg-elev);border-color:transparent}.search-box input:focus{background:var(--bg-card);border-color:var(--brand-400)}.view-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 18px;height:var(--toolbar-h);background:var(--bg-side);border-bottom:1px solid var(--line-1)}.view-tabs{display:flex;align-items:center;gap:0;height:100%}.view-tab{background:transparent;color:var(--t-3);border:none;border-radius:0;padding:0 10px;font-size:var(--tx-md);font-weight:500;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:color var(--m-fast);position:relative;height:100%}.view-tab:hover{background:transparent;color:var(--t-1)}.view-tab.active{color:var(--t-1)}.view-tab.active:after{content:"";position:absolute;left:4px;right:4px;bottom:-1px;height:2px;background:var(--brand-500);border-radius:1px}.view-tab svg{width:13px;height:13px}.toolbar-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.filter-controls{display:inline-flex;align-items:center;gap:4px;height:30px}.filter-controls label,.sort-control{display:inline-flex;align-items:center;gap:6px;height:30px;padding:2px 4px 2px 8px;background:var(--bg-elev);border:1px solid var(--line-1);border-radius:var(--r-2);color:var(--t-3);font-size:var(--tx-xs);font-weight:600}.filter-controls select,.sort-control select{background:transparent!important;border:none!important;color:var(--t-1)!important;font-size:var(--tx-sm)!important;font-weight:500!important;padding:4px 22px 4px 4px!important;max-width:150px;cursor:pointer}.filter-controls select:focus,.sort-control select:focus{outline:none;box-shadow:none!important}.saved-views{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;background:var(--bg-elev);border:1px solid var(--line-1);border-radius:var(--r-2);transition:border-color var(--m-fast),background var(--m-fast)}.saved-views:hover{border-color:var(--line-2)}.saved-view-select{background:transparent!important;border:none!important;padding:4px 22px 4px 4px!important;font-size:var(--tx-sm)!important;color:var(--t-1)!important;font-weight:500!important;min-width:0!important;cursor:pointer;max-width:180px}.saved-view-select:focus{outline:none;box-shadow:none!important}.saved-views .ghost.sm{padding:4px 8px;font-size:var(--tx-xs);display:inline-flex;align-items:center;gap:4px;border-radius:var(--r-1)}.saved-views .ghost.sm svg{width:12px;height:12px}.clear-filters-btn{display:inline-flex;align-items:center;gap:4px;height:30px}.clear-filters-btn svg{width:12px;height:12px}.active-filter-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 18px 0;background:var(--bg-app)}.active-filter-label{color:var(--t-3);font-size:var(--tx-xs);font-weight:600}.filter-chip{display:inline-flex;align-items:center;gap:5px;max-width:240px;height:26px;padding:4px 8px 4px 9px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:var(--bg-card);color:var(--t-2);font-size:var(--tx-xs);font-weight:600}.filter-chip:hover{border-color:var(--line-3);background:var(--bg-elev);color:var(--t-1)}.filter-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-chip svg{width:11px;height:11px;flex-shrink:0;opacity:.72}.toolbar-tools .divider{width:1px;height:16px;background:var(--line-2);margin:0 6px}.tool-btn{background:transparent;color:var(--t-3);border:1px solid transparent;border-radius:var(--r-2);padding:4px 9px;font-size:var(--tx-md);font-weight:500;display:inline-flex;align-items:center;gap:5px;height:26px}.tool-btn:hover{background:var(--bg-elev);color:var(--t-1)}.tool-btn svg{width:12px;height:12px}.tool-btn.active{background:var(--brand-tint);color:var(--brand-400)}.page-content{padding:16px 18px 32px}.reports-view{display:flex;flex-direction:column;gap:16px;max-width:1180px}.report-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;background:linear-gradient(135deg,var(--bg-card),var(--bg-soft));border:1px solid var(--line-1);border-radius:var(--r-4);box-shadow:var(--sh-1)}.report-hero h2{margin:2px 0 6px;font-size:var(--tx-2xl);letter-spacing:-.02em;color:var(--t-1)}.report-hero p:last-child{margin:0;color:var(--t-3);font-size:var(--tx-md)}.report-score{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:106px;min-height:86px;border-radius:var(--r-4);background:var(--brand-tint);color:var(--brand-400);border:1px solid rgba(59,130,246,.35)}:root[data-theme=light] .report-score{color:var(--brand-700)}.report-score strong{font-size:30px;line-height:1;letter-spacing:-.04em}.report-score span{font-size:var(--tx-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-metric{display:flex;flex-direction:column;gap:6px;padding:14px;background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-3)}.report-metric span{color:var(--t-3);font-size:var(--tx-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.report-metric strong{color:var(--t-1);font-size:28px;line-height:1;letter-spacing:-.03em}.report-metric em{color:var(--t-3);font-size:var(--tx-sm);font-style:normal}.report-metric.accent{border-color:#3b82f673}.report-metric.success{border-color:#10b98173}.report-metric.warning{border-color:#f59e0b80}.report-metric.danger{border-color:#ef44448c}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.report-card{background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-3);padding:14px;box-shadow:var(--sh-1)}.report-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.report-card h3{margin:0;font-size:var(--tx-lg);color:var(--t-1)}.report-card header span{color:var(--t-3);font-size:var(--tx-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.report-bars{display:flex;flex-direction:column;gap:10px}.report-bar-row{display:grid;gap:6px}.report-bar-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--tx-sm)}.report-bar-meta span{color:var(--t-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-bar-meta strong{color:var(--t-1);font-size:var(--tx-sm)}.report-bar-track{height:8px;overflow:hidden;border-radius:var(--r-pill);background:var(--bg-soft);border:1px solid var(--line-1)}.report-bar-fill{display:block;height:100%;min-width:2px;border-radius:inherit;background:var(--brand-500)}.report-bar-fill.status-todo{background:#94a3b8}.report-bar-fill.status-in_progress{background:#3b82f6}.report-bar-fill.status-blocked,.report-bar-fill.priority-critical{background:#ef4444}.report-bar-fill.status-done,.report-bar-fill.assignee{background:#10b981}.report-bar-fill.priority-high,.report-bar-fill.project{background:#f59e0b}.report-bar-fill.priority-medium{background:#8b5cf6}.report-bar-fill.priority-low{background:#64748b}.report-empty{min-height:88px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--t-3);background:var(--bg-soft);border:1px dashed var(--line-2);border-radius:var(--r-2);font-size:var(--tx-sm)}.report-empty svg{width:16px;height:16px}.report-risk-list{display:flex;flex-direction:column;gap:8px}.report-risk-item{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;color:inherit;font:inherit;background:var(--bg-soft);border:1px solid var(--line-1);border-radius:var(--r-2);cursor:pointer;text-align:left}.report-risk-item:hover{border-color:var(--line-2);background:var(--bg-elev)}.report-risk-title{color:var(--t-1);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-risk-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--t-3);font-size:var(--tx-xs);white-space:nowrap}.report-risk-meta strong{color:#ef4444;font-size:var(--tx-xs)}.board{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;padding-bottom:12px;align-items:flex-start;min-height:0;scrollbar-width:thin;scrollbar-color:var(--line-3) transparent}.board::-webkit-scrollbar{height:10px}.board::-webkit-scrollbar-track{background:transparent}.board::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px;border:2px solid transparent;background-clip:padding-box}.board::-webkit-scrollbar-thumb:hover{background:var(--line-3);border:2px solid transparent;background-clip:padding-box}.column{background:var(--bg-soft);border-radius:var(--r-3);width:296px;min-width:296px;display:flex;flex-direction:column;max-height:calc(100vh - var(--header-h) - var(--toolbar-h) - 64px);border:1px solid var(--line-1);position:relative}.col-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;position:sticky;top:0;background:var(--bg-soft);border-bottom:1px solid var(--line-1);border-radius:var(--r-3) var(--r-3) 0 0;z-index:1}.col-head-left{display:flex;align-items:center;gap:8px;font-size:var(--tx-md);font-weight:600;color:var(--t-1);min-width:0}.board-group-check{width:13px;height:13px;margin:0 1px 0 0;accent-color:var(--brand-500);cursor:pointer;flex-shrink:0}.col-head-left .col-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-status-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.status-svg.todo{color:#94a3b8}.status-svg.in_progress{color:#3b82f6}.status-svg.blocked{color:#ef4444}.status-svg.done{color:#10b981}.col-count{font-size:10px;color:var(--t-3);font-weight:500;background:var(--bg-card);padding:1px 7px;border-radius:var(--r-pill);border:1px solid var(--line-1);min-width:22px;text-align:center}.col-head-right{display:flex;gap:2px;opacity:0;transition:opacity var(--m-fast)}.column:hover .col-head-right{opacity:1}.col-head-right .icon{background:transparent;color:var(--t-3);border:none;width:22px;height:22px;padding:4px}.col-head-right .icon:hover{background:var(--bg-card);color:var(--t-1)}.dropzone{padding:8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1;min-height:80px}.dropzone.dragover{background:var(--brand-tint-2);outline:2px dashed var(--brand-400);outline-offset:-4px}.col-empty{display:flex;align-items:center;justify-content:center;border:1px dashed var(--line-2);border-radius:var(--r-2);padding:18px 10px;color:var(--t-4);font-size:var(--tx-sm);text-align:center}.add-task-inline{margin:0 8px 8px;display:flex;align-items:center;gap:6px;padding:7px 10px;height:30px;font-size:var(--tx-md);color:var(--t-3);font-weight:400;background:transparent;border:1px solid transparent;border-radius:var(--r-2);cursor:pointer;transition:all var(--m-fast);width:calc(100% - 16px);justify-content:flex-start}.add-task-inline:hover{background:var(--bg-card);color:var(--t-1);border-color:var(--line-2)}.add-task-inline svg{width:13px;height:13px;opacity:.7}.task-card{background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-3);padding:10px 12px 10px 14px;cursor:grab;display:flex;flex-direction:column;gap:6px;transition:border-color var(--m-fast),background var(--m-fast),box-shadow var(--m-fast);position:relative;overflow:hidden}.task-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent;transition:background var(--m-fast)}.task-card.pri-critical:before{background:var(--pr-crit)}.task-card.pri-high:before{background:var(--pr-hi)}.task-card.pri-medium:before{background:var(--pr-med)}.task-card.pri-low:before{background:var(--pr-lo);opacity:.55}.task-card:hover{border-color:var(--line-3);box-shadow:var(--sh-1)}.task-card.is-selected{border-color:var(--brand-400);background:var(--brand-tint-2)}.task-card:active{cursor:grabbing}.task-card.is-dragging{opacity:.5;transform:rotate(1deg)}.tc-top{display:flex;align-items:center;justify-content:space-between;min-height:16px}.card-select{display:inline-flex;align-items:center;gap:6px;min-width:0;cursor:pointer}.card-select input{width:13px;height:13px;margin:0;accent-color:var(--brand-500);flex-shrink:0}.task-ref{font-family:SFMono-Regular,ui-monospace,monospace;font-size:10px;color:var(--t-4);font-weight:500;letter-spacing:.02em}.task-card h3{margin:0;font-size:var(--tx-md);font-weight:500;color:var(--t-1);line-height:1.4}.task-card p{margin:0;font-size:var(--tx-sm);color:var(--t-3);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-card .tc-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:6px;border-top:1px solid var(--line-1);margin-top:2px}.task-card .tc-left{display:flex;align-items:center;gap:7px;font-size:var(--tx-xs);color:var(--t-3)}.pri-icon{display:inline-flex;align-items:center}.pri-icon svg{width:12px;height:12px}.pri-icon.critical{color:var(--pr-crit)}.pri-icon.high{color:var(--pr-hi)}.pri-icon.medium{color:var(--pr-med)}.pri-icon.low{color:var(--pr-lo)}.task-card .due{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:var(--r-1);background:var(--bg-elev);color:var(--t-2);font-weight:500}.task-card .due svg{width:11px;height:11px;opacity:.85}.task-card .due.overdue{background:#dc262629;color:#ff8a8a}.task-card .due.today{background:#f59e0b29;color:#fbbf24}:root[data-theme=light] .task-card .due.overdue{background:#fee2e2;color:var(--pr-crit)}:root[data-theme=light] .task-card .due.today{background:#fef3c7;color:#92400e}.task-card .blocked-reason{font-size:var(--tx-xs);background:var(--st-block-bg);color:var(--st-block-fg);padding:5px 8px;border-radius:var(--r-2);margin:0;display:flex;align-items:center;gap:6px;line-height:1.4}.task-card .blocked-reason svg{width:12px;height:12px;flex-shrink:0}.tc-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--m-fast)}.task-card:hover .tc-actions{opacity:1}.tc-actions button{background:transparent;border:1px solid transparent;width:22px;height:22px;padding:0;color:var(--t-3)}.tc-actions button:hover{background:var(--bg-elev);color:var(--t-1);border-color:var(--line-2)}.tc-actions button svg{width:12px;height:12px}.avatar.unassigned svg{width:12px;height:12px}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:var(--r-1);white-space:nowrap}.status-pill.todo{background:var(--st-todo-bg);color:var(--st-todo-fg)}.status-pill.in_progress{background:var(--st-prog-bg);color:var(--st-prog-fg)}.status-pill.blocked{background:var(--st-block-bg);color:var(--st-block-fg)}.status-pill.done{background:var(--st-done-bg);color:var(--st-done-fg)}.list-view{background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-3);overflow:hidden}.list-group{border-bottom:1px solid var(--line-1)}.list-group:last-child{border-bottom:none}.list-group-head{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-soft);border-bottom:1px solid var(--line-1);font-weight:600;font-size:var(--tx-md);cursor:pointer;-webkit-user-select:none;user-select:none}.list-group-head .col-status-icon{display:inline-flex}.list-group-head .lg-count{font-size:10px;color:var(--t-3);font-weight:500;background:var(--bg-card);padding:1px 6px;border-radius:var(--r-pill);border:1px solid var(--line-1)}.list-group-head .chevron{margin-left:auto;color:var(--t-3);width:14px;height:14px;transition:transform var(--m-fast)}.list-group.collapsed .chevron{transform:rotate(-90deg)}.list-group.collapsed .list-table-wrap,.list-group.collapsed .list-add-row{display:none}.list-table{width:100%;border-collapse:collapse;font-size:var(--tx-md)}.list-table thead th{text-align:left;font-size:10px;font-weight:600;color:var(--t-3);text-transform:uppercase;letter-spacing:.05em;padding:7px 12px;background:var(--bg-card);border-bottom:1px solid var(--line-1)}.list-table tbody tr{border-bottom:1px solid var(--line-1);transition:background var(--m-fast);height:36px}.list-table tbody tr:hover{background:var(--bg-elev);cursor:pointer}.list-table tbody tr:last-child{border-bottom:none}.list-table td{padding:6px 12px;vertical-align:middle;color:var(--t-1)}.list-table td.col-name{font-weight:500;max-width:480px}.list-table td.col-name .name-wrap{display:inline-flex;align-items:center;gap:8px}.list-table td.col-name .check-circle{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--line-3);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:transparent}.list-table td.col-name .check-circle:hover{border-color:var(--brand-400)}.list-table td.col-name .check-circle svg{width:9px;height:9px}.list-table tr.is-done td.col-name .check-circle{background:var(--brand-500);border-color:var(--brand-500);color:#fff}.list-table tr.is-done td.col-name .name-text{text-decoration:line-through;color:var(--t-3)}.list-table td.col-due,.list-table td.col-priority,.list-table td.col-status,.list-table td.col-assignee{white-space:nowrap}.list-table td.col-due{color:var(--t-2);font-size:var(--tx-sm)}.list-table td.col-due .due{padding:2px 6px;border-radius:var(--r-1);background:var(--bg-elev);display:inline-block}.list-table td.col-due .due.overdue{background:#dc26262e;color:#ff8a8a;font-weight:500}.list-table td.col-due .due.today{background:#f59e0b2e;color:#fbbf24;font-weight:500}:root[data-theme=light] .list-table td.col-due .due.overdue{background:#fee2e2;color:var(--pr-crit)}:root[data-theme=light] .list-table td.col-due .due.today{background:#fef3c7;color:#92400e}.list-add-row{padding:6px 14px;border-top:1px solid var(--line-1)}.list-add-row .add-task-inline{width:100%;margin:0}.pri-cell{display:inline-flex;align-items:center;gap:5px;font-size:var(--tx-sm);color:var(--t-2);text-transform:capitalize}.pri-cell svg{width:11px;height:11px}.pri-cell.critical svg{color:var(--pr-crit)}.pri-cell.high svg{color:var(--pr-hi)}.pri-cell.medium svg{color:var(--pr-med)}.pri-cell.low svg{color:var(--pr-lo)}.empty-state{text-align:center;padding:64px 24px;color:var(--t-3)}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-3);background:var(--bg-elev);color:var(--brand-400);margin-bottom:12px}.empty-state-icon svg{width:22px;height:22px}.empty-state h3{margin:8px 0 4px;color:var(--t-1);font-weight:600;font-size:var(--tx-lg)}.empty-state p{margin:0 0 16px;font-size:var(--tx-md)}.empty-actions{display:flex;gap:8px;justify-content:center}.empty-actions button{display:inline-flex;align-items:center;gap:6px}.empty-actions svg{width:14px;height:14px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;animation:fadein var(--m-base)}:root[data-theme=light] .scrim{background:#14162373}@keyframes fadein{0%{opacity:0}to{opacity:1}}.chat-panel{position:fixed;top:0;right:0;bottom:0;width:var(--chat-w);max-width:92vw;background:var(--bg-card);border-left:1px solid var(--line-1);box-shadow:var(--sh-4);transform:translate(100%);transition:transform .24s cubic-bezier(.16,.84,.3,1);z-index:90;display:flex;flex-direction:column}.chat-panel.open{transform:translate(0)}.chat-card{display:flex;flex-direction:column;height:100%}.chat-heading{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 14px;border-bottom:1px solid var(--line-1)}.chat-heading h2{margin:0;font-size:var(--tx-lg);font-weight:600}.chat-heading .eyebrow{margin:0 0 2px;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--brand-400);text-transform:uppercase}:root[data-theme=light] .chat-heading .eyebrow{color:var(--brand-600)}.chat-controls{display:flex;align-items:center;gap:4px}.tts-toggle{display:inline-flex;align-items:center;gap:5px;font-size:var(--tx-sm);color:var(--t-2);cursor:pointer}.tts-toggle input{width:auto}.chat-log{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.chat-log .empty{color:var(--t-4);font-size:var(--tx-sm);text-align:center;padding:32px 12px}.chat-message{padding:8px 11px;border-radius:var(--r-3);font-size:var(--tx-md);max-width:90%;line-height:1.45}.chat-message.user{align-self:flex-end;background:var(--brand-500);color:#fff;border-bottom-right-radius:4px}.chat-message.assistant{align-self:flex-start;background:var(--bg-elev);color:var(--t-1);border-bottom-left-radius:4px;border:1px solid var(--line-1)}.chat-message p{margin:0}.chat-meta{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:10px;opacity:.85}.chat-action{background:#ffffff2e;padding:1px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.chat-message.assistant .chat-action{background:var(--brand-tint);color:var(--brand-400)}:root[data-theme=light] .chat-message.assistant .chat-action{color:var(--brand-700)}.speak-button{background:transparent!important;border:1px solid var(--line-2)!important;color:var(--t-2)!important;padding:2px 8px!important;font-size:var(--tx-xs)!important;height:auto!important}.chat-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chat-options button{background:var(--bg-card)!important;border:1px solid var(--line-2)!important;color:var(--t-1)!important;padding:6px 10px!important;font-size:var(--tx-sm)!important;height:auto!important;flex-direction:column;align-items:flex-start}.chat-options button small{font-size:10px;color:var(--t-3);margin-top:2px}.chat-form{display:flex;gap:6px;padding:10px 12px;border-top:1px solid var(--line-1);background:var(--bg-card);align-items:center}.chat-form input{flex:1;min-width:0}.chat-form button{padding:8px;height:32px}.voice-controls{display:inline-flex;align-items:center;gap:4px}.voice-mode{height:32px;padding:0 6px;font-size:var(--tx-xs);font-weight:500;background:var(--bg-elev);color:var(--t-2);border:1px solid var(--line-2);border-radius:var(--r-2);cursor:pointer}.voice-language{max-width:116px}.voice-mode:hover{border-color:var(--line-3);color:var(--t-1)}#stop-rec-button{background:#ef4444!important;color:#fff!important;border-color:#ef4444!important;animation:pulse-stop 1.1s infinite}@keyframes pulse-stop{0%{box-shadow:0 0 #ef44448c}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}#chat-error{padding:0 14px 8px}#mic-button.listening{background:var(--brand-500)!important;color:#fff!important;border-color:var(--brand-500)!important;animation:pulse 1.2s infinite}@keyframes pulse{0%{box-shadow:0 0 #7b68ee73}70%{box-shadow:0 0 0 10px #7b68ee00}to{box-shadow:0 0 #7b68ee00}}.voice-help{margin:0 14px 12px;padding:10px 12px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--r-2);font-size:var(--tx-sm);color:#fbbf24}:root[data-theme=light] .voice-help{background:#fffbeb;border-color:#fde68a;color:#92400e}.voice-help strong{display:block;margin-bottom:4px;color:var(--t-1)}.voice-help ol{margin:6px 0 0;padding-left:18px}.voice-help li{margin:2px 0}dialog{border:none;border-radius:var(--r-4);padding:0;box-shadow:var(--sh-4);background:var(--bg-modal);color:var(--t-1);width:540px;max-width:92vw}dialog::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}:root[data-theme=light] dialog::backdrop{background:#14162380}.dialog-form{padding:0}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line-1)}.dialog-head h2{margin:0;font-size:var(--tx-lg);font-weight:600}.dialog-head .icon{background:transparent;color:var(--t-3);border:none}.dialog-head .icon:hover{background:var(--bg-elev);color:var(--t-1)}.task-form{display:flex;flex-direction:column;gap:12px;padding:16px 18px}.task-form .form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.task-form menu{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line-1);margin:4px 0 0;background:var(--bg-soft);list-style:none}.edit-panel{position:fixed;top:0;right:0;bottom:0;width:560px;max-width:96vw;background:var(--bg-card);border-left:1px solid var(--line-1);box-shadow:-16px 0 48px #00000059;transform:translate(100%);transition:transform var(--m-mid);z-index:90;display:flex;flex-direction:column}.edit-panel.open{transform:translate(0)}.settings-panel .ep-body{gap:16px;display:flex;flex-direction:column;padding:20px 24px}.ep-title-text{font-size:var(--tx-md);font-weight:600;color:var(--t-1)}.member-list{display:flex;flex-direction:column;gap:4px}.member-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--r-2);transition:background var(--m-fast)}.member-row:hover{background:var(--bg-elev)}.member-id{display:flex;flex-direction:column;line-height:1.2;min-width:0}.member-id strong{font-size:var(--tx-md);color:var(--t-1)}.member-id span{font-size:var(--tx-xs);color:var(--t-3)}.member-id .you{color:var(--t-4);font-weight:400;font-size:var(--tx-xs)}.role-select{font-size:var(--tx-xs)!important;padding:4px 22px 4px 8px!important;min-width:84px}.role-badge{display:inline-block;padding:3px 10px;font-size:var(--tx-xs);font-weight:500;border-radius:var(--r-pill);background:var(--bg-elev);color:var(--t-3);border:1px solid var(--line-1);text-transform:capitalize}.role-badge.role-owner{background:#f59e0b1f;color:#f59e0b;border-color:#f59e0b40}.role-badge.role-admin{background:#a855f71f;color:#a855f7;border-color:#a855f740}.invite-form{display:grid;grid-template-columns:1fr auto auto;gap:6px;margin-bottom:10px}.invite-form input{min-width:0}.invite-list{display:flex;flex-direction:column;gap:4px}.invite-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:8px 12px;border:1px solid var(--line-1);border-radius:var(--r-2)}.invite-row:hover{border-color:var(--line-2);background:var(--bg-elev)}.invite-id{display:flex;flex-direction:column;line-height:1.2;min-width:0}.invite-id strong{font-size:var(--tx-sm);color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-id span{font-size:var(--tx-xs);color:var(--t-4)}.muted{color:var(--t-4);font-size:var(--tx-sm);padding:8px 0}#open-inbox{position:relative}.inbox-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;border-radius:999px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-1);line-height:1}.inbox-panel .ep-body{padding:12px 0}.inbox-list{display:flex;flex-direction:column}.inbox-item{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:flex-start;padding:12px 24px;background:transparent;border:none;border-left:3px solid transparent;text-align:left;cursor:pointer;font-family:inherit;color:inherit;border-bottom:1px solid var(--line-1);transition:background var(--m-fast),border-color var(--m-fast)}.inbox-item:hover{background:var(--bg-elev)}.inbox-item.is-unread{border-left-color:var(--brand-500);background:var(--bg-elev)}.inbox-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-1);color:var(--t-3);flex-shrink:0}.inbox-item.is-unread .inbox-icon{color:var(--brand-400)}.inbox-icon svg{width:14px;height:14px}.inbox-text{display:flex;flex-direction:column;gap:2px;min-width:0}.inbox-text strong{font-size:var(--tx-sm);font-weight:600;color:var(--t-1)}.inbox-text .inbox-body{font-size:var(--tx-sm);color:var(--t-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox-text .inbox-time{font-size:var(--tx-xs);color:var(--t-4);margin-top:2px}.unread-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-500);align-self:center;flex-shrink:0}.inbox-empty{text-align:center;padding:60px 24px;color:var(--t-4)}.inbox-empty-icon{width:56px;height:56px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-elev);color:var(--t-4)}.inbox-empty-icon svg{width:24px;height:24px}.inbox-empty h3{color:var(--t-1);font-size:var(--tx-md);margin:0 0 6px}.inbox-empty p{font-size:var(--tx-sm);margin:0}.edit-form{padding:0;gap:0;height:100%}.ep-head{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line-1);background:var(--bg-soft);flex-shrink:0}.ep-head-left{display:flex;align-items:center;gap:12px}.ep-head-right{display:flex;align-items:center;gap:4px}.ep-head-right .icon{background:transparent;color:var(--t-3);border:none}.ep-head-right .icon:hover{background:var(--bg-elev);color:var(--t-1)}#ep-delete:hover{color:#ef4444!important;background:#ef44441a!important}#ep-task-ref{font-size:11px;color:var(--t-4);font-family:ui-monospace,SFMono-Regular,monospace}.ep-body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px}.ep-title{font-size:22px!important;font-weight:600!important;background:transparent!important;border:1px solid transparent!important;padding:8px 10px!important;border-radius:var(--r-2);margin:-8px -10px 0;color:var(--t-1);width:calc(100% + 20px)}.ep-title:hover,.ep-title:focus{background:var(--bg-elev)!important;border-color:var(--line-2)!important}.ep-description{background:transparent!important;border:1px solid transparent!important;padding:10px!important;font-size:var(--tx-md);line-height:1.55;color:var(--t-2);resize:vertical;min-height:100px;margin:-10px;width:calc(100% + 20px);font-family:inherit}.ep-description:hover,.ep-description:focus{background:var(--bg-elev)!important;border-color:var(--line-2)!important}.ep-section h3{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--t-4);margin:0 0 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.ep-subtask-summary{font-size:11px;color:var(--t-3);font-weight:600;background:var(--bg-elev);border:1px solid var(--line-1);padding:1px 8px;border-radius:var(--r-pill);letter-spacing:.02em;text-transform:none}.ep-subtask-summary:empty{display:none}.subtask-list{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:2px}.subtask-empty{padding:12px;text-align:center;color:var(--t-4);font-size:var(--tx-sm);border:1px dashed var(--line-2);border-radius:var(--r-2)}.subtask-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--r-2);transition:background var(--m-fast)}.subtask-row:hover{background:var(--bg-elev)}.subtask-row.is-done .subtask-title{color:var(--t-4);text-decoration:line-through}.subtask-check{background:transparent;border:none;padding:2px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--t-3)}.subtask-check:hover{color:var(--brand-400)}.subtask-check svg{width:16px;height:16px}.subtask-circle{display:inline-block;width:14px;height:14px;border:1.5px solid var(--line-3);border-radius:50%;transition:border-color var(--m-fast)}.subtask-row.is-done .subtask-check{color:#10b981}.subtask-title{flex:1;font-size:var(--tx-md);color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subtask-row [data-subtask-delete]{opacity:0;transition:opacity var(--m-fast);width:22px;height:22px;padding:4px;background:transparent;border:none;color:var(--t-3)}.subtask-row:hover [data-subtask-delete]{opacity:1}.subtask-row [data-subtask-delete]:hover{color:#ef4444;background:#ef44441a}.subtask-row [data-subtask-delete] svg{width:12px;height:12px}.subtask-add{display:flex;gap:6px}.subtask-add input{flex:1}.avatar.xs{width:18px;height:18px;font-size:9px}.subtask-progress{display:inline-flex;align-items:center;gap:6px;font-size:var(--tx-xs);color:var(--t-3);font-weight:500;padding:2px 0}.subtask-progress svg{width:11px;height:11px;opacity:.7}.sp-text{font-variant-numeric:tabular-nums}.sp-bar{flex:1;min-width:40px;max-width:90px;height:4px;background:var(--bg-elev);border-radius:var(--r-pill);overflow:hidden}.sp-fill{display:block;height:100%;background:linear-gradient(90deg,var(--brand-400),var(--brand-500));transition:width var(--m-mid)}.ep-section textarea{width:100%;resize:vertical;min-height:60px;font-family:inherit}.ep-props{display:grid;gap:4px;margin:0}.ep-prop{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid var(--line-1)}.ep-prop:last-child{border-bottom:none}.ep-prop dt{font-size:var(--tx-sm);color:var(--t-3);font-weight:500}.ep-prop dd{margin:0}.ep-prop dd select,.ep-prop dd input{width:100%}.ep-meta-section dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.ep-meta dt{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--t-4);margin-bottom:2px}.ep-meta dd{margin:0;font-size:var(--tx-sm);color:var(--t-2)}.ep-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line-1);background:var(--bg-soft);flex-shrink:0}.status-pill .col-status-icon{display:inline-flex}.status-pill .col-status-icon svg{width:12px;height:12px}@media (max-width: 640px){.edit-panel{width:100vw}}.landing-shell{min-height:100vh;background:radial-gradient(900px 500px at 90% -10%,rgba(123,104,238,.18),transparent 60%),radial-gradient(700px 400px at -10% 20%,rgba(14,165,233,.1),transparent 60%),var(--bg-app);display:flex;flex-direction:column}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;max-width:1200px;width:100%;margin:0 auto}.landing-nav .brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:var(--tx-lg);color:var(--t-1)}.landing-nav .brand-img{width:28px;height:28px;background:#fff;border-radius:6px;padding:3px;box-shadow:var(--sh-1)}.landing-nav .nav-links{display:flex;gap:22px}.landing-nav .nav-links a{color:var(--t-2);font-size:var(--tx-md);font-weight:500}.landing-nav .nav-links a:hover{color:var(--t-1);text-decoration:none}.landing-nav .nav-cta{display:flex;gap:8px;align-items:center}.landing{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;max-width:1200px;width:100%;margin:0 auto;padding:56px 32px 80px}.landing-hero h1{font-size:var(--tx-display);line-height:1.06;margin:18px 0 16px;letter-spacing:-.025em;font-weight:700;color:var(--t-1)}.landing-hero h1 span.grad{background:linear-gradient(135deg,var(--brand-400) 0%,#38bdf8 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-copy{font-size:var(--tx-lg);color:var(--t-2);line-height:1.6;margin:0 0 24px;max-width:540px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--tx-sm);font-weight:500;padding:5px 12px;border-radius:var(--r-pill);background:var(--brand-tint);color:var(--brand-400);border:1px solid var(--brand-200)}:root[data-theme=light] .badge{color:var(--brand-700)}.badge svg{width:13px;height:13px}.hero-actions{display:flex;gap:10px;margin-bottom:24px}.hero-actions button{padding:10px 18px;height:auto;font-size:var(--tx-base)}.hero-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.hero-bullets li{display:flex;align-items:center;gap:10px;font-size:var(--tx-md);color:var(--t-2)}.hero-bullets li svg{color:var(--brand-400);background:var(--brand-tint);padding:4px;width:20px;height:20px;border-radius:50%}.auth-card{background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-4);padding:8px;box-shadow:var(--sh-3)}.auth-tabs{display:flex;gap:2px;background:var(--bg-soft);padding:4px;border-radius:var(--r-3)}.auth-tabs button{flex:1;background:transparent;color:var(--t-3);border:none;padding:7px 12px;font-weight:500;font-size:var(--tx-md);height:auto}.auth-tabs button.active{background:var(--bg-card);color:var(--t-1);box-shadow:var(--sh-1)}.auth-tabs button:hover:not(.active){color:var(--t-1)}.auth-card .task-form{padding:16px 18px 20px;gap:12px}.auth-card .task-form h2{margin:0 0 4px;font-size:var(--tx-xl)}.auth-card .task-form button[type=submit]{width:100%;padding:10px;height:auto;justify-content:center}.auth-row{display:flex;gap:8px}.auth-row button{flex:1}.features{background:var(--bg-side);border-top:1px solid var(--line-1);padding:64px 32px}.features-inner{max-width:1200px;margin:0 auto}.section-title{text-align:center;font-size:var(--tx-2xl);font-weight:700;margin:0 0 36px;letter-spacing:-.015em}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.feature-grid article{padding:20px 18px;background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-3);transition:border-color var(--m-fast),transform var(--m-fast),box-shadow var(--m-fast);display:flex;flex-direction:column;gap:8px}.feature-grid article:hover{border-color:var(--brand-300);transform:translateY(-2px);box-shadow:var(--sh-2)}.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-2);background:var(--brand-tint);color:var(--brand-400);margin-bottom:4px}:root[data-theme=light] .feature-icon{color:var(--brand-600)}.feature-icon svg{width:16px;height:16px}.feature-grid article strong{font-size:var(--tx-base);color:var(--t-1);font-weight:600}.feature-grid article span{font-size:var(--tx-sm);color:var(--t-3);line-height:1.5}.landing-footer{display:flex;justify-content:space-between;padding:18px 32px;max-width:1200px;width:100%;margin:0 auto;font-size:var(--tx-sm);color:var(--t-3);border-top:1px solid var(--line-1)}.shell.narrow{max-width:520px;margin:80px auto;padding:32px;background:var(--bg-card);border:1px solid var(--line-1);border-radius:var(--r-4);box-shadow:var(--sh-2)}.shell.narrow h1{margin:0 0 12px}@media (max-width: 1100px){.landing{grid-template-columns:1fr;gap:32px}.feature-grid{grid-template-columns:repeat(2,1fr)}.column{width:264px;min-width:264px}.board{gap:12px}}@media (max-width: 900px){:root{--sidebar-w: 56px}.sidebar .brand-name,.sidebar .ws-switcher,.sidebar .section-label,.nav-item span,.nav-item .nav-badge,.user-meta,.theme-toggle{display:none}.sidebar .brand{justify-content:center;padding:12px 0}.nav-item{justify-content:center;padding:8px}.project-nav-row{display:block}.project-nav-row .project-action{display:none}.user-card{justify-content:center;padding:8px 0}.search-box input{width:140px}.task-form .form-row{grid-template-columns:1fr}.crumbs .crumb:not(.current){display:none}.crumbs .crumb-sep{display:none}.view-toolbar{height:auto;min-height:var(--toolbar-h);align-items:flex-start;flex-wrap:wrap;gap:8px;padding-top:6px;padding-bottom:6px}.view-tabs{height:32px;flex:1 1 auto}.view-tab{height:32px}.toolbar-tools{flex:1 1 100%;justify-content:flex-start;gap:6px}.filter-controls{height:auto;flex-wrap:wrap}.saved-view-select{max-width:156px}.filter-controls select,.sort-control select{max-width:132px}.active-filter-row{padding-top:6px}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:1fr}.column{width:248px;min-width:248px}}@media (max-width: 640px){.page-header,.view-toolbar,.page-content{padding-left:12px;padding-right:12px}.feature-grid{grid-template-columns:1fr}.landing-nav{padding:14px 16px}.landing{padding:32px 16px 56px}.toolbar-tools .tool-btn span{display:none}.page-header{align-items:flex-start;height:auto;min-height:var(--header-h);gap:10px;padding-top:8px;padding-bottom:8px}.page-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px}.view-toolbar{align-items:stretch}.view-tabs{order:1;flex:1 1 100%;overflow-x:auto;scrollbar-width:none}.view-tabs::-webkit-scrollbar{display:none}.toolbar-tools{order:2;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.toolbar-tools::-webkit-scrollbar{display:none}.filter-controls{flex:1 0 100%;gap:6px}.filter-controls label,.sort-control,.saved-views{flex:1 1 calc(50% - 6px);min-width:132px}.saved-views{flex-basis:100%;min-width:0}.filter-controls label span,.sort-control span{display:none}.filter-controls select,.sort-control select,.saved-view-select{width:100%;max-width:none}.saved-views .ghost.sm,.clear-filters-btn{flex:0 0 auto}.active-filter-row{padding-left:12px;padding-right:12px}.report-hero{align-items:flex-start;flex-direction:column}.report-score{width:100%;min-height:72px}.report-metrics{grid-template-columns:1fr}.report-risk-item{grid-template-columns:1fr;gap:8px}.report-risk-meta{justify-content:flex-start;flex-wrap:wrap;white-space:normal}.column{width:84vw;min-width:84vw;max-width:320px}.board{gap:10px;scroll-snap-type:x mandatory}.column{scroll-snap-align:start}.net-status .net-label{display:none}.net-status{padding:6px}}.activity-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}.timeline-item{display:flex;gap:10px}.comment-item{background:var(--surface-2, #f7f8fa);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:10px 12px}.comment-body-wrap{flex:1;min-width:0}.comment-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.comment-head strong{font-size:13px}.comment-time{font-size:11px;color:var(--muted, #6b7280);flex:1}.comment-body{font-size:13px;line-height:1.45;word-wrap:break-word}.comment-body .mention{color:var(--accent, #2563eb);font-weight:600}.activity-item{align-items:center;padding:4px 4px 4px 6px}.activity-item .activity-dot{width:6px;height:6px;border-radius:50%;background:var(--muted, #9ca3af);margin-top:6px;flex:0 0 6px}.activity-text{display:flex;flex:1;gap:8px;align-items:baseline;font-size:12px;color:var(--muted-strong, #4b5563)}.activity-time{margin-left:auto;font-size:11px;color:var(--muted, #6b7280)}.comment-compose{display:flex;flex-direction:column;gap:6px}.comment-compose textarea{width:100%;resize:vertical;min-height:56px;padding:8px 10px;border:1px solid var(--border, #e5e7eb);border-radius:8px;font:inherit}.comment-actions{display:flex;align-items:center;gap:12px}.comment-hint{flex:1;font-size:11px}.avatar.sm{width:26px;height:26px;font-size:11px;flex:0 0 26px}.shortcuts-dialog{border:none;border-radius:12px;padding:0;max-width:420px;width:90vw;box-shadow:0 20px 60px #00000040}.shortcuts-dialog::backdrop{background:#0006}.shortcuts-form{padding:18px 20px}.shortcuts-form header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.shortcuts-form h2{margin:0;font-size:16px}.shortcut-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.shortcut-list li{display:flex;align-items:center;gap:10px;font-size:13px}.shortcut-list li span{color:var(--muted-strong, #4b5563);flex:1}.shortcut-list kbd{background:var(--surface-2, #f3f4f6);border:1px solid var(--border, #e5e7eb);border-bottom-width:2px;border-radius:6px;padding:1px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;min-width:18px;text-align:center}.comment-edit{display:flex;flex-direction:column;gap:6px}.comment-edit-input{width:100%;resize:vertical;min-height:60px;padding:6px 8px;border:1px solid var(--border, #e5e7eb);border-radius:6px;font:inherit}.comment-edit-actions{display:flex;gap:8px;justify-content:flex-end}.mention-popup{position:fixed;z-index:200;background:var(--surface, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;box-shadow:0 10px 30px #0000001f;padding:4px;max-width:320px;max-height:240px;overflow-y:auto}.mention-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;background:transparent;border-radius:6px;cursor:pointer;font:inherit;text-align:left}.mention-item:hover,.mention-item.active{background:var(--surface-2, #f3f4f6)}.mention-name{flex:1;font-size:13px}.mention-role{font-size:11px;color:var(--muted, #6b7280);text-transform:capitalize}.comment-count{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--muted, #6b7280);padding:1px 6px;border-radius:8px;background:var(--surface-2, #f3f4f6)}.comment-count svg{width:11px;height:11px}.comment-count.inline{margin-left:6px;vertical-align:middle}.col-select{width:32px;padding-right:0;text-align:center}.col-select input[type=checkbox]{cursor:pointer}tr.is-selected td{background:#2563eb0f}[data-theme=dark] tr.is-selected td{background:#60a5fa1a}.bulk-bar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:150;display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:10px;background:var(--surface, #fff);color:var(--text, #111);border:1px solid var(--border, #e5e7eb);border-radius:12px;padding:8px 12px;box-shadow:0 16px 40px #0000002e;max-width:min(880px,calc(100vw - 24px))}.bulk-count{font-size:13px;padding-right:8px;border-right:1px solid var(--border, #e5e7eb)}.bulk-count strong{font-weight:700}.bulk-select{font:inherit;padding:4px 8px;border:1px solid var(--border, #e5e7eb);border-radius:6px;background:var(--surface, #fff);color:inherit}.bulk-date{min-height:30px;max-width:138px}.bulk-bar .danger{background:#dc2626;color:#fff;border:none;padding:5px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.bulk-bar .danger:hover{background:#b91c1c}@media (max-width: 640px){.bulk-bar{left:12px;right:12px;bottom:12px;transform:none;justify-content:flex-start;max-width:none;max-height:45vh;overflow:auto}.bulk-count{flex:1 0 100%;padding:0 0 6px;border-right:0;border-bottom:1px solid var(--border, #e5e7eb)}.bulk-select,.bulk-date{flex:1 1 calc(50% - 8px);min-width:120px;max-width:none}.bulk-bar .danger,.bulk-bar button{flex:1 1 auto;justify-content:center}}.section-label{display:flex;align-items:center;justify-content:space-between}.section-label button.ghost.icon.sm{padding:2px;opacity:.7}.section-label button.ghost.icon.sm:hover{opacity:1}.projects-nav .nav-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-nav-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:2px}.project-nav-row .project-nav-link{min-width:0}.project-nav-row .project-action{width:20px;height:20px;padding:2px;opacity:0}.project-nav-row:hover .project-action,.project-nav-row:focus-within .project-action{opacity:.75}.project-nav-row .project-action:hover{opacity:1}.project-nav-row .project-action.danger:hover{color:var(--danger, #ef4444)}.project-nav-row .project-action.success:hover{color:var(--st-done)}.completed-projects-label,.archived-projects-label{padding-top:10px}.completed-projects-label em,.archived-projects-label em{font-style:normal;color:var(--t-4);font-size:10px}.project-nav-row.completed .completed-project,.project-nav-row.archived .archived-project{color:var(--t-3)}.project-nav-row.completed .completed-project svg,.project-nav-row.archived .archived-project svg{opacity:.7}.project-nav-row .project-action.restore:hover{color:var(--brand-400)}.md p{margin:0 0 .5em}.md p:last-child{margin-bottom:0}.md .md-h1,.md .md-h2,.md .md-h3{margin:.25em 0 .35em;line-height:1.25;font-weight:600}.md .md-h1{font-size:1.15em}.md .md-h2{font-size:1.05em}.md .md-h3{font-size:1em}.md .md-ul,.md .md-ol{margin:.25em 0 .5em;padding-left:1.4em}.md .md-ul li,.md .md-ol li{margin:.1em 0}.md .md-quote{margin:.25em 0 .5em;padding:.25em .75em;border-left:3px solid var(--border, #d0d7de);color:var(--muted, #57606a);background:var(--surface-muted, rgba(127,127,127,.05));border-radius:0 4px 4px 0}.md .md-inline{background:var(--surface-muted, rgba(127,127,127,.1));padding:0 .3em;border-radius:3px;font-size:.92em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.md .md-code{background:var(--surface-muted, rgba(127,127,127,.1));padding:.55em .7em;border-radius:6px;overflow:auto;margin:.35em 0 .5em;font-size:.9em}.md .md-code code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre}.md hr{border:0;border-top:1px solid var(--border, #d0d7de);margin:.5em 0}.md a{color:var(--accent, #0969da);text-decoration:underline}.tc-desc.md{font-size:.9em;color:var(--text-muted, inherit);margin:4px 0 6px;max-height:6em;overflow:hidden}.md-hint{display:block;margin-top:4px;font-size:.75em;color:var(--muted, #6e7781)}.project-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:10px;background:var(--brand-tint-2, rgba(127,127,127,.08));color:var(--t-2, inherit);font-size:.72em;max-width:130px}.project-chip svg{width:11px;height:11px;opacity:.8;flex-shrink:0}.project-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-chip.inline{margin-left:6px;vertical-align:middle}.recurrence-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:10px;background:var(--bg-elev, rgba(127,127,127,.08));color:var(--t-2, inherit);font-size:.72em;max-width:130px}.recurrence-chip svg{width:11px;height:11px;opacity:.8;flex-shrink:0}.recurrence-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurrence-chip.inline{margin-left:6px;vertical-align:middle}.col-actions{white-space:nowrap}.app-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,12px);z-index:120;padding:9px 13px;border-radius:var(--r-pill, 999px);background:var(--bg-card, #111827);color:var(--t-1, #fff);border:1px solid var(--line-2, rgba(255,255,255,.12));box-shadow:var(--sh-3, 0 8px 24px rgba(0,0,0,.25));opacity:0;pointer-events:none;transition:opacity var(--m-fast, .14s),transform var(--m-fast, .14s)}.app-toast.show{opacity:1;transform:translate(-50%)}
