:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-xs: .6875rem;--fs-sm: .78125rem;--fs-md: .875rem;--fs-base: .9375rem;--fs-lg: 1.0625rem;--fs-xl: 1.25rem;--fs-2xl: 1.5rem;--fs-3xl: 2rem;--r-xs: 4px;--r-sm: 6px;--r-md: 9px;--r-lg: 13px;--r-xl: 18px;--r-full: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--brand: #4f46e5;--brand-strong: #4338ca;--brand-soft: #eef2ff;--brand-contrast: #ffffff;--success: #16a34a;--success-soft: #dcfce7;--warning: #d97706;--warning-soft: #fef3c7;--danger: #dc2626;--danger-soft: #fee2e2;--info: #0284c7;--info-soft: #e0f2fe;--bg-app: #f1f2f6;--bg-surface: #ffffff;--bg-surface-2: #f7f8fa;--bg-surface-3: #eceef2;--bg-elevated: #ffffff;--bg-input: #ffffff;--bg-hover: rgba(15, 17, 23, .055);--bg-active: rgba(15, 17, 23, .09);--bg-overlay: rgba(15, 20, 33, .55);--bg-glass: rgba(255, 255, 255, .86);--bg-glass-strong: rgba(255, 255, 255, .95);--text: #16181d;--text-2: #4b5162;--text-3: #6b7280;--text-inverse: #ffffff;--text-on-board: #ffffff;--border: rgba(15, 17, 23, .11);--border-strong: rgba(15, 17, 23, .2);--border-focus: var(--brand);--shadow-xs: 0 1px 2px rgba(15, 20, 33, .08);--shadow-sm: 0 1px 3px rgba(15, 20, 33, .1), 0 1px 2px rgba(15, 20, 33, .06);--shadow-md: 0 4px 12px rgba(15, 20, 33, .1), 0 2px 4px rgba(15, 20, 33, .06);--shadow-lg: 0 12px 32px rgba(15, 20, 33, .16), 0 4px 8px rgba(15, 20, 33, .08);--shadow-xl: 0 24px 64px rgba(15, 20, 33, .24);--shadow-drag: 0 16px 40px rgba(15, 20, 33, .32);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--header-h: 52px;--header-total: calc(var(--header-h) + var(--safe-top));--sidebar-w: 264px;--list-w: 288px;--transition: .14s cubic-bezier(.4, 0, .2, 1);--z-sticky: 20;--z-header: 40;--z-drawer: 60;--z-modal: 80;--z-popover: 100;--z-drag: 200;--z-toast: 300}:root[data-theme=dark],:root[data-theme=system].prefers-dark{--brand: #6366f1;--brand-strong: #818cf8;--brand-soft: rgba(99, 102, 241, .16);--brand-contrast: #ffffff;--success: #22c55e;--success-soft: rgba(34, 197, 94, .16);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .16);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .16);--info: #38bdf8;--info-soft: rgba(56, 189, 248, .16);--bg-app: #0b0d12;--bg-surface: #14171f;--bg-surface-2: #1a1e28;--bg-surface-3: #222735;--bg-elevated: #1c202b;--bg-input: #1a1e28;--bg-hover: rgba(255, 255, 255, .07);--bg-active: rgba(255, 255, 255, .12);--bg-overlay: rgba(3, 5, 10, .7);--bg-glass: rgba(20, 23, 31, .86);--bg-glass-strong: rgba(20, 23, 31, .96);--text: #eceef4;--text-2: #a5adbd;--text-3: #7c8496;--text-inverse: #14171f;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 14px rgba(0, 0, 0, .5);--shadow-lg: 0 14px 36px rgba(0, 0, 0, .6);--shadow-xl: 0 28px 68px rgba(0, 0, 0, .7);--shadow-drag: 0 18px 44px rgba(0, 0, 0, .7)}.bg-aurora{--board-bg: linear-gradient(135deg, #6366f1 0%, #a855f7 45%, #ec4899 100%)}.bg-ocean{--board-bg: linear-gradient(135deg, #0ea5e9 0%, #2563eb 50%, #1e3a8a 100%)}.bg-sunset{--board-bg: linear-gradient(135deg, #f97316 0%, #ef4444 55%, #be185d 100%)}.bg-forest{--board-bg: linear-gradient(135deg, #059669 0%, #0d9488 50%, #115e59 100%)}.bg-lavender{--board-bg: linear-gradient(135deg, #8b5cf6 0%, #6366f1 55%, #4338ca 100%)}.bg-graphite{--board-bg: linear-gradient(135deg, #475569 0%, #1e293b 60%, #0f172a 100%)}.bg-ember{--board-bg: linear-gradient(135deg, #fbbf24 0%, #f97316 50%, #dc2626 100%)}.bg-mint{--board-bg: linear-gradient(135deg, #34d399 0%, #22d3ee 55%, #0ea5e9 100%)}.prio-urgent{--prio: #dc2626}.prio-high{--prio: #ea580c}.prio-medium{--prio: #ca8a04}.prio-low{--prio: #0891b2}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;color:var(--text);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}button,a,label,summary,input,select,textarea,[role=button]{touch-action:manipulation}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}ul,ol{list-style:none}img,svg{display:block;max-width:100%}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}::selection{background:color-mix(in srgb,var(--brand) 30%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-3);background-clip:content-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:7px 13px;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:550;line-height:1.3;white-space:nowrap;transition:background var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition);-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(.5px)}.btn-primary{background:var(--brand);color:var(--brand-contrast);box-shadow:var(--shadow-xs)}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-secondary{background:var(--bg-surface-3);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--bg-active)}.btn-ghost{color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-outline{border:1px solid var(--border-strong);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--bg-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.93)}.btn-danger-soft{background:var(--danger-soft);color:var(--danger)}.btn-danger-soft:hover:not(:disabled){background:var(--danger);color:#fff}.btn-sm{padding:4px 9px;font-size:var(--fs-sm)}.btn-lg{padding:10px 18px;font-size:var(--fs-base)}.btn-icon{padding:7px;width:32px;height:32px}.btn-icon.btn-sm{padding:4px;width:26px;height:26px}.btn-block{width:100%}.btn-start{justify-content:flex-start;text-align:left}.btn-on-board{background:#ffffff38;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-on-board:hover:not(:disabled){background:#ffffff52}.input,.textarea,.select{width:100%;padding:7px 10px;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:var(--fs-md);transition:border-color var(--transition),box-shadow var(--transition)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}.textarea{resize:vertical;min-height:72px;line-height:1.55}@media(pointer:coarse){.input,.textarea,.select{font-size:max(16px,var(--fs-md))}}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input-invisible{background:transparent;border-color:transparent;padding:4px 6px}.input-invisible:hover{background:var(--bg-hover)}.field{display:flex;flex-direction:column;gap:5px}.field-label{font-size:var(--fs-xs);font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:var(--text-3)}.field-hint{font-size:var(--fs-sm);color:var(--text-3)}.field-error{font-size:var(--fs-sm);color:var(--danger);font-weight:550}.checkbox-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-2);border-radius:var(--r-sm);cursor:pointer}.checkbox-row:hover{background:var(--bg-hover)}.checkbox-row input{margin-top:3px;accent-color:var(--brand);width:15px;height:15px}.switch{position:relative;flex:none;width:38px;height:22px;border-radius:var(--r-full);background:var(--border-strong);transition:background var(--transition);cursor:pointer}.switch[data-on=true]{background:var(--brand)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform var(--transition)}.switch[data-on=true]:after{transform:translate(16px)}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:50%;font-size:var(--fs-xs);font-weight:700;color:#fff;letter-spacing:.02em;overflow:hidden;-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-xs{width:22px;height:22px;font-size:9px}.avatar-sm{width:24px;height:24px;font-size:10px}.avatar-lg{width:40px;height:40px;font-size:var(--fs-md)}.avatar-xl{width:72px;height:72px;font-size:var(--fs-xl)}.avatar-stack{display:flex}.avatar-stack .avatar{margin-left:-6px;border:2px solid var(--bg-surface)}.avatar-stack .avatar:first-child{margin-left:0}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:var(--r-xs);font-size:var(--fs-xs);font-weight:650;background:var(--bg-surface-3);color:var(--text-2);white-space:nowrap}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-info{background:var(--info-soft);color:var(--info)}.badge-brand{background:var(--brand-soft);color:var(--brand)}.chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;border-radius:var(--r-full);background:var(--bg-surface-3);font-size:var(--fs-sm);font-weight:550;color:var(--text-2)}.chip button{display:flex;opacity:.65}.chip button:hover{opacity:1}.spinner{width:16px;height:16px;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--bg-surface-2) 25%,var(--bg-surface-3) 50%,var(--bg-surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes shimmer{to{background-position:-200% 0}}.divider{height:1px;background:var(--border);margin:var(--sp-3) 0}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-5);text-align:center;color:var(--text-3)}.empty-state h3{font-size:var(--fs-lg);color:var(--text-2);font-weight:650}.empty-state p{font-size:var(--fs-md);max-width:44ch}.popover{position:fixed;z-index:var(--z-popover);min-width:260px;max-width:min(94vw,380px);display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:pop-in .12s cubic-bezier(.2,.9,.3,1);overflow:hidden}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:none}}.popover-header{flex:none;display:flex;align-items:center;gap:var(--sp-2);padding:10px var(--sp-3);border-bottom:1px solid var(--border)}.popover-title{flex:1;text-align:center;font-size:var(--fs-md);font-weight:650;color:var(--text-2)}.popover-body{flex:1;min-height:0;padding:var(--sp-3);overflow-y:auto;overscroll-behavior:contain}.popover-body.no-pad{padding:0}.popover>.menu{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.menu{padding:5px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:var(--r-sm);font-size:var(--fs-md);text-align:left;color:var(--text);transition:background var(--transition)}.menu-item:hover:not(:disabled){background:var(--bg-hover)}.menu-item:disabled{opacity:.45;cursor:not-allowed}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-soft)}.menu-item .menu-icon{flex:none;width:16px;display:flex;justify-content:center;color:var(--text-3)}.menu-item.danger .menu-icon{color:var(--danger)}.menu-item .menu-shortcut{margin-left:auto;font-size:var(--fs-xs);color:var(--text-3);font-family:var(--font-mono)}.menu-label{padding:8px 10px 4px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.modal-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:flex;justify-content:center;padding:calc(var(--sp-6) + var(--safe-top)) max(var(--sp-4),var(--safe-right)) calc(var(--sp-6) + var(--safe-bottom)) max(var(--sp-4),var(--safe-left));background:var(--bg-overlay);overflow-y:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .12s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:100%;max-width:560px;margin:auto;background:var(--bg-surface);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);animation:modal-in .16s cubic-bezier(.2,.9,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.modal-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-3)}.modal-title{flex:1;font-size:var(--fs-lg);font-weight:680}.modal-body{padding:0 var(--sp-5) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) var(--sp-5)}.toast-stack{position:fixed;bottom:calc(var(--sp-5) + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2);align-items:center;pointer-events:none;width:min(94vw,460px)}.toast{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:11px var(--sp-4);border-radius:var(--r-md);background:#14171f;color:#f4f6fb;font-size:var(--fs-md);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in .18s cubic-bezier(.2,.9,.3,1)}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.toast-error{background:var(--danger)}.toast-success{background:var(--success)}.toast button{margin-left:auto;color:inherit;font-weight:650;opacity:.9}.tooltip{position:fixed;z-index:var(--z-toast);padding:4px 8px;border-radius:var(--r-xs);background:#14171f;color:#fff;font-size:var(--fs-xs);font-weight:550;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md)}.row{display:flex;align-items:center;gap:var(--sp-2)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.col{display:flex;flex-direction:column}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.gap-6{gap:var(--sp-6)}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.muted{color:var(--text-2)}.dim{color:var(--text-3)}.tiny{font-size:var(--fs-xs)}.small{font-size:var(--fs-sm)}.bold{font-weight:680}.center{text-align:center}.mono{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.no-scroll{overflow:hidden}.btn-link{display:inline;padding:0;border:none;background:none;color:var(--brand);font:inherit;text-decoration:underline;cursor:pointer}.app{display:flex;flex-direction:column;height:100%;min-height:0}.topbar{position:relative;z-index:var(--z-header);display:flex;align-items:center;gap:var(--sp-2);height:var(--header-total);padding:var(--safe-top) max(var(--sp-3),var(--safe-right)) 0 max(var(--sp-3),var(--safe-left));background:var(--bg-surface);border-bottom:1px solid var(--border);flex:none}.topbar-brand{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-2);font-size:var(--fs-lg);font-weight:750;letter-spacing:-.02em;color:var(--text)}.topbar-brand:hover{text-decoration:none}.topbar-search{position:relative;flex:1;max-width:420px}.topbar-search .input{padding-left:32px;background:var(--bg-surface-2)}.topbar-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.topbar-search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:1px 5px;border:1px solid var(--border);border-radius:var(--r-xs);background:var(--bg-surface-3);font-size:10px;font-family:var(--font-mono);color:var(--text-3)}.topbar-actions{display:flex;align-items:center;gap:2px;margin-left:auto}.notif-dot{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;border-radius:var(--r-full);background:var(--danger);color:#fff;font-size:10px;font-weight:750;border:2px solid var(--bg-surface)}.app-body{display:flex;flex:1;min-height:0}.sidebar{flex:none;width:var(--sidebar-w);display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border);overflow-y:auto;padding:var(--sp-3) var(--sp-2) calc(var(--sp-6) + var(--safe-bottom));padding-left:max(var(--sp-2),var(--safe-left));transition:width var(--transition)}.sidebar-section{margin-bottom:var(--sp-4)}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) 10px 5px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:550;color:var(--text-2);transition:background var(--transition),color var(--transition)}.nav-item:hover{background:var(--bg-hover);color:var(--text);text-decoration:none}.nav-item.active{background:var(--brand-soft);color:var(--brand);font-weight:650}.nav-item .nav-icon{flex:none;display:flex}.nav-item .nav-count{margin-left:auto;font-size:var(--fs-xs);font-weight:650;color:var(--text-3)}.nav-swatch{flex:none;width:22px;height:22px;border-radius:var(--r-xs);background:var(--board-bg, var(--brand))}.nav-sub{padding-left:var(--sp-4)}.main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.page{flex:1;overflow-y:auto;padding:var(--sp-6) max(var(--sp-6),var(--safe-right)) calc(var(--sp-6) + var(--safe-bottom)) max(var(--sp-6),var(--safe-left))}.page-narrow{max-width:1180px;margin:0 auto;width:100%}.page-header{margin-bottom:var(--sp-5)}.page-title{font-size:var(--fs-2xl);font-weight:720;letter-spacing:-.02em}.page-subtitle{color:var(--text-2);font-size:var(--fs-md);margin-top:3px}.section-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:var(--sp-3)}.card-surface{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4)}.mobile-only,.sidebar-backdrop{display:none}@media(max-width:900px){.mobile-only{display:flex}.desktop-only{display:none!important}.sidebar{position:fixed;top:var(--header-total);bottom:0;left:0;z-index:var(--z-drawer);box-shadow:var(--shadow-xl);transform:translate(-100%);transition:transform .18s cubic-bezier(.3,.9,.3,1)}.sidebar.open{transform:none}.sidebar-backdrop{display:block;position:fixed;inset:var(--header-total) 0 0;z-index:calc(var(--z-drawer) - 1);background:var(--bg-overlay)}.page{padding:var(--sp-4) max(var(--sp-4),var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) max(var(--sp-4),var(--safe-left))}.topbar-search{max-width:none}.topbar-brand span{display:none}}.topbar-search-button{display:none}@media(max-width:560px){.topbar{padding:var(--safe-top) max(var(--sp-2),var(--safe-right)) 0 max(var(--sp-2),var(--safe-left));gap:var(--sp-1)}.topbar-search{display:none}.topbar-search-button{display:inline-flex}}.board-shell{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;background:var(--board-bg, var(--bg-app));background-size:cover;background-position:center}.board-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#00000029,#0000000f 30%,#00000024);pointer-events:none}.board-shell[data-scrim=strong]:before{background:linear-gradient(180deg,#0000006b,#0000003d 35%,#0006)}.board-shell>.board-header,.board-shell>.filter-bar,.board-shell>.board-canvas,.board-shell>.table-wrap,.board-shell>.calendar,.board-shell>.timeline,.board-shell>.page{position:relative;z-index:1}.board-shell:before{z-index:0}.board-header{display:flex;align-items:center;gap:var(--sp-2);padding:10px max(var(--sp-4),var(--safe-right)) 10px max(var(--sp-4),var(--safe-left));color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000024;flex:none;flex-wrap:wrap}.board-title-input{padding:4px 8px;border-radius:var(--r-sm);background:transparent;border:none;color:#fff;font-size:var(--fs-lg);font-weight:720;letter-spacing:-.01em;max-width:46vw;min-width:60px}.board-title-input:hover{background:#ffffff2e}.board-title-input:focus{outline:none;background:#00000057}.board-header .divider-v{width:1px;height:20px;background:#ffffff47;margin:0 var(--sp-1)}.view-switch{display:flex;gap:2px;padding:2px;border-radius:var(--r-sm);background:#00000038}.view-switch button{display:flex;align-items:center;gap:5px;padding:4px 9px;border-radius:var(--r-xs);font-size:var(--fs-sm);font-weight:600;color:#ffffffc7}.view-switch button:hover{background:#ffffff29;color:#fff}.view-switch button.active{background:#fffffff2;color:#16181d}.presence-stack .avatar{border-color:#fff9}.filter-bar{display:flex;align-items:center;gap:var(--sp-2);padding:7px max(var(--sp-4),var(--safe-right)) 7px max(var(--sp-4),var(--safe-left));background:#0000003d;color:#fff;font-size:var(--fs-sm);flex-wrap:wrap;flex:none}.filter-bar .chip{background:#fff3;color:#fff}.board-canvas{flex:1;min-height:0;display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) max(var(--sp-4),var(--safe-right)) calc(var(--sp-5) + var(--safe-bottom)) max(var(--sp-4),var(--safe-left));overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth}.board-canvas.dragging{scroll-behavior:auto;cursor:grabbing;-webkit-user-select:none;user-select:none}.list-column{flex:none;display:flex;flex-direction:column;width:var(--list-w);max-height:100%;border-radius:var(--r-lg);background:var(--bg-glass);-webkit-backdrop-filter:blur(12px) saturate(1.4);backdrop-filter:blur(12px) saturate(1.4);box-shadow:var(--shadow-md);transition:opacity var(--transition),box-shadow var(--transition)}.list-column[data-accent]:before{content:"";height:4px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--list-accent)}.list-column.is-dragging-source{opacity:.4}.list-column.drop-target{box-shadow:0 0 0 2px var(--brand),var(--shadow-lg)}.list-column.collapsed{width:46px;align-items:center;padding-bottom:var(--sp-3)}.list-column.collapsed .list-body,.list-column.collapsed .list-footer{display:none}.list-collapsed-title{writing-mode:vertical-rl;padding:var(--sp-2) 0;font-size:var(--fs-md);font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:60vh}.list-header{display:flex;align-items:flex-start;gap:var(--sp-1);padding:10px 10px 6px;cursor:grab}.list-header:active{cursor:grabbing}.list-header{-webkit-touch-callout:none}.list-title{flex:1;min-width:0;padding:3px 6px;border-radius:var(--r-xs);font-size:var(--fs-md);font-weight:680;line-height:1.35;word-break:break-word}.list-title:hover{background:var(--bg-hover)}.list-title-input{flex:1;padding:3px 6px;border-radius:var(--r-xs);border:2px solid var(--brand);background:var(--bg-input);font-size:var(--fs-md);font-weight:680}.list-count{flex:none;padding:2px 6px;border-radius:var(--r-full);background:var(--bg-hover);font-size:var(--fs-xs);font-weight:650;color:var(--text-3)}.list-count.over-limit{background:var(--danger-soft);color:var(--danger)}.list-body{display:flex;flex-direction:column;gap:var(--sp-2);padding:2px 8px 4px;overflow-y:auto;overflow-x:hidden;min-height:8px;flex:1}.list-footer{padding:4px 8px 8px}.list-add-btn{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:550;color:var(--text-2)}.list-add-btn:hover{background:var(--bg-hover);color:var(--text)}.drop-placeholder{border-radius:var(--r-md);background:color-mix(in srgb,var(--brand) 16%,transparent);border:2px dashed color-mix(in srgb,var(--brand) 55%,transparent);flex:none}.card-tile{position:relative;display:flex;flex-direction:column;border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow var(--transition),transform var(--transition),background var(--transition);overflow:hidden;touch-action:manipulation;-webkit-touch-callout:none}.card-tile:hover{background:var(--bg-surface-2);box-shadow:var(--shadow-md)}.card-tile:hover .card-quick-edit{opacity:1}.card-tile.is-dragging-source{opacity:.35}.card-tile.selected{box-shadow:0 0 0 2px var(--brand),var(--shadow-md)}.card-tile.aging-1{background:color-mix(in srgb,var(--bg-surface) 92%,#f59e0b)}.card-tile.aging-2{background:color-mix(in srgb,var(--bg-surface) 84%,#ef4444)}.card-cover{height:34px;background-size:cover;background-position:center}.card-cover.full{height:148px;display:flex;align-items:flex-end;padding:var(--sp-2)}.card-cover.full .card-cover-title{font-size:var(--fs-md);font-weight:650;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}.card-cover.full.text-dark .card-cover-title{color:#16181d;text-shadow:none}.card-body{padding:7px 9px 8px;display:flex;flex-direction:column;gap:5px}.card-labels{display:flex;flex-wrap:wrap;gap:4px}.card-label-pill{height:8px;min-width:34px;border-radius:var(--r-full);transition:all var(--transition)}.card-label-pill.expanded{height:17px;padding:0 7px;display:inline-flex;align-items:center;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.25);max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-title{font-size:var(--fs-md);line-height:1.38;word-break:break-word}.card-title.done{text-decoration:line-through;color:var(--text-3)}.card-badges{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:var(--fs-xs);color:var(--text-3);font-weight:600}.card-badges .badge-item{display:inline-flex;align-items:center;gap:3px}.card-badges .due{padding:2px 5px;border-radius:var(--r-xs);background:var(--bg-surface-3)}.card-badges .due.soon{background:var(--warning-soft);color:var(--warning)}.card-badges .due.overdue{background:var(--danger-soft);color:var(--danger)}.card-badges .due.done{background:var(--success-soft);color:var(--success)}.card-footer-row{display:flex;align-items:center;gap:var(--sp-2)}.card-members{margin-left:auto;display:flex}.card-members .avatar{margin-left:-5px}.card-members .avatar:first-child{margin-left:0}.card-priority-bar{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--prio, transparent)}.card-quick-edit{position:absolute;top:4px;right:4px;opacity:0;display:grid;place-items:center;width:24px;height:24px;border-radius:var(--r-xs);background:var(--bg-surface);box-shadow:var(--shadow-sm);color:var(--text-2);transition:opacity var(--transition)}.card-quick-edit:hover{background:var(--bg-surface-3);color:var(--text)}.card-number{font-family:var(--font-mono);font-size:10px;color:var(--text-3)}.composer{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--shadow-md)}.composer textarea{width:100%;border:none;background:transparent;resize:none;font-size:var(--fs-md);line-height:1.4;min-height:54px}.composer textarea:focus{outline:none}.composer-actions{display:flex;align-items:center;gap:var(--sp-2)}.add-list{flex:none;width:var(--list-w);padding:var(--sp-2);border-radius:var(--r-lg);background:#ffffff3d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff}.add-list button.trigger{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px;border-radius:var(--r-sm);font-weight:600;color:#fff}.add-list button.trigger:hover{background:#ffffff2e}.add-list .input{color:var(--text)}.drag-ghost{position:fixed;z-index:var(--z-drag);pointer-events:none;transform-origin:top left;box-shadow:var(--shadow-drag);border-radius:var(--r-md);opacity:.96;rotate:2.5deg}.drag-ghost .list-column{max-height:60vh;box-shadow:none}@media(max-width:640px){.board-canvas{gap:var(--sp-2);padding:var(--sp-2) max(var(--sp-3),var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) max(var(--sp-3),var(--safe-left));scroll-snap-type:x mandatory}.list-column{width:min(84vw,300px);scroll-snap-align:center}.add-list{width:min(84vw,300px)}.board-header{padding:var(--sp-2) max(var(--sp-3),var(--safe-right)) var(--sp-2) max(var(--sp-3),var(--safe-left))}.board-title-input{max-width:60vw;font-size:var(--fs-base)}}.board-drawer{position:absolute;top:0;right:0;bottom:0;z-index:var(--z-drawer);width:min(380px,100vw);max-height:100%;padding-right:var(--safe-right);display:flex;flex-direction:column;background:var(--bg-glass-strong);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);box-shadow:var(--shadow-xl);animation:drawer-in .18s cubic-bezier(.25,.9,.3,1)}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:none}}.board-drawer-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.board-drawer-title{flex:1;font-weight:680;font-size:var(--fs-md)}.board-drawer-body{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--safe-bottom);overscroll-behavior:contain;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.board-drawer-header{flex:none}.rule-card{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);display:flex;flex-direction:column;gap:6px}.rule-flow{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm)}.rule-step{display:flex;align-items:center;gap:6px}.rule-step .rule-kind{flex:none;width:62px;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3)}.card-modal{width:100%;max-width:820px;margin:auto;background:var(--bg-surface);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:modal-in .17s cubic-bezier(.2,.9,.3,1)}.card-modal-cover{height:128px;background-size:cover;background-position:center;position:relative}.card-modal-cover .cover-actions{position:absolute;right:var(--sp-3);bottom:var(--sp-3)}.card-modal-head{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-2)}.card-modal-head .icon-slot{padding-top:5px;color:var(--text-3)}.card-modal-title{width:100%;padding:3px 6px;margin-left:-6px;border:2px solid transparent;border-radius:var(--r-sm);background:transparent;font-size:var(--fs-xl);font-weight:700;line-height:1.3;letter-spacing:-.015em;resize:none;overflow:hidden}.card-modal-title:hover{background:var(--bg-hover)}.card-modal-title:focus{outline:none;background:var(--bg-input);border-color:var(--brand)}.card-modal-breadcrumb{font-size:var(--fs-sm);color:var(--text-2);padding-left:1px}.card-modal-breadcrumb b{color:var(--text);font-weight:650}.card-modal-grid{display:grid;grid-template-columns:minmax(0,1fr) 188px;gap:var(--sp-5);padding:0 var(--sp-5) var(--sp-5)}.card-modal-main{display:flex;flex-direction:column;gap:var(--sp-5);min-width:0}.card-modal-side{display:flex;flex-direction:column;gap:var(--sp-4)}.card-modal-side .side-group{display:flex;flex-direction:column;gap:5px}.detail-block{display:flex;flex-direction:column;gap:var(--sp-2)}.detail-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:700;color:var(--text)}.detail-title .grow{font-weight:700}.meta-grid{display:flex;flex-wrap:wrap;gap:var(--sp-5)}.meta-item{display:flex;flex-direction:column;gap:5px}.meta-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.meta-value{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.due-pill{display:inline-flex;align-items:center;gap:var(--sp-2);padding:5px 10px;border-radius:var(--r-sm);background:var(--bg-surface-3);font-size:var(--fs-md);font-weight:600}.due-pill.overdue{background:var(--danger-soft);color:var(--danger)}.due-pill.soon{background:var(--warning-soft);color:var(--warning)}.due-pill.done{background:var(--success-soft);color:var(--success)}.due-pill input[type=checkbox]{accent-color:currentColor}.markdown{font-size:var(--fs-md);line-height:1.62;color:var(--text);word-break:break-word}.markdown>*+*{margin-top:.7em}.markdown h1{font-size:var(--fs-xl);font-weight:700}.markdown h2{font-size:var(--fs-lg);font-weight:700}.markdown h3{font-size:var(--fs-base);font-weight:700}.markdown ul,.markdown ol{padding-left:1.4em}.markdown ul li{list-style:disc}.markdown ol li{list-style:decimal}.markdown li+li{margin-top:.25em}.markdown code{padding:1px 5px;border-radius:var(--r-xs);background:var(--bg-surface-3);font-family:var(--font-mono);font-size:.9em}.markdown pre{padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-surface-3);overflow-x:auto}.markdown pre code{padding:0;background:none}.markdown blockquote{padding-left:var(--sp-3);border-left:3px solid var(--border-strong);color:var(--text-2)}.markdown a{text-decoration:underline}.markdown hr{border:none;border-top:1px solid var(--border)}.markdown table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.markdown th,.markdown td{border:1px solid var(--border);padding:5px 8px;text-align:left}.markdown .mention{padding:1px 5px;border-radius:var(--r-xs);background:var(--brand-soft);color:var(--brand);font-weight:650}.markdown input[type=checkbox]{margin-right:6px}.description-placeholder{padding:var(--sp-3);border-radius:var(--r-sm);background:var(--bg-surface-2);color:var(--text-3);font-size:var(--fs-md);cursor:pointer;min-height:60px}.description-placeholder:hover{background:var(--bg-surface-3)}.editor-toolbar{display:flex;gap:2px;padding:4px;border:1px solid var(--border-strong);border-bottom:none;border-radius:var(--r-sm) var(--r-sm) 0 0;background:var(--bg-surface-2);flex-wrap:wrap}.editor-toolbar+.textarea{border-radius:0 0 var(--r-sm) var(--r-sm)}.editor-toolbar button{padding:3px 7px;border-radius:var(--r-xs);font-size:var(--fs-sm);font-weight:650;color:var(--text-2)}.editor-toolbar button:hover{background:var(--bg-hover);color:var(--text)}.checklist-progress{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-2);font-weight:650}.progress-track{display:block;flex:1;height:7px;border-radius:var(--r-full);background:var(--bg-surface-3);overflow:hidden}.progress-fill{display:block;height:100%;border-radius:var(--r-full);background:var(--brand);transition:width .22s cubic-bezier(.3,.9,.3,1)}.progress-fill.complete{background:var(--success)}.check-item{display:flex;align-items:flex-start;gap:10px;padding:6px 8px;border-radius:var(--r-sm);transition:background var(--transition)}.check-item:hover{background:var(--bg-hover)}.check-item input[type=checkbox]{margin-top:3px;width:16px;height:16px;accent-color:var(--brand);flex:none}.check-item .check-text{flex:1;font-size:var(--fs-md);line-height:1.45;word-break:break-word;cursor:text}.check-item.checked .check-text{text-decoration:line-through;color:var(--text-3)}.check-item .check-actions{display:flex;gap:2px;opacity:0}.check-item:hover .check-actions{opacity:1}.attachment-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2);border-radius:var(--r-sm)}.attachment-row:hover{background:var(--bg-hover)}.attachment-thumb{flex:none;width:76px;height:54px;border-radius:var(--r-sm);background:var(--bg-surface-3);background-size:cover;background-position:center;display:grid;place-items:center;font-size:10px;font-weight:750;color:var(--text-3);text-transform:uppercase;overflow:hidden}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-md);padding:var(--sp-4);text-align:center;color:var(--text-3);font-size:var(--fs-sm);transition:all var(--transition)}.dropzone.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.comment-row{display:flex;gap:var(--sp-3)}.comment-bubble{flex:1;min-width:0;padding:var(--sp-3);border-radius:var(--r-md);background:var(--bg-surface-2);box-shadow:var(--shadow-xs)}.comment-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);margin-bottom:4px}.comment-actions{display:flex;gap:var(--sp-3);margin-top:6px;font-size:var(--fs-xs);font-weight:650;color:var(--text-3)}.comment-actions button:hover{color:var(--text);text-decoration:underline}.reaction-row{display:flex;gap:5px;margin-top:6px;flex-wrap:wrap}.reaction{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-surface);font-size:var(--fs-xs);font-weight:650}.reaction.mine{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.activity-row{display:flex;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-2)}.activity-row .activity-text b{color:var(--text);font-weight:650}.activity-time{font-size:var(--fs-xs);color:var(--text-3)}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2)}.color-swatch{height:32px;border-radius:var(--r-sm);border:2px solid transparent;transition:transform var(--transition)}.color-swatch:hover{transform:scale(1.06)}.color-swatch.selected{border-color:var(--text);box-shadow:0 0 0 2px var(--bg-surface) inset}.label-row{display:flex;align-items:center;gap:var(--sp-2);padding:5px;border-radius:var(--r-sm)}.label-row:hover{background:var(--bg-hover)}.label-chip{flex:1;min-width:0;height:32px;display:flex;align-items:center;padding:0 10px;border-radius:var(--r-sm);color:#fff;font-size:var(--fs-sm);font-weight:650;text-shadow:0 1px 2px rgba(0,0,0,.2)}.member-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:6px var(--sp-2);border-radius:var(--r-sm);text-align:left}.member-row:hover{background:var(--bg-hover)}@media(max-width:780px){.card-modal-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.card-modal-side{flex-direction:row;flex-wrap:wrap;gap:var(--sp-2);order:-1}.card-modal-side .side-group{flex:1 1 46%}.card-modal-head{padding:var(--sp-4) var(--sp-4) var(--sp-2)}.card-modal-grid{padding:0 var(--sp-4) var(--sp-4)}.modal-backdrop{padding:calc(var(--sp-2) + var(--safe-top)) max(var(--sp-2),var(--safe-right)) calc(var(--sp-2) + var(--safe-bottom)) max(var(--sp-2),var(--safe-left))}}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(212px,1fr));gap:var(--sp-3)}.board-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;height:112px;padding:var(--sp-3);border-radius:var(--r-md);background:var(--board-bg, var(--brand));color:#fff;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition)}.board-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000000f,#0000006b);transition:opacity var(--transition)}.board-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);text-decoration:none}.board-card:hover:after{opacity:.8}.board-card>*{position:relative;z-index:1}.board-card-title{font-size:var(--fs-md);font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.4)}.board-card-meta{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);font-weight:600;opacity:.95}.board-card-meta>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.board-card-star{position:absolute;top:8px;right:8px;z-index:2;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-sm);color:#fff;opacity:0;transition:opacity var(--transition),background var(--transition)}.board-card:hover .board-card-star,.board-card-star.starred{opacity:1}.board-card-star:hover{background:#0000004d}.board-card-new{display:grid;place-items:center;height:112px;border-radius:var(--r-md);border:2px dashed var(--border-strong);color:var(--text-2);font-size:var(--fs-md);font-weight:600;transition:all var(--transition)}.board-card-new:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3)}.stat-tile{padding:var(--sp-4);border-radius:var(--r-lg);background:var(--bg-surface);border:1px solid var(--border)}.stat-value{font-size:var(--fs-2xl);font-weight:720;letter-spacing:-.03em;line-height:1.1}.stat-label{margin-top:3px;font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3)}.stat-tile.accent-danger .stat-value{color:var(--danger)}.stat-tile.accent-warning .stat-value{color:var(--warning)}.stat-tile.accent-success .stat-value{color:var(--success)}.stat-tile.accent-brand .stat-value{color:var(--brand)}.bar-row{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-sm)}.bar-row .bar-label{width:128px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.bar-track{display:block;flex:1;height:20px;border-radius:var(--r-xs);background:var(--bg-surface-3);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:var(--r-xs);background:var(--bar-color, var(--brand));transition:width .34s cubic-bezier(.3,.9,.3,1);min-width:2px}.bar-row .bar-value{width:42px;text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.chart-frame{width:100%;overflow-x:auto}.chart-legend{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-2)}.chart-legend .key{display:inline-flex;align-items:center;gap:6px}.chart-legend .swatch{width:10px;height:10px;border-radius:2px}.table-wrap{flex:1;overflow:auto;background:var(--bg-surface);margin:var(--sp-3);border-radius:var(--r-lg);box-shadow:var(--shadow-md)}table.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-md)}table.data-table th{position:sticky;top:0;z-index:2;padding:10px var(--sp-3);background:var(--bg-surface-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);text-align:left;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}table.data-table th:hover{color:var(--text)}table.data-table td{padding:9px var(--sp-3);border-bottom:1px solid var(--border);vertical-align:middle}table.data-table tbody tr{cursor:pointer}table.data-table tbody tr:hover td{background:var(--bg-hover)}table.data-table .group-row td{background:var(--bg-surface-3);font-weight:700;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.calendar{flex:1;display:flex;flex-direction:column;margin:var(--sp-3);background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:hidden;min-height:0}.calendar-toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-head{flex:none;grid-auto-rows:auto}.calendar-body{flex:1;grid-auto-rows:minmax(96px,1fr);overflow-y:auto}.calendar-dow{padding:7px;text-align:center;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--border);background:var(--bg-surface-2)}.calendar-day{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:5px;display:flex;flex-direction:column;gap:3px;min-width:0;transition:background var(--transition)}.calendar-day.other-month{background:var(--bg-surface-2)}.calendar-day.today .day-number{background:var(--brand);color:#fff}.calendar-day.drop-hover{background:var(--brand-soft)}.day-number{align-self:flex-start;min-width:21px;height:21px;padding:0 5px;border-radius:var(--r-full);display:grid;place-items:center;font-size:var(--fs-xs);font-weight:700;color:var(--text-2)}.calendar-chip{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:var(--r-xs);background:var(--bg-surface-3);font-size:var(--fs-xs);font-weight:600;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-chip:hover{background:var(--bg-active)}.calendar-chip .dot{width:7px;height:7px;border-radius:50%;flex:none}.timeline{flex:1;margin:var(--sp-3);background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-md);overflow:auto;min-height:0}.timeline-head{display:flex;position:sticky;top:0;z-index:3;background:var(--bg-surface-2)}.timeline-label-col{position:sticky;left:0;z-index:2;width:210px;flex:none;padding:8px var(--sp-3);background:var(--bg-surface-2);border-right:1px solid var(--border);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;color:var(--text-3)}.timeline-day{flex:none;width:34px;padding:8px 0;text-align:center;font-size:10px;font-weight:650;color:var(--text-3);border-right:1px solid var(--border)}.timeline-day.weekend{background:var(--bg-surface-3)}.timeline-row{display:flex;border-bottom:1px solid var(--border);min-height:38px}.timeline-row .label{position:sticky;left:0;z-index:1;width:210px;flex:none;padding:8px var(--sp-3);background:var(--bg-surface);border-right:1px solid var(--border);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.timeline-track{position:relative;flex:1}.timeline-bar{position:absolute;top:8px;height:22px;border-radius:var(--r-full);background:var(--brand);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;padding:0 8px;overflow:hidden;white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-xs)}.timeline-today{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);z-index:2;pointer-events:none}.login-page{display:flex;align-items:center;justify-content:center;min-height:100%;padding:calc(var(--sp-6) + var(--safe-top)) max(var(--sp-4),var(--safe-right)) calc(var(--sp-6) + var(--safe-bottom)) max(var(--sp-4),var(--safe-left));background:radial-gradient(1100px 620px at 50% -18%,color-mix(in srgb,var(--brand) 20%,transparent),transparent 70%),var(--bg-app)}.login-panel{width:100%;display:flex;justify-content:center}.login-brand{display:flex;align-items:center;gap:var(--sp-3)}.login-wordmark{font-size:var(--fs-xl);font-weight:750;letter-spacing:-.02em}.login-title{font-size:var(--fs-2xl);font-weight:720;letter-spacing:-.02em}.login-box{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.google-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);width:100%;padding:11px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-surface);font-size:var(--fs-base);font-weight:600;box-shadow:var(--shadow-sm);transition:all var(--transition)}.google-btn:hover:not(:disabled){background:var(--bg-surface-2);box-shadow:var(--shadow-md)}.domain-note{display:flex;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--info-soft);color:var(--text-2);font-size:var(--fs-sm);line-height:1.5}.domain-note svg{flex:none;margin-top:1px}.domain-note .domain-chip{font-family:var(--font-mono);font-weight:700;color:var(--text)}.login-error{display:flex;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--danger-soft);color:var(--danger);font-size:var(--fs-sm);line-height:1.5;font-weight:550}@media(max-width:520px){.login-page{padding:calc(var(--sp-4) + var(--safe-top)) max(var(--sp-3),var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) max(var(--sp-3),var(--safe-left));align-items:flex-start}.login-box{padding:var(--sp-5) var(--sp-4);border:none;box-shadow:none;background:transparent}}.admin-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--sp-5);overflow-x:auto}.admin-tab{padding:9px var(--sp-4);font-size:var(--fs-md);font-weight:600;color:var(--text-2);border-bottom:2px solid transparent;white-space:nowrap}.admin-tab:hover{color:var(--text)}.admin-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.kv-list{display:flex;flex-direction:column;gap:1px}.kv-row{display:flex;align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);background:var(--bg-surface);font-size:var(--fs-md)}.kv-row:first-child{border-radius:var(--r-md) var(--r-md) 0 0}.kv-row:last-child{border-radius:0 0 var(--r-md) var(--r-md)}.kv-key{width:220px;flex:none;color:var(--text-2);font-weight:550}.kv-value{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--fs-sm);word-break:break-all}@media(max-width:720px){.kv-row{flex-direction:column;align-items:flex-start;gap:3px;padding:10px var(--sp-3)}.kv-key{width:auto;font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3)}.kv-value{width:100%}.kv-value .badge{white-space:normal}}.preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-3)}.preset-card{display:flex;flex-direction:column;gap:6px;padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface-2)}.preset-card .btn{align-self:flex-start;margin-top:auto}.preset-card.active{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.settings-layout{display:flex;gap:var(--sp-5);align-items:flex-start}.settings-nav{position:sticky;top:var(--sp-4);display:flex;flex-direction:column;gap:2px;width:230px;flex:none}.settings-nav-item{display:flex;align-items:center;gap:var(--sp-2);padding:8px var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-md);font-weight:550;color:var(--text-2);text-align:left}.settings-nav-item:hover{background:var(--bg-hover);color:var(--text)}.settings-nav-item.active{background:var(--brand-soft);color:var(--brand)}.settings-nav-item span:nth-child(2){flex:1}.dot-indicator{width:7px;height:7px;border-radius:50%;background:var(--warning);flex:none}.settings-section{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);overflow:hidden}.settings-section-title{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-md);font-weight:700;border-bottom:1px solid var(--border);background:var(--bg-surface-2)}.setting-row{display:flex;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.setting-row:last-child{border-bottom:none}.setting-row.is-dirty{background:var(--warning-soft)}.setting-meta{display:flex;flex-direction:column;gap:3px;width:46%;flex:none;min-width:0}.setting-label{font-weight:600;font-size:var(--fs-md)}.setting-control{flex:1;min-width:0;display:flex;align-items:flex-start}.setting-control>.input,.setting-control>.textarea,.setting-control>select{width:100%}.setting-reset{cursor:pointer;border:none}.settings-savebar{position:sticky;bottom:calc(var(--sp-3) + var(--safe-bottom, 0px));display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-lg, 0 10px 30px rgba(0,0,0,.18));z-index:5}@media(max-width:860px){.settings-layout{flex-direction:column}.settings-nav{position:static;width:100%;flex-direction:row;overflow-x:auto}.settings-nav-item{white-space:nowrap}.setting-row{flex-direction:column;gap:var(--sp-2)}.setting-meta{width:100%}}.method-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.method-row{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-bottom:1px solid var(--border)}.method-row:last-child{border-bottom:none}.method-row>svg{flex:none;color:var(--text-2)}.security-list{border:1px solid var(--border);border-radius:var(--r-md)}.security-item{padding:var(--sp-3);border-bottom:1px solid var(--border)}.security-item:last-child{border-bottom:none}.security-item>.row>svg{flex:none;color:var(--text-2)}.totp-setup{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-3);padding:var(--sp-3);background:var(--bg-surface-2);border-radius:var(--r-md)}.totp-qr{width:180px;height:180px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--r-md);flex:none}.recovery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;padding:var(--sp-3);background:var(--bg-surface-2);border-radius:var(--r-md);font-size:var(--fs-md);text-align:center;-webkit-user-select:all;user-select:all}.palette-backdrop{position:fixed;inset:0;z-index:var(--z-modal);display:flex;justify-content:center;padding:calc(10vh + var(--safe-top)) max(var(--sp-4),var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) max(var(--sp-4),var(--safe-left));background:var(--bg-overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.palette{width:min(94vw,620px);max-height:70vh;display:flex;flex-direction:column;background:var(--bg-elevated);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:modal-in .15s cubic-bezier(.2,.9,.3,1)}.palette-input{padding:var(--sp-4) var(--sp-5);border:none;background:transparent;font-size:var(--fs-lg);border-bottom:1px solid var(--border)}.palette-input:focus{outline:none}.palette-results{flex:1;overflow-y:auto;padding:var(--sp-2)}.palette-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:9px var(--sp-3);border-radius:var(--r-sm);text-align:left;font-size:var(--fs-md)}.palette-item:hover,.palette-item.active{background:var(--bg-hover)}.palette-item .hint{margin-left:auto;font-size:var(--fs-xs);color:var(--text-3)}.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}.shortcut-row{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-md);padding:3px 0}kbd.key{min-width:22px;padding:2px 6px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:var(--r-xs);background:var(--bg-surface-2);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:650;text-align:center}.notif-row{display:flex;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-sm);cursor:pointer;transition:background var(--transition)}.notif-row:hover{background:var(--bg-hover)}.notif-row.unread{background:var(--brand-soft)}.notif-row .notif-text{font-size:var(--fs-sm);line-height:1.45}.notif-row .notif-text b{font-weight:650}.viz{--viz-series-1: #2a78d6;--viz-series-2: #eb6834;--viz-seq: #2a78d6;--viz-seq-2: #eb6834;--viz-ord-1: #86b6ef;--viz-ord-2: #5598e7;--viz-ord-3: #2a78d6;--viz-ord-4: #184f95;--viz-good: #0ca30c;--viz-warning: #fab219;--viz-serious: #ec835a;--viz-critical: #d03b3b;--viz-grid: var(--border);--viz-axis: var(--border-strong);--viz-muted: var(--text-3);--viz-surface: var(--bg-surface)}:root[data-theme=dark] .viz,:root[data-theme=system].prefers-dark .viz{--viz-series-1: #3987e5;--viz-series-2: #d95926;--viz-seq: #3987e5;--viz-seq-2: #d95926;--viz-ord-1: #cde2fb;--viz-ord-2: #86b6ef;--viz-ord-3: #3987e5;--viz-ord-4: #184f95}.viz-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.viz-title{font-size:var(--fs-md);font-weight:680}.viz-sub{font-size:var(--fs-xs);color:var(--text-3)}.viz-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-3)}.stack-bar{display:flex;gap:2px;height:22px;border-radius:var(--r-xs);overflow:hidden}.stack-seg{display:block;min-width:3px}.stack-seg:first-child{border-radius:var(--r-xs) 0 0 var(--r-xs)}.stack-seg:last-child{border-radius:0 var(--r-xs) var(--r-xs) 0}.viz-tooltip{position:absolute;z-index:5;padding:7px 10px;border-radius:var(--r-sm);background:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-md);font-size:var(--fs-xs);pointer-events:none;white-space:nowrap;transform:translate(-50%,-115%)}.viz-tooltip .row-key{display:flex;align-items:center;gap:6px}.viz-tooltip .swatch{width:8px;height:8px;border-radius:2px}
