:root{--accent-50: #eef3ef;--accent-100: #dde8e0;--accent-300: #9dbba8;--accent-500: #2f5d4a;--accent-600: #264d3d;--accent-700: #1d3c30;--accent-rgb: 47, 93, 74;--clay-500: #a35a3c;--ochre-400: #c2902f;--plum-500: #8a6496;--slate-500: #5f7f99;--ink-900: #1c1a17;--ink-800: #2a2723;--ink-700: #3b3731;--ink-500: #67615a;--ink-400: #857e73;--ink-300: #aaa397;--ink-200: #d3cdc1;--line: #e3ddd1;--line-soft: #ece7dd;--surface: #fffdf9;--surface-sunken: #f4f0e8;--canvas: #f7f4ee;--sidebar-bg: #efeae1;--status-draft: var(--ink-300);--status-todo: var(--slate-500);--status-in_progress: var(--ochre-400);--status-testing: var(--plum-500);--status-done: #4e8a5f;--success: #3f7a52;--success-bg: #e8f1ea;--warning: #9a6418;--warning-bg: #f6ecda;--danger: #a8372b;--danger-bg: #f7e6e2;--info: #3d6585;--info-bg: #e5edf3;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 14px;--r-full: 999px;--shadow-xs: 0 1px 1px rgba(60, 45, 25, .04);--shadow-sm: 0 1px 2px rgba(60, 45, 25, .05), 0 1px 3px rgba(60, 45, 25, .04);--shadow-md: 0 1px 2px rgba(60, 45, 25, .05), 0 6px 16px rgba(60, 45, 25, .07);--shadow-lg: 0 2px 6px rgba(60, 45, 25, .06), 0 20px 48px rgba(60, 45, 25, .14);--shadow-focus: 0 0 0 3px rgba(47, 93, 74, .18);--ease: cubic-bezier(.32, .72, 0, 1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-serif: "Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:15px;color:var(--ink-800);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01","ss03"}::selection{background:var(--accent-100);color:var(--accent-700)}.topbar h1,.modal h2,.drawer-header h2,.login-form h1,.profile-identity h2,.notifications-header h2,.stats-card-header h2,.user-form h3{font-family:var(--font-serif);font-weight:500;letter-spacing:-.01em;font-optical-sizing:auto}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--r-sm)}*{scrollbar-width:thin;scrollbar-color:var(--ink-200) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--ink-200);border:3px solid transparent;background-clip:content-box;border-radius:var(--r-full)}*::-webkit-scrollbar-thumb:hover{background-clip:content-box;background-color:var(--ink-300)}*::-webkit-scrollbar-track{background:transparent}button{font-family:inherit;font-size:.875rem;font-weight:500;letter-spacing:-.005em;padding:.5rem .95rem;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--ink-700);cursor:pointer;transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease)}button:hover{border-color:var(--ink-200);background:var(--surface-sunken)}button:active{background:var(--line-soft)}button:disabled{opacity:.55;cursor:default;transform:none}.login-page{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;gap:1rem;background:radial-gradient(80% 60% at 50% 0%,rgba(var(--accent-rgb),.06),transparent 70%),var(--canvas)}.login-language{width:100%;max-width:400px;display:flex;justify-content:flex-end}.login-page .language-switcher{border-color:var(--line);background:var(--surface)}.login-form{width:100%;max-width:400px;display:flex;flex-direction:column;gap:1rem;padding:2.5rem 2.25rem 2.25rem;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:login-rise .6s var(--ease) both}@keyframes login-rise{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion: reduce){.login-form{animation:none}}.login-brand{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:.75rem;text-align:center}.brand-mark{width:2.75rem;height:2.75rem;border-radius:var(--r-md)}.login-form h1{margin:.35rem 0 0;font-size:2rem;line-height:1.1;color:var(--ink-900)}.login-tagline{margin:0;font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--ink-500)}.login-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;font-weight:500;color:var(--ink-700)}.login-form input{padding:.7rem .85rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-900);font-family:inherit;font-size:.95rem;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.login-form input::placeholder{color:var(--ink-300)}.login-form input:focus{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.login-form button{margin-top:.5rem;padding:.75rem;border:none;border-radius:var(--r-sm);background:var(--accent-500);color:#fff;font-size:.95rem;font-weight:600}.login-form button:hover:not(:disabled){background:var(--accent-600)}.login-error{margin:0;padding:.6rem .8rem;border-radius:var(--r-sm);background:var(--danger-bg);border:1px solid rgba(168,55,43,.25);color:var(--danger);font-size:.85rem;font-weight:500}.app-shell{display:flex;min-height:100vh;background:var(--canvas)}@media (min-width: 701px){.app-shell.sidebar-collapsed .sidebar{display:none}}.topbar-title{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;color:var(--ink-700);background:var(--sidebar-bg);border-right:1px solid var(--line);position:relative}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1.25rem 1rem .6rem 1.35rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--ink-400)}.icon-button{background:transparent;border:1px solid transparent;color:var(--ink-500);border-radius:var(--r-sm);width:1.75rem;height:1.75rem;padding:0;font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.icon-button:hover{background:#3c2d190f;border-color:transparent;color:var(--ink-900)}.sidebar-nav{display:flex;flex-direction:column;padding:0 .6rem;gap:1px;overflow-y:auto;flex:1}.sidebar-item{position:relative;text-align:left;background:transparent;border:1px solid transparent;color:var(--ink-700);padding:.45rem .75rem;border-radius:var(--r-sm);cursor:pointer;font-size:.875rem;font-weight:450;transition:background .14s var(--ease),color .14s var(--ease)}.sidebar-item:hover{background:#3c2d190d;color:var(--ink-900);border-color:transparent}.sidebar-item.active{background:var(--surface);border-color:var(--line);color:var(--ink-900);font-weight:600;box-shadow:var(--shadow-xs)}.sidebar-project-row{display:flex;align-items:center;gap:.25rem}.sidebar-project-row .sidebar-item{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-project-settings,.sidebar-project-link,.sidebar-project-refresh{flex-shrink:0;width:1.75rem;height:1.75rem;font-size:.85rem;opacity:0;background:transparent;border-color:transparent;transition:opacity .16s var(--ease)}.sidebar-project-row:hover .sidebar-project-settings,.sidebar-project-row:hover .sidebar-project-link,.sidebar-project-link:focus-visible,.sidebar-project-settings:focus-visible,.sidebar-project-row:hover .sidebar-project-refresh,.sidebar-project-refresh:focus-visible{opacity:1}.sidebar-footer{padding:.6rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:1px}.sidebar-footer .sidebar-item{width:100%;font-size:.82rem;color:var(--ink-500)}.sidebar-footer .sidebar-item:hover{color:var(--ink-900)}.app-main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 2rem;background:#f7f4eee0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar h1{margin:0;font-size:1.6rem;line-height:1.2;color:var(--ink-900)}.topbar-actions{display:flex;gap:.75rem;align-items:center}.topbar-group{display:flex;align-items:center;gap:.35rem;padding-left:.75rem;border-left:1px solid var(--line)}.topbar-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-500);font-size:1.15rem;line-height:1;flex-shrink:0}.topbar-icon-btn:hover{border-color:transparent;background:#3c2d190f;color:var(--ink-900)}.topbar-icon-btn:focus-visible,.topbar-avatar:focus-visible,.topbar-cta:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.topbar-cta{display:inline-flex;align-items:center;gap:.4rem;height:2.25rem;padding:0 .95rem 0 .75rem;border-color:var(--accent-500);background:var(--accent-500);color:#fff;box-shadow:var(--shadow-sm)}.topbar-cta svg{font-size:1.05rem}.topbar-cta:hover{border-color:var(--accent-600);background:var(--accent-600)}.topbar-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;padding:0;border:1px solid var(--accent-100);border-radius:var(--r-full);background:var(--accent-50);color:var(--accent-700);font-size:.75rem;font-weight:600;letter-spacing:.02em;flex-shrink:0}.topbar-avatar:hover{border-color:var(--accent-300);background:var(--accent-100)}.topbar-avatar.active{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent-300)}.topbar-avatar-role{position:absolute;right:-.2rem;bottom:-.2rem;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:var(--r-full);background:var(--surface);color:var(--accent-600);font-size:.65rem;box-shadow:var(--shadow-xs)}.language-switcher{display:inline-flex;align-items:center;gap:.3rem;height:2.25rem;border:1px solid transparent;border-radius:var(--r-sm);padding:0 .5rem;color:var(--ink-500);font-size:.85rem;cursor:pointer}.topbar .language-switcher:hover{background:#3c2d190f;color:var(--ink-900)}.language-switcher-icon{font-size:1.1rem;flex-shrink:0}.language-switcher select{border:none;background:transparent;font-family:inherit;font-size:.8rem;font-weight:700;letter-spacing:.03em;color:inherit;cursor:pointer}.language-switcher select:focus{outline:none}.notifications{position:relative;display:inline-flex}.notifications-badge{position:absolute;top:.05rem;right:.05rem;display:inline-flex;align-items:center;justify-content:center;min-width:1.15rem;height:1.15rem;padding:0 .28rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.6rem;font-weight:800;line-height:1;box-shadow:0 0 0 2px var(--surface)}.notifications-panel{position:absolute;z-index:21;top:calc(100% + .55rem);right:0;width:min(390px,calc(100vw - 2rem));max-height:min(70vh,480px);overflow-y:auto;padding:.35rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.notifications-header{position:sticky;top:-.35rem;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .55rem;background:var(--surface)}.notifications-header h2{margin:0;font-size:.95rem;font-weight:800;letter-spacing:-.02em}.notifications-close{padding:.15rem .45rem;border:none;background:transparent;box-shadow:none;font-size:1.15rem;line-height:1;color:var(--ink-500)}.notifications-close:hover{background:transparent;color:var(--ink-800)}.notifications-list{display:flex;flex-direction:column;gap:.1rem;margin:0;padding:0;list-style:none}.notifications-item{display:flex;align-items:flex-start;gap:.55rem;width:100%;padding:.55rem .6rem;border:none;border-radius:var(--r-sm);background:transparent;box-shadow:none;text-align:left}.notifications-item:hover{background:var(--surface-sunken)}.notifications-dot{flex:0 0 auto;width:.45rem;height:.45rem;margin-top:.4rem;border-radius:50%;background:var(--accent-500)}.notifications-dot-status{background:var(--warning)}.notifications-dot-comment{background:var(--accent-500)}.notifications-content{display:flex;flex-direction:column;gap:.12rem;min-width:0}.notifications-text{font-size:.85rem;line-height:1.35;color:var(--ink-800)}.notifications-excerpt{overflow:hidden;font-size:.78rem;color:var(--ink-500);text-overflow:ellipsis;white-space:nowrap}.notifications-meta{font-size:.72rem;color:var(--ink-400)}.notifications-empty{margin:0;padding:1rem .75rem 1.25rem;font-size:.85rem;text-align:center;color:var(--ink-400)}.notifications-error{margin:.25rem .6rem;font-size:.78rem;color:var(--danger)}.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding:.75rem 2rem;background:transparent;border-bottom:1px solid var(--line)}.filter-chips{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-right:auto}.filter-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-500);border-radius:var(--r-full);padding:.28rem .75rem;font-size:.8rem;font-weight:500;cursor:pointer}.filter-chip:hover{border-color:var(--ink-200);color:var(--ink-900);background:var(--surface)}.filter-chip.active{background:var(--ink-800);border-color:var(--ink-800);color:var(--canvas)}.filter-chip-blocked.active{background:var(--danger);border-color:var(--danger)}.filter-search{padding:.42rem .8rem;border:1px solid var(--line);border-radius:var(--r-sm);min-width:220px;font-family:inherit;font-size:.85rem;background:var(--surface);color:var(--ink-800);transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.filter-search::placeholder{color:var(--ink-300)}.filter-select{padding:.42rem .7rem;border:1px solid var(--line);border-radius:var(--r-sm);font-family:inherit;font-size:.85rem;background:var(--surface);color:var(--ink-800);max-width:100%}.filter-select:focus{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.filter-search:focus{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.board-error{margin:1rem 1.75rem 0;padding:.75rem 1rem;background:var(--danger-bg);border:1px solid rgba(168,55,43,.22);color:var(--danger);font-size:.875rem;font-weight:500;border-radius:var(--r-md);display:flex;align-items:center;justify-content:space-between}.board-error button{background:transparent;border:none;color:inherit;cursor:pointer;font-size:1.1rem;padding:0 .25rem}.board-toolbar{display:flex;justify-content:flex-end;padding:.75rem 2rem 0}.column-picker{position:relative}.column-picker-toggle{padding:.3rem .7rem;font-size:.8rem;color:var(--ink-500);background:transparent;border-color:transparent}.column-picker-menu{position:absolute;right:0;top:calc(100% + .45rem);z-index:20;min-width:210px;padding:.55rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.column-picker-title{padding:.25rem .5rem .45rem;font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--ink-500)}.column-picker-item{display:flex;align-items:center;gap:.55rem;padding:.42rem .5rem;border-radius:var(--r-sm);font-size:.85rem;font-weight:500;color:var(--ink-700);cursor:pointer}.column-picker-item:hover{background:var(--surface-sunken)}.column-picker-item input{accent-color:var(--accent-500);cursor:pointer}.column-picker-item input:disabled{cursor:default}.column-picker-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.column-picker-dot-draft{background:var(--status-draft)}.column-picker-dot-todo{background:var(--status-todo)}.column-picker-dot-in_progress{background:var(--status-in_progress)}.column-picker-dot-testing{background:var(--status-testing)}.column-picker-dot-done{background:var(--status-done)}.column-picker-reset{width:100%;margin-top:.3rem;padding:.4rem .5rem;border:none;background:transparent;color:var(--accent-600);font-size:.78rem;text-align:left}.column-picker-reset:hover{background:var(--accent-50)}.board{display:flex;gap:.85rem;padding:1rem 2rem 2.5rem;overflow-x:auto;align-items:flex-start}.column{flex:1 1 0;min-width:216px;min-height:240px;background:#3c2d1906;border:1px solid transparent;border-radius:var(--r-lg);padding:.75rem .55rem .6rem;transition:border-color .16s var(--ease),background .16s var(--ease)}.column h2{margin:0 0 .7rem;padding:0 .35rem;font-size:.85rem;font-weight:600;letter-spacing:0;color:var(--ink-700);display:flex;align-items:center;gap:.5rem}.column h2:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-200);flex-shrink:0}.board .column-status-draft h2:before{background:var(--status-draft)}.board .column-status-todo h2:before{background:var(--status-todo)}.board .column-status-in_progress h2:before{background:var(--status-in_progress)}.board .column-status-testing h2:before{background:var(--status-testing)}.board .column-status-done h2:before{background:var(--status-done)}.column-count{margin-left:auto;font-weight:500;font-size:.78rem;letter-spacing:0;color:var(--ink-400);font-variant-numeric:tabular-nums}.column-drag-over{outline:none;border-color:var(--accent-300);background:rgba(var(--accent-rgb),.05)}.task-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:.75rem .8rem .7rem;margin-bottom:.45rem;cursor:grab;display:flex;flex-direction:column;gap:.45rem;touch-action:none;overflow:hidden;box-shadow:var(--shadow-xs);transition:box-shadow .18s var(--ease),border-color .18s var(--ease)}.task-card:hover{border-color:var(--ink-200);box-shadow:var(--shadow-md)}.task-card:focus-visible{box-shadow:var(--shadow-focus),var(--shadow-md)}.task-card-dragging{box-shadow:var(--shadow-lg);border-color:var(--ink-200);transform:rotate(-1deg);cursor:grabbing}body.dnd-dragging,body.dnd-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}.task-card-badges{display:flex;gap:.3rem .55rem;flex-wrap:wrap;align-items:center}.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;padding:0;border-radius:var(--r-full);background:transparent;color:var(--ink-500);font-weight:500;line-height:1.4;white-space:nowrap}.badge-priority-low,.badge-priority-medium{color:var(--ink-400)}.badge-priority-high{color:var(--warning)}.badge-priority-urgent{padding:.05rem .45rem;background:var(--danger-bg);color:var(--danger);font-weight:600}.task-type-bug{--type-fg: var(--clay-500);--type-bg: #f6e9e2}.task-type-feature{--type-fg: var(--accent-500);--type-bg: var(--accent-50)}.task-type-analysis{--type-fg: var(--slate-500);--type-bg: var(--info-bg)}.badge-type{color:var(--ink-700);font-weight:600}.badge-type:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--type-fg)}.task-type-picker{display:flex;gap:.4rem;flex-wrap:wrap}.task-type-option{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface);color:var(--ink-500);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease)}.task-type-option:hover{border-color:var(--type-fg);color:var(--type-fg)}.task-type-option.is-active{background:var(--type-bg);border-color:var(--type-fg);color:var(--type-fg)}.task-type-dot{width:.5rem;height:.5rem;border-radius:var(--r-full);background:var(--type-fg)}.field{display:flex;flex-direction:column;gap:.35rem}.badge-complexity{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-400);padding:0 .35rem;border:1px solid var(--line);border-radius:var(--r-sm);min-width:1.3rem;justify-content:center}.badge-project{padding:.05rem .45rem;border-radius:var(--r-sm)}.task-card-title{font-size:.9rem;font-weight:500;line-height:1.4;color:var(--ink-900)}.task-card-tags{display:flex;gap:.3rem;flex-wrap:wrap}.tag{font-size:.7rem;font-weight:500;background:var(--surface-sunken);border:1px solid var(--line-soft);color:var(--ink-400);padding:.08rem .45rem;border-radius:var(--r-sm)}.tag:before{content:"#";opacity:.5}.task-card-footer{display:flex;gap:.75rem;font-size:.75rem;font-weight:500;color:var(--ink-400);align-items:center}.task-card-footer:empty{display:none}.task-card-assignee{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:var(--r-full);background:var(--accent-50);border:1px solid var(--accent-100);color:var(--accent-700);font-size:.62rem;font-weight:600}.task-card-blocked{display:inline-flex;align-items:center;gap:.25rem;color:var(--danger);font-weight:600}.task-card-progress{display:flex;flex-direction:column;gap:.3rem}.task-card-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.72rem;font-weight:600;color:var(--ink-400)}.task-card-progress-pct{color:var(--ink-500);font-variant-numeric:tabular-nums}.task-card-progress-track{height:4px;border-radius:var(--r-full);background:var(--line-soft);overflow:hidden}.task-card-progress-fill{height:100%;border-radius:var(--r-full);background:var(--accent-500);transition:width .25s var(--ease)}.task-card-progress-fill-done{background:var(--status-done)}.task-card-progress-track:has(.task-card-progress-seg){display:flex}.task-card-progress-seg{height:100%;transition:width .25s var(--ease)}.task-card-progress-seg-draft{background:var(--status-draft)}.task-card-progress-seg-todo{background:var(--status-todo)}.task-card-progress-seg-in_progress{background:var(--status-in_progress)}.task-card-progress-seg-testing{background:var(--status-testing)}.task-card-progress-seg-done{background:var(--status-done)}.task-card-progress-legend{display:flex;flex-wrap:wrap;gap:.2rem .6rem;font-size:.68rem;color:var(--ink-500)}.task-card-progress-legend-item{display:inline-flex;align-items:center;gap:.25rem;font-variant-numeric:tabular-nums}.task-card-progress-dot{width:6px;height:6px;border-radius:50%}.task-card-status-mismatch{align-self:flex-start;display:inline-flex;align-items:center;gap:.3rem;font:inherit;font-size:.72rem;font-weight:500;padding:.12rem .5rem;border-radius:var(--r-sm);border:1px solid rgba(154,100,24,.35);background:var(--warning-bg);color:var(--warning);cursor:pointer}.task-card-status-mismatch:hover{background:#f1e2c8;border-color:var(--warning)}.badge-parent{color:var(--ink-400);max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a1747;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10;animation:fade-in .2s var(--ease)}@keyframes fade-in{0%{opacity:0}}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.75rem 1.85rem;width:100%;max-width:520px;display:flex;flex-direction:column;gap:.9rem;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modal-rise .24s var(--ease) both}@keyframes modal-rise{0%{opacity:0;transform:translateY(12px) scale(.98)}}.modal h2{margin:0 0 .35rem;font-size:1.5rem;line-height:1.2;color:var(--ink-900)}.modal label,.drawer label,.drawer-section label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--ink-500)}.modal-row label{flex:1}.field-label{font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--ink-500)}.modal input,.modal select,.modal textarea,.drawer input,.drawer select,.drawer textarea{padding:.6rem .75rem;border:1px solid var(--line);border-radius:var(--r-sm);font-size:.9rem;font-weight:500;font-family:inherit;letter-spacing:normal;text-transform:none;color:var(--ink-800);background:var(--surface);width:100%;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.modal input:focus,.modal select:focus,.modal textarea:focus,.drawer input:focus,.drawer select:focus,.drawer textarea:focus{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.modal-row{display:flex;gap:.75rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.75rem}.modal-actions button{padding:.6rem 1.1rem;border-radius:var(--r-sm)}.modal-actions button[type=submit]{background:var(--accent-500);color:#fff;border-color:var(--accent-500)}.modal-actions button[type=submit]:hover{background:var(--accent-600)}.advanced-section{border-top:1px solid var(--line-soft);padding-top:.45rem;margin-top:.1rem}.advanced-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.35rem .1rem;background:transparent;border:none;color:var(--ink-500);font-size:.8rem;font-weight:700;letter-spacing:.01em;text-align:left}.advanced-toggle:hover{background:transparent;border-color:transparent;color:var(--ink-800)}.advanced-chevron{width:16px;height:16px;flex-shrink:0;color:var(--ink-300);transition:transform .2s var(--ease),color .2s var(--ease)}.advanced-section.is-open .advanced-chevron{transform:rotate(90deg);color:var(--accent-500)}.advanced-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.15rem;height:1.15rem;padding:0 .3rem;border-radius:var(--r-full);background:var(--accent-100);color:var(--accent-700);font-size:.68rem;font-weight:800;letter-spacing:0}.advanced-hint{margin-left:auto;color:var(--ink-300);font-size:.8rem;font-weight:500;letter-spacing:0}.advanced-panel{display:flex;flex-direction:column;gap:.85rem;padding-top:.4rem;animation:advanced-in .2s var(--ease) both}.advanced-panel[hidden]{display:none}@keyframes advanced-in{0%{opacity:0;transform:translateY(-4px)}}.file-upload{display:flex;flex-direction:column;gap:.4rem}.file-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:1.15rem 1rem;border:1.5px dashed var(--line);border-radius:var(--r-md);background:var(--surface-sunken);color:var(--ink-400);text-align:center;cursor:pointer;transition:border-color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease),transform .12s var(--ease)}.file-dropzone:hover{border-color:var(--accent-300);background:var(--accent-50)}.file-dropzone:focus-visible{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.file-dropzone.is-dragging{border-style:solid;border-color:var(--accent-500);background:var(--accent-50);box-shadow:var(--shadow-focus);transform:scale(1.01)}.file-dropzone-icon{width:26px;height:26px;margin-bottom:.15rem;color:var(--accent-500)}.file-dropzone-title{font-size:.85rem;font-weight:700;color:var(--ink-700)}.file-dropzone-hint{font-size:.76rem;font-weight:500;color:var(--ink-300)}.file-list{list-style:none;margin:.1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.file-list li{display:flex;align-items:center;gap:.65rem;padding:.5rem .6rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);animation:file-in .2s var(--ease) both}@keyframes file-in{0%{opacity:0;transform:translateY(3px)}}.file-list-icon{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border-radius:8px;background:var(--accent-50);color:var(--accent-500)}.file-list-icon svg{width:17px;height:17px}.file-list-info{display:flex;flex-direction:column;gap:.05rem;flex:1;min-width:0}.file-list-name{font-size:.82rem;font-weight:600;color:var(--ink-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list-size{font-size:.72rem;font-weight:500;color:var(--ink-300)}.file-list-remove{display:grid;place-items:center;width:28px;height:28px;padding:0;flex-shrink:0;border:none;border-radius:var(--r-full);background:transparent;color:var(--ink-300)}.file-list-remove svg{width:15px;height:15px}.file-list-remove:hover{background:var(--danger-bg);border-color:transparent;color:var(--danger)}.settings-modal{max-width:580px}.users-modal{max-width:640px}.users-toolbar{display:flex;justify-content:flex-end}.users-toolbar button{background:var(--accent-500);color:#fff;border-color:transparent}.users-toolbar button:hover{background:var(--accent-600)}.user-list{display:flex;flex-direction:column;gap:.6rem}.user-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;border:1px solid var(--line);border-radius:var(--r-md);padding:.75rem .9rem;background:var(--surface-sunken)}.user-row-main{min-width:0;display:flex;flex-direction:column;gap:.25rem}.user-row-name{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.user-row-projects{font-size:.8rem;color:var(--ink-500);overflow-wrap:anywhere}.user-row-actions{display:flex;gap:.4rem;flex-shrink:0}.user-row-actions button{padding:.35rem .6rem;font-size:.78rem}.user-you{font-size:.7rem;color:var(--ink-400);font-style:italic}.role-badge{font-size:.8rem;font-weight:500;letter-spacing:0;padding:.15rem .45rem;border-radius:var(--r-full)}.role-admin{background:var(--accent-100);color:var(--accent-700)}.role-manager{background:var(--info-bg);color:var(--info)}.user-form{display:flex;flex-direction:column;gap:.85rem;border:1px solid var(--line);border-radius:var(--r-md);padding:1rem;background:var(--surface-sunken)}.user-form h3{margin:0;font-size:.95rem;color:var(--ink-900)}.user-form-hint{margin:0;font-size:.8rem;line-height:1.5;color:var(--ink-400)}.user-projects{display:flex;flex-direction:column;gap:.4rem}.user-project-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.35rem .75rem;max-height:180px;overflow-y:auto;padding:.15rem}.modal .user-project-option{flex-direction:row;align-items:center;gap:.45rem;font-size:.85rem;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--ink-800)}.modal .user-project-option input{width:auto}.user-row-email{font-size:.8rem;color:var(--ink-400)}.profile-page{flex:1;overflow-y:auto;padding:2rem 1.75rem 3rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.profile-back{width:100%;max-width:720px;align-self:center;justify-content:flex-start;background:transparent;border-color:transparent;box-shadow:none;padding-left:0;color:var(--ink-500)}.profile-back:hover{background:transparent;color:var(--ink-900)}.profile-card{width:100%;max-width:720px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:1.75rem;display:flex;flex-direction:column;gap:1.35rem;box-shadow:var(--shadow-sm)}.profile-head{display:flex;align-items:center;gap:1rem}.profile-avatar{width:64px;height:64px;flex-shrink:0;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.5rem;font-weight:500;color:var(--accent-700);background:var(--accent-50);border:1px solid var(--accent-100)}.profile-identity{display:flex;flex-direction:column;gap:.25rem;min-width:0}.profile-identity h2{margin:0;font-size:1.6rem;color:var(--ink-900)}.profile-facts{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem}.profile-fact{display:flex;flex-direction:column;gap:.35rem}.profile-fact .role-badge{align-self:flex-start}.profile-section{display:flex;flex-direction:column;gap:.5rem;padding-top:1.35rem;border-top:1px solid var(--line-soft)}.profile-hint{margin:0;font-size:.8rem;line-height:1.5;color:var(--ink-400)}.profile-projects{display:flex;flex-wrap:wrap;gap:.4rem}.profile-project-chip{font-size:.8rem;font-weight:600;padding:.3rem .65rem;border-radius:var(--r-full);background:var(--surface-sunken);border:1px solid var(--line);color:var(--ink-700)}.profile-name-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.profile-subsection{margin-top:.5rem}.profile-field{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--ink-500)}.profile-field input{padding:.6rem .75rem;border:1px solid var(--line);border-radius:var(--r-sm);font-size:.9rem;font-weight:500;font-family:inherit;letter-spacing:normal;text-transform:none;color:var(--ink-800);background:var(--surface);width:100%;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.profile-field input:focus{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.profile-actions{display:flex;justify-content:flex-end}.profile-actions button[type=submit]{background:var(--accent-500);border-color:var(--accent-500);color:#fff}.profile-actions button[type=submit]:hover:not(:disabled){background:var(--accent-600)}.profile-saved{margin:0;font-size:.82rem;font-weight:600;color:var(--success)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a1747;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;z-index:20;padding:3vh 1.5rem;overflow-y:auto;animation:fade-in .2s var(--ease)}.drawer{background:var(--surface);width:100%;max-width:860px;height:auto;min-height:60vh;max-height:94vh;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow-y:auto;padding:1.75rem 2.25rem 2.25rem;display:flex;flex-direction:column;gap:1.15rem;animation:modal-rise .26s var(--ease) both}.drawer .modal-row{display:flex;gap:.85rem}.drawer .modal-row label{flex:1}.drawer-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line);position:sticky;top:-1.75rem;margin:-1.75rem -2.25rem 0;padding:1.5rem 2.25rem 1rem;background:#fffdf9f0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:2}.drawer-header-title{display:flex;align-items:center;gap:.6rem}.drawer-header-title .badge{font-size:.68rem}.drawer-header-actions{display:flex;align-items:center;gap:.4rem}.drawer-copy-link{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;padding:.35rem .65rem}.drawer-header h2{margin:0;font-size:1.5rem;line-height:1.2;color:var(--ink-900)}.drawer-save-button{align-self:flex-start;padding:.55rem 1.3rem;border-radius:var(--r-sm);border:1px solid var(--accent-500);background:var(--accent-500);color:#fff;font-size:.875rem;font-weight:600;cursor:pointer}.drawer-save-button:hover{background:var(--accent-600);border-color:var(--accent-600)}.drawer-body{display:flex;flex-direction:column;gap:1.5rem}.drawer-section{border-top:1px solid var(--line-soft);padding-top:1.25rem;display:flex;flex-direction:column;gap:.7rem}.drawer-section:first-child{border-top:none;padding-top:0}.drawer-section h3{margin:0;font-size:.9rem;font-weight:600;letter-spacing:0;color:var(--ink-800)}.drawer-collapsible{gap:0}.drawer-collapsible>summary{display:flex;align-items:center;gap:.45rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.drawer-collapsible>summary::-webkit-details-marker{display:none}.drawer-collapsible>summary:hover h3{color:var(--ink-700)}.drawer-collapsible-chevron{width:.9rem;height:.9rem;color:var(--ink-300);transition:transform .2s var(--ease)}.drawer-collapsible[open] .drawer-collapsible-chevron{transform:rotate(90deg)}.drawer-collapsible-count{font-size:.68rem;font-weight:700;padding:.05rem .45rem;border-radius:var(--r-full);background:var(--surface-sunken);color:var(--ink-400)}.drawer-collapsible-body{display:flex;flex-direction:column;gap:.7rem;padding-top:.7rem}.drawer-section h4{margin:.25rem 0 0;font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--ink-300)}.storage-backend-option{flex-direction:row!important;align-items:center;gap:.5rem!important;text-transform:none!important;letter-spacing:normal!important;font-size:.875rem!important;font-weight:500!important;color:var(--ink-700)!important}.storage-backend-option input{width:auto}.drawer-description{display:flex;flex-direction:column;gap:.45rem}.drawer-description-head{display:flex;align-items:center;justify-content:space-between}.link-button{border:none;background:none;color:var(--accent-600);font-size:.78rem;font-weight:700;cursor:pointer;padding:0}.link-button:hover{text-decoration:underline;background:none}.drawer-description-editor{width:100%;min-height:280px;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--r-md);font-size:.875rem;font-family:var(--font-mono);line-height:1.6;color:var(--ink-800);background:var(--surface-sunken);resize:vertical}.drawer-description-preview{min-height:130px;padding:1rem 1.2rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:text;line-height:1.65;font-size:.9rem;color:var(--ink-700);transition:border-color .18s var(--ease),background .18s var(--ease)}.drawer-description-preview:hover{border-color:var(--accent-300);background:var(--surface)}.drawer-description-empty{color:var(--ink-300);font-style:italic}.drawer-description-preview :first-child,.comment-body :first-child{margin-top:0}.drawer-description-preview :last-child,.comment-body :last-child{margin-bottom:0}.drawer-description-preview h1,.drawer-description-preview h2,.drawer-description-preview h3,.comment-body h1,.comment-body h2,.comment-body h3{letter-spacing:-.02em;color:var(--ink-900)}.drawer-description-preview pre,.comment-body pre{background:var(--ink-900);color:#ece6da;padding:.85rem 1rem;border-radius:var(--r-sm);overflow-x:auto;font-size:.82rem;line-height:1.55}.drawer-description-preview code,.comment-body code{background:var(--accent-50);color:var(--accent-700);padding:.1rem .35rem;border-radius:5px;font-family:var(--font-mono);font-size:.85em}.drawer-description-preview pre code,.comment-body pre code{background:none;color:inherit;padding:0}.drawer-description-preview blockquote,.comment-body blockquote{margin:0;padding:.25rem 0 .25rem 1rem;border-left:3px solid var(--accent-300);color:var(--ink-500)}.drawer-description-preview ul,.drawer-description-preview ol,.comment-body ul,.comment-body ol{padding-left:1.4rem}.drawer-description-preview a,.comment-body a{color:var(--accent-600);text-underline-offset:2px}.drawer-description-preview table,.comment-body table{border-collapse:collapse;width:100%;font-size:.85rem}.drawer-description-preview th,.drawer-description-preview td,.comment-body th,.comment-body td{border:1px solid var(--line);padding:.4rem .7rem}.drawer-description-preview th,.comment-body th{background:var(--line-soft);font-weight:700}.drawer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.drawer-list li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.875rem;padding:.55rem .75rem;background:var(--surface-sunken);border:1px solid var(--line-soft);border-radius:var(--r-sm)}.drawer-list-actions{display:flex;gap:.35rem}.drawer-list-actions button,.drawer-list button{font-size:.75rem;font-weight:600;padding:.3rem .65rem;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer}.drawer-empty{color:var(--ink-300);font-size:.85rem;font-style:italic}.drawer-inline-form{display:flex;gap:.5rem}.drawer-inline-form input,.drawer-inline-form select,.drawer-inline-form textarea{flex:1;padding:.5rem .7rem;border:1px solid var(--line);border-radius:var(--r-sm);font-family:inherit;font-size:.875rem;resize:vertical}.drawer-inline-form button{padding:.5rem .95rem;border:1px solid var(--accent-500);border-radius:var(--r-sm);background:var(--accent-500);color:#fff;cursor:pointer}.drawer-inline-form-column{flex-direction:column;align-items:flex-end}.drawer-subtask-item{display:flex;align-items:center;gap:.5rem;flex:1}.drawer-subtask-item .link-button{text-align:left}.drawer-parent-link{font-size:.8rem;color:var(--ink-400);margin-bottom:.75rem}.dep-resolved{color:var(--success);font-weight:600}.dep-open{color:var(--danger);font-weight:600}.drawer-comments li{flex-direction:column;align-items:flex-start;gap:.25rem;background:var(--surface-sunken);border-radius:var(--r-md);padding:.65rem .8rem;line-height:1.5}.comment-date{font-size:.7rem;color:var(--ink-300);font-weight:600}.comment-body{width:100%;line-height:1.6;font-size:.9rem;color:var(--ink-700);overflow-wrap:anywhere}.comment-body p{margin:.4rem 0}.attachment-size{color:var(--ink-300);font-size:.78rem;font-weight:500}.token-reveal{background:var(--warning-bg);border:1px solid #e8d3ad;border-radius:var(--r-md);padding:.85rem;display:flex;flex-direction:column;gap:.5rem}.token-reveal-row{display:flex;align-items:center;gap:.5rem}.token-reveal-row code{flex:1;overflow-x:auto;white-space:nowrap;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.45rem .65rem;font-family:var(--font-mono);font-size:.8rem}.token-reveal-dismiss{align-self:flex-start}.mcp-config-block{display:flex;flex-direction:column;gap:.45rem}.mcp-config-block p{margin:0;font-size:.85rem;color:var(--ink-500)}.mcp-config-block button{align-self:flex-start}.mcp-config-json{background:var(--ink-900);color:#ece6da;border-radius:var(--r-md);padding:.9rem 1rem;margin:0;overflow-x:auto;font-family:var(--font-mono);font-size:.78rem;line-height:1.55}.token-status{font-size:.8rem;font-weight:500;margin-left:.35rem}.token-active{color:var(--success)}.token-revoked{color:var(--ink-300)}.danger-button{background:var(--danger-bg);border:1px solid rgba(168,55,43,.3);color:var(--danger)}.danger-button:hover{background:var(--danger);border-color:var(--danger);color:#fff}.confirm-row{display:flex;flex-direction:column;gap:.5rem}.sidebar-backdrop{display:none}@media (min-width: 701px) and (max-width: 1100px){.sidebar{width:200px}.topbar{padding:.9rem 1.15rem}.filter-bar{padding:.75rem 1.15rem}.board-toolbar{padding:.75rem 1.15rem 0}.board{padding:1.15rem 1.15rem 2rem;gap:.85rem}.column{min-width:200px;flex:1 1 0}.filter-search{min-width:180px}}@media (min-width: 701px) and (max-width: 900px){.board{flex-direction:column;align-items:stretch;overflow-x:hidden}.column{width:100%;min-width:0;flex:0 0 auto;min-height:0}}@media (max-width: 700px){.app-shell{flex-direction:column}.sidebar{position:fixed;top:0;right:22%;bottom:0;left:0;z-index:30;width:auto;flex-direction:column;overflow-y:auto;transform:translate(-100%);transition:transform .28s var(--ease);box-shadow:var(--shadow-lg)}.app-shell.sidebar-open .sidebar{transform:translate(0)}.app-shell.sidebar-open .sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a1747;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:25}.sidebar-project-settings,.sidebar-project-link,.sidebar-project-refresh{opacity:1}.sidebar-nav{flex-direction:column}.topbar{padding:.7rem .9rem;flex-wrap:wrap;gap:.5rem}.topbar-actions{width:100%;justify-content:flex-end;gap:.4rem}.topbar-group{padding-left:.5rem;gap:.2rem}.topbar-cta{width:2.5rem;padding:0;justify-content:center;margin-right:auto}.topbar-cta-label{display:none}.profile-page{padding:1.1rem 1rem 2rem}.profile-card{padding:1.25rem}.profile-head{align-items:flex-start}.profile-avatar{width:52px;height:52px;font-size:1rem}.profile-name-row{grid-template-columns:1fr}.filter-bar{gap:.5rem}.filter-chips{gap:.35rem}.filter-chip{padding:.3rem .7rem;font-size:.75rem}.topbar h1{font-size:1.3rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-icon-btn,.topbar-avatar,.topbar-cta,.language-switcher{min-height:2.5rem;height:2.5rem}.topbar-icon-btn,.topbar-avatar{width:2.5rem}.modal-actions button,.drawer-list button,.filter-chip{min-height:2.5rem}.modal{max-width:none;width:100%;max-height:100vh;height:100%;border-radius:0}.modal-row{flex-direction:column;gap:.5rem}.filter-bar{padding:.6rem 1rem}.board-toolbar{padding:.65rem 1rem 0}.filter-search{width:100%;min-width:0}.board{padding:1rem;flex-direction:column;align-items:stretch;gap:.85rem;overflow-x:hidden}.column{width:100%;min-width:0;flex:0 0 auto;min-height:0}body{overflow-x:hidden}}@media (max-width: 700px){.drawer-overlay{justify-content:stretch;align-items:stretch;padding:0;overflow:hidden}.drawer{max-width:none;width:100%;height:100%;max-height:100vh;min-height:0;border-radius:0;padding:1.25rem 1.25rem 2rem}.drawer-header{margin:-1.25rem -1.25rem 0;padding:1.25rem 1.25rem .9rem;top:-1.25rem}}.activity-page{flex:1;overflow-y:auto;padding:1.25rem 1.75rem 3rem;display:flex;flex-direction:column;gap:1rem}.activity-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;align-items:end;padding:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs)}.activity-filters label{display:flex;flex-direction:column;gap:.3rem;min-width:0;font-size:.8rem;font-weight:600;letter-spacing:0;color:var(--ink-500)}.activity-filters select,.activity-filters input{width:100%;min-width:0;padding:.45rem .6rem;border:1px solid var(--line);border-radius:var(--r-sm);font-family:inherit;font-size:.85rem;text-transform:none;letter-spacing:normal;color:var(--ink-800);background:var(--surface)}.activity-filters select:focus,.activity-filters input:focus{outline:none;border-color:var(--accent-500);box-shadow:var(--shadow-focus)}.activity-filters select:disabled{color:var(--ink-300);background:var(--surface-sunken)}.activity-filter-search{grid-column:span 2}.activity-filter-actions{display:flex;align-items:center;gap:.75rem;min-height:2.2rem}.activity-live{display:inline-flex;align-items:center;gap:.4rem}.activity-live-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--ink-300)}.activity-live.active .activity-live-dot{background:#fff;animation:activity-pulse 1.6s ease-in-out infinite}@keyframes activity-pulse{0%,to{opacity:1}50%{opacity:.35}}.activity-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:.5rem;box-shadow:var(--shadow-xs)}.activity-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.activity-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem;border-radius:var(--r-sm)}.activity-item+.activity-item{border-top:1px solid var(--line-soft)}.activity-dot{flex:0 0 auto;width:.5rem;height:.5rem;margin-top:.4rem;border-radius:50%;background:var(--accent-500)}.activity-dot-status{background:var(--warning)}.activity-dot-comment{background:var(--accent-500)}.activity-dot-updated{background:var(--ochre-400)}.activity-dot-removed{background:var(--danger)}.activity-dot-created{background:var(--success)}.activity-content{display:flex;flex-direction:column;gap:.2rem;min-width:0}.activity-text{font-size:.86rem;line-height:1.4;color:var(--ink-800);overflow-wrap:anywhere}.activity-text-link{padding:0;border:none;background:none;box-shadow:none;text-align:left;font:inherit;font-size:.86rem;font-weight:500;color:var(--ink-800);cursor:pointer}.activity-text-link:hover{color:var(--accent-600);background:none;text-decoration:underline}.activity-changes{margin:0;padding:0 0 0 .9rem;font-size:.78rem;color:var(--ink-500);overflow-wrap:anywhere}.activity-excerpt{overflow:hidden;font-size:.78rem;color:var(--ink-500);text-overflow:ellipsis;white-space:nowrap}.activity-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.72rem;color:var(--ink-400)}.activity-filter-task{font-size:.72rem}.activity-empty{margin:0;padding:1.5rem .75rem;font-size:.85rem;text-align:center;color:var(--ink-400)}.activity-error{margin:0 0 .5rem;font-size:.78rem;color:var(--danger)}.activity-load-more{display:block;margin:.5rem auto}@media (max-width: 700px){.activity-page{padding:1rem 1rem 2rem}.activity-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-filter-search{grid-column:1 / -1}}.view-tabs{display:flex;gap:.25rem;padding:0 2rem;border-bottom:1px solid var(--line);background:transparent}.view-tab{border:none;border-radius:0;background:none;padding:.65rem .1rem;margin-right:1.1rem;font-family:inherit;font-size:.875rem;font-weight:500;color:var(--ink-400);border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer}.view-tab:hover{color:var(--ink-800)}.view-tab.active{color:var(--ink-900);border-bottom-color:var(--ink-900)}.stats-page{flex:1;overflow-y:auto;padding:1.25rem 1.75rem 3rem;display:flex;flex-direction:column;gap:1rem}.stats-muted{color:var(--ink-400);font-size:.875rem;margin:0}.stats-error{margin:0}.stats-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem}.stats-kpi{display:flex;flex-direction:column;gap:.25rem;padding:.9rem 1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);min-width:0}.stats-kpi-wide{grid-column:span 2}.stats-kpi-label{font-size:.8rem;font-weight:600;letter-spacing:0;color:var(--ink-500)}.stats-kpi-value{font-family:var(--font-serif);font-size:2rem;font-weight:500;line-height:1.1;color:var(--ink-900);font-variant-numeric:tabular-nums}.stats-kpi-danger{color:var(--danger)}.stats-kpi-hint{font-size:.78rem;color:var(--ink-500)}.stats-progress{height:6px;border-radius:var(--r-full);background:var(--line-soft);overflow:hidden;margin:.2rem 0}.stats-progress>div{height:100%;border-radius:var(--r-full);background:var(--success)}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.stats-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-xs);min-width:0}.stats-card-full{grid-column:1 / -1}.stats-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.stats-card-header h2{margin:0;font-size:1.15rem;color:var(--ink-900)}.stats-card-header p{margin:.15rem 0 0;font-size:.8rem;color:var(--ink-400)}.stats-toggle{display:flex;gap:.35rem}.stats-table-wrap{overflow-x:auto}.stats-table{width:100%;border-collapse:separate;border-spacing:2px;font-size:.82rem;font-variant-numeric:tabular-nums}.stats-table th{font-weight:600;color:var(--ink-500);text-align:center;padding:.4rem .5rem;white-space:nowrap}.stats-table th[scope=row]{text-align:left}.stats-table td{text-align:center;padding:.45rem .5rem;border-radius:4px;color:var(--ink-800)}.stats-matrix td{background:var(--surface-sunken)}.stats-table .stats-table-total{font-weight:700;color:var(--ink-900);background:none}@media (max-width: 900px){.stats-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 700px){.view-tabs{padding:0 1rem}.stats-page{padding:1rem 1rem 2rem}.stats-filters,.stats-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.drawer-delete-task{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;padding:.35rem .65rem;color:var(--danger);background:transparent;border-color:var(--line)}.drawer-delete-task:hover:not(:disabled){background:var(--danger);color:#fff}.toast-stack{position:fixed;bottom:1.25rem;right:1.25rem;z-index:2000;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 2rem));pointer-events:none}.toast{display:flex;align-items:center;gap:.6rem;padding:.65rem .75rem;border-radius:10px;background:var(--surface);color:var(--ink-900);border:1px solid var(--line);border-left:3px solid var(--info);box-shadow:0 10px 30px #3c2d1929;font-size:.88rem;pointer-events:auto;animation:toast-in .18s ease-out}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.3rem;height:1.3rem;border-radius:999px;font-size:.75rem;font-weight:800;color:#fff;background:var(--info)}.toast-success .toast-icon{background:var(--success)}.toast-error .toast-icon{background:var(--danger)}.toast-message{flex:1}.toast-close{flex:none;padding:0 .3rem;border:none;background:transparent;color:var(--ink-400);font-size:1.1rem;line-height:1;cursor:pointer}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 640px){.toast-stack{left:1rem;right:1rem;bottom:1rem;max-width:none}}.attachment-row-main{display:flex;align-items:center;gap:.6rem;min-width:0}.attachment-thumb{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink-400);cursor:zoom-in}.attachment-thumb img{width:100%;height:100%;object-fit:cover}.attachment-thumb-video{cursor:pointer;color:#fff;background:var(--ink-800);border-color:transparent}.attachment-thumb-video svg{width:20px;height:20px}.attachment-thumb:hover{box-shadow:0 0 0 2px var(--accent-300)}.attachment-thumb-placeholder{font-size:.8rem;font-weight:700}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;background:#14120ff0;animation:fade-in .15s var(--ease)}.lightbox-toolbar{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;color:#fff}.lightbox-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600}.lightbox-counter{color:#fff9;font-weight:400}.lightbox-close{background:transparent;border:none;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}.lightbox-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 3.5rem 1.5rem;margin:0 auto;max-width:100%}.lightbox-stage img,.lightbox-stage video{max-width:100%;max-height:100%;border-radius:6px;background:#000}.lightbox-message{color:#fffc}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:2.6rem;height:2.6rem;border-radius:999px;border:none;background:#ffffff24;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}.lightbox-nav:hover{background:#ffffff42}.lightbox-prev{left:.75rem}.lightbox-next{right:.75rem}@media (max-width: 640px){.lightbox-stage{padding:0 .5rem 1rem}.lightbox-nav{top:auto;bottom:1rem;transform:none}}.badge svg,.filter-chip svg,.task-card-blocked svg,.task-card-status-mismatch svg,.task-card-progress-count svg,.drawer-copy-link svg,.drawer-delete-task svg{width:.95em;height:.95em;flex-shrink:0}.filter-chip,.task-card-progress-count{display:inline-flex;align-items:center;gap:.3rem}.icon-button svg{width:15px;height:15px}.notifications-close svg{width:16px;height:16px}.badge-project{color:var(--ink-700);background:var(--surface-sunken)}.badge-project:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--project-color, var(--ink-300))}.filter-panel{display:contents}.filter-toggle{display:none}@media (max-width: 700px){.filter-bar{flex-wrap:wrap}.filter-toggle{display:inline-flex;align-items:center;gap:.4rem;min-height:2.5rem;padding:0 .85rem;font-size:.85rem;color:var(--ink-700)}.filter-toggle svg{width:16px;height:16px}.filter-toggle.is-open{background:var(--surface-sunken);border-color:var(--ink-200)}.filter-toggle-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:var(--r-full);background:var(--ink-800);color:var(--canvas);font-size:.7rem;font-weight:600}.filter-bar .filter-search{flex:1;width:auto;min-height:2.5rem;order:1}.filter-toggle{order:0}.filter-panel{order:2}.filter-panel{display:none;width:100%;flex-direction:column;gap:.6rem;padding-top:.25rem}.filter-panel.is-open{display:flex;animation:advanced-in .18s var(--ease) both}.filter-panel .filter-chips{margin-right:0}.filter-panel .filter-select{width:100%;min-height:2.5rem}.filter-bar .filter-projects{order:3}}.topbar-avatar,.profile-avatar{overflow:visible}.avatar-img{width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block}.profile-avatar:has(.avatar-img),.topbar-avatar:has(.avatar-img){background:var(--surface)}.profile-avatar-actions{display:flex;align-items:center;gap:.75rem;margin-top:.4rem}.profile-avatar-actions button:not(.link-button){padding:.35rem .75rem;font-size:.8rem}.profile-avatar-actions .link-button{color:var(--ink-500);font-weight:500}.profile-avatar-actions .link-button:hover{color:var(--danger)}.avatar-crop-modal{max-width:360px;align-items:center;text-align:center}.avatar-crop-modal .modal-actions{align-self:stretch}.avatar-crop-viewport{position:relative;overflow:hidden;border-radius:var(--r-md);background:var(--ink-900);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0}.avatar-crop-viewport:active{cursor:grabbing}.avatar-crop-viewport img{position:absolute;top:0;left:0;max-width:none;pointer-events:none;transform-origin:0 0}.avatar-crop-viewport:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 0 999px #1c1a178c;outline:2px solid rgba(255,253,249,.85);outline-offset:-2px;pointer-events:none}.avatar-crop-zoom{display:flex;align-items:center;gap:.75rem;width:100%;font-size:.82rem;color:var(--ink-500)}.avatar-crop-zoom input{flex:1;accent-color:var(--accent-500)}.avatar-crop-modal .avatar-crop-confirm{background:var(--accent-500);border-color:var(--accent-500);color:#fff}.avatar-crop-modal .avatar-crop-confirm:hover:not(:disabled){background:var(--accent-600)}.task-card-assignee{overflow:hidden}.task-card-assignee:has(.avatar-img){background:var(--surface)}.modal .avatar-crop-zoom input[type=range]{padding:0;border:none;background:transparent;box-shadow:none}@media (max-width: 700px){.avatar-crop-modal{height:auto;max-width:360px;border-radius:var(--r-lg)}}.top-progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;overflow:hidden;background:rgba(var(--accent-rgb),.12)}.top-progress:after{content:"";position:absolute;top:0;bottom:0;width:35%;background:var(--accent-500);animation:top-progress 1.1s var(--ease) infinite}@keyframes top-progress{0%{left:-35%}to{left:100%}}.board-toolbar{align-items:center;gap:.75rem}.board-loading{display:inline-flex;align-items:center;gap:.5rem;margin-right:auto;font-size:.82rem;color:var(--ink-500)}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(var(--accent-rgb),.2);border-top-color:var(--accent-500);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--line-soft) 25%,#f6f2ea 50%,var(--line-soft) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.3s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-row{display:flex;gap:.45rem}.skeleton-pill{width:3.6rem;height:.7rem;border-radius:var(--r-full)}.skeleton-pill-short{width:2.4rem}.skeleton-line{width:88%;height:.8rem}.skeleton-line-short{width:55%}.skeleton-count{width:1rem;height:.75rem;margin-left:auto}.skeleton-card{display:flex;flex-direction:column;gap:.55rem;padding:.8rem .8rem .85rem;margin-bottom:.45rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}@media (prefers-reduced-motion: reduce){.top-progress:after,.spinner,.skeleton{animation-duration:0s;animation-iteration-count:1}.top-progress:after{left:0;width:100%;opacity:.5}}.task-card-review{display:flex;flex-wrap:wrap;gap:.4rem;padding-top:.55rem;margin-top:.1rem;border-top:1px solid var(--line-soft);cursor:default}.task-card-review button{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.32rem .6rem;font-size:.78rem;line-height:1.2;white-space:nowrap}.task-card-review svg{width:.95em;height:.95em;flex-shrink:0}.task-card-done{flex:1;background:var(--accent-500);border-color:var(--accent-500);color:#fff}.task-card-done:hover:not(:disabled){background:var(--accent-600);border-color:var(--accent-600)}.task-card-send-back{flex:1 1 auto;color:var(--ink-500);background:transparent}.task-card-send-back:hover:not(:disabled){color:var(--ink-900)}.task-card-leaving{pointer-events:none;animation:card-leave .42s var(--ease) forwards}@keyframes card-leave{0%{max-height:320px}25%{border-color:var(--status-done);box-shadow:0 0 0 3px #4e8a5f2e}60%{opacity:0;transform:translate(40px) scale(.96);max-height:320px}to{opacity:0;transform:translate(40px) scale(.96);max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;border-width:0}}@media (prefers-reduced-motion: reduce){.task-card-leaving{animation-duration:.01s}}.done-toggle{color:var(--ink-700)}.done-toggle svg{width:15px;height:15px}.done-toggle-count{min-width:1.2rem;padding:0 .35rem;border-radius:var(--r-full);background:var(--surface-sunken);color:var(--ink-500);font-size:.72rem;font-variant-numeric:tabular-nums;text-align:center}.done-modal{max-width:920px}.done-modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.done-modal-head h2{margin:0;display:flex;align-items:baseline;gap:.5rem}.done-modal-count{font-family:var(--font-sans);font-size:.85rem;color:var(--ink-400);font-variant-numeric:tabular-nums}.modal .done-modal-search{width:100%;min-width:0}.done-table-wrap{overflow:auto;max-height:60vh;border:1px solid var(--line);border-radius:var(--r-md)}.done-table{width:100%;border-collapse:collapse;font-size:.85rem}.done-table th{position:sticky;top:0;z-index:1;padding:.55rem .8rem;text-align:left;font-weight:500;font-size:.78rem;color:var(--ink-500);background:var(--surface-sunken);border-bottom:1px solid var(--line);white-space:nowrap}.done-table td{padding:.6rem .8rem;border-bottom:1px solid var(--line-soft);color:var(--ink-700);vertical-align:middle}.done-table tbody tr{cursor:pointer}.done-table tbody tr:hover,.done-table tbody tr:focus-visible{background:var(--surface-sunken);outline:none}.done-table tbody tr:last-child td{border-bottom:none}.done-title{color:var(--ink-900);font-weight:500;min-width:14rem}.done-date{white-space:nowrap;color:var(--ink-500);font-variant-numeric:tabular-nums}.done-empty{margin:1rem 0;text-align:center;color:var(--ink-400);font-size:.9rem}.send-back-task{margin-top:-.5rem;font-weight:500;color:var(--ink-700)}.task-card-static{cursor:pointer;touch-action:auto}.task-card-static .task-card-badges,.task-card-static .task-card-title{padding-right:2rem}.task-card-move{position:absolute;top:.45rem;right:.45rem;display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:var(--r-sm);color:var(--ink-400)}.task-card-move svg{width:18px;height:18px;pointer-events:none}.task-card-move:active,.task-card-move:focus-within{background:var(--surface-sunken);color:var(--ink-900)}.task-card-move select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}
