:root{--n-0: #ffffff;--n-50: #f8f9fb;--n-100: #f1f2f5;--n-150: #e9eaee;--n-200: #dfe1e6;--n-300: #c6c9d1;--n-400: #9a9fab;--n-500: #6b7280;--n-600: #4b5262;--n-700: #363c48;--n-800: #232630;--n-900: #14161c;--brand-50: #eef3fe;--brand-100: #dbe6fd;--brand-300: #7fa4f6;--brand-500: #3568e0;--brand-600: #2b57c2;--brand-700: #23459a;--success-50: #eafbf1;--success-500: #16a34a;--success-600: #128a3e;--warning-50: #fef8ea;--warning-500: #b7791f;--warning-600: #92600f;--danger-50: #fdeeee;--danger-500: #c53434;--danger-600: #a52a2a;--info-50: var(--brand-50);--info-500: var(--brand-500);--surface-page: var(--n-50);--surface-raised: var(--n-0);--surface-sunken: var(--n-100);--surface-overlay: rgba(20, 22, 28, .44);--surface-hover: var(--n-100);--surface-selected: var(--brand-50);--border-default: var(--n-200);--border-subtle: var(--n-150);--border-strong: var(--n-300);--border-focus: var(--brand-500);--text-primary: var(--n-900);--text-secondary: var(--n-500);--text-tertiary: var(--n-400);--text-inverse: var(--n-0);--text-brand: var(--brand-600);--text-danger: var(--danger-600);--text-success: var(--success-600);--text-warning: var(--warning-600);--text-link: var(--brand-600);--sidebar-bg: var(--n-900);--sidebar-bg-hover: #1d2028;--sidebar-bg-active: var(--brand-600);--sidebar-text: #a9adb8;--sidebar-text-active: var(--n-0);--sidebar-border: #262932;--sidebar-heading: #6b7280;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.65;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(20, 22, 28, .05);--shadow-sm: 0 1px 2px rgba(20, 22, 28, .06), 0 1px 1px rgba(20, 22, 28, .04);--shadow-md: 0 4px 10px rgba(20, 22, 28, .08), 0 1px 2px rgba(20, 22, 28, .05);--shadow-lg: 0 12px 28px rgba(20, 22, 28, .14), 0 2px 6px rgba(20, 22, 28, .06);--duration-fast: .1s;--duration-base: .15s;--duration-slow: .22s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--sidebar-width: 232px;--sidebar-width-collapsed: 64px;--topbar-height: 48px;--content-max-width: 1440px;--z-dropdown: 60;--z-sticky: 70;--z-overlay: 100;--z-modal: 110;--z-toast: 120;--z-tooltip: 130}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:1;border-radius:var(--radius-md);border:1px solid transparent;padding:0 var(--space-3);height:32px;cursor:pointer;transition:background-color var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),color var(--duration-base) var(--ease-standard);white-space:nowrap}.ui-btn:disabled{cursor:not-allowed;opacity:.55}.ui-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.ui-btn-sm{height:26px;padding:0 var(--space-2);font-size:var(--text-xs)}.ui-btn-lg{height:38px;padding:0 var(--space-4);font-size:var(--text-base)}.ui-btn-primary{background:var(--brand-500);color:var(--text-inverse)}.ui-btn-primary:hover:not(:disabled){background:var(--brand-600)}.ui-btn-secondary{background:var(--n-800);color:var(--text-inverse)}.ui-btn-secondary:hover:not(:disabled){background:var(--n-900)}.ui-btn-outline{background:var(--surface-raised);color:var(--text-primary);border-color:var(--border-default)}.ui-btn-outline:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.ui-btn-ghost{background:transparent;color:var(--text-secondary)}.ui-btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.ui-btn-danger{background:var(--danger-500);color:var(--text-inverse)}.ui-btn-danger:hover:not(:disabled){background:var(--danger-600)}.ui-btn-success{background:var(--success-500);color:var(--text-inverse)}.ui-btn-success:hover:not(:disabled){background:var(--success-600)}.ui-btn-icon{width:32px;padding:0}.ui-btn-icon.ui-btn-sm{width:26px}.ui-btn-spinner{width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .6s linear infinite;flex-shrink:0}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-field{display:flex;flex-direction:column;gap:var(--space-1)}.ui-field-label{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-secondary)}.ui-field-hint{font-size:var(--text-xs);color:var(--text-tertiary)}.ui-field-error{font-size:var(--text-xs);color:var(--text-danger)}.ui-input,.ui-select{font-family:inherit;font-size:var(--text-sm);color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);height:32px;padding:0 var(--space-3);transition:border-color var(--duration-base) var(--ease-standard);width:100%}.ui-input:hover,.ui-select:hover{border-color:var(--border-strong)}.ui-input:focus,.ui-select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--brand-100)}.ui-input.has-error,.ui-select.has-error{border-color:var(--danger-500)}.ui-input.has-error:focus,.ui-select.has-error:focus{box-shadow:0 0 0 3px var(--danger-50)}.ui-input:disabled,.ui-select:disabled{background:var(--surface-sunken);color:var(--text-tertiary);cursor:not-allowed}textarea.ui-input{height:auto;min-height:80px;padding:var(--space-2) var(--space-3);resize:vertical}.ui-input-icon-wrap{position:relative}.ui-input-icon-wrap .ui-input{padding-left:32px}.ui-input-icon{position:absolute;left:var(--space-2);top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none;display:flex}.ui-dropdown{position:relative;display:inline-block}.ui-dropdown-panel{position:absolute;top:calc(100% + 4px);right:0;min-width:190px;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-1);z-index:var(--z-dropdown)}.ui-dropdown-panel.align-left{right:auto;left:0}.ui-dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;text-align:left;background:none;border:none;font-family:inherit;font-size:var(--text-sm);color:var(--text-primary);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;text-decoration:none}.ui-dropdown-item:hover{background:var(--surface-hover)}.ui-dropdown-item.danger{color:var(--text-danger)}.ui-dropdown-separator{height:1px;background:var(--border-subtle);margin:var(--space-1) 0}.ui-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle)}.ui-tabs.no-border{border-bottom:none}.ui-tab{position:relative;background:none;border:none;font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);padding:var(--space-2) var(--space-2) calc(var(--space-2) + 1px);cursor:pointer;text-decoration:none;display:inline-flex}.ui-tab:hover{color:var(--text-primary)}.ui-tab.active{color:var(--text-brand)}.ui-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-500);border-radius:var(--radius-full)}.ui-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;padding:2px var(--space-2);border-radius:var(--radius-full);line-height:1.6}.ui-badge-neutral{background:var(--n-100);color:var(--n-600)}.ui-badge-brand{background:var(--brand-50);color:var(--text-brand)}.ui-badge-success{background:var(--success-50);color:var(--text-success)}.ui-badge-warning{background:var(--warning-50);color:var(--text-warning)}.ui-badge-danger{background:var(--danger-50);color:var(--text-danger)}.ui-tooltip-wrap{position:relative;display:inline-flex}.ui-tooltip-bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--n-900);color:var(--n-0);font-size:var(--text-2xs);font-weight:var(--font-weight-medium);padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;z-index:var(--z-tooltip);pointer-events:none}.ui-table-wrap{overflow-x:auto;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-raised)}.ui-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ui-table th{text-align:left;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-secondary);background:var(--surface-sunken);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-default);white-space:nowrap}.ui-table th.sortable{padding:0}.ui-table-sort-btn{display:flex;width:100%;align-items:center;gap:2px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:var(--space-2) var(--space-3);-webkit-user-select:none;user-select:none}.ui-table-sort-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.ui-table tr.clickable{cursor:pointer}.ui-table tr.clickable:hover td{background:var(--surface-hover)}.ui-table tr.clickable:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.ui-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr:hover td{background:var(--surface-hover)}.ui-pagination{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary)}.ui-pagination-btn{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-default);background:var(--surface-raised);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-primary)}.ui-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.ui-pagination-btn:hover:not(:disabled){background:var(--surface-hover)}.ui-search{position:relative;display:flex;align-items:center}.ui-search input{width:100%;height:32px;padding:0 var(--space-3) 0 30px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);font-family:inherit;font-size:var(--text-sm);color:var(--text-primary)}.ui-search input:focus{outline:none;border-color:var(--border-focus);background:var(--surface-raised)}.ui-search-icon{position:absolute;left:var(--space-2);color:var(--text-tertiary);display:flex;pointer-events:none}.ui-toast-region{position:fixed;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:var(--z-toast);width:320px}.ui-toast{background:var(--n-900);color:var(--n-0);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);display:flex;align-items:flex-start;gap:var(--space-2);animation:ui-toast-in var(--duration-slow) var(--ease-standard)}.ui-toast-success{border-left:3px solid var(--success-500)}.ui-toast-danger{border-left:3px solid var(--danger-500)}.ui-toast-close{background:none;border:none;color:var(--n-400);cursor:pointer;margin-left:auto;padding:0}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.ui-skeleton{background:linear-gradient(90deg,var(--n-150) 25%,var(--n-100) 37%,var(--n-150) 63%);background-size:400% 100%;animation:ui-skeleton-shine 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes ui-skeleton-shine{0%{background-position:100% 50%}to{background-position:0 50%}}.ui-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-secondary)}.ui-state-icon{width:40px;height:40px;border-radius:var(--radius-lg);background:var(--surface-sunken);display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);margin-bottom:var(--space-4)}.ui-state-error .ui-state-icon{background:var(--danger-50);color:var(--danger-500)}.ui-state-title{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 4px}.ui-state-body{font-size:var(--text-sm);max-width:360px;margin:0}.ui-state-actions{margin-top:var(--space-4)}.ui-confirm-body{font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal)}.ui-confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}.shell{display:flex;min-height:100vh;background:var(--surface-page)}.shell-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--sidebar-bg);display:flex;flex-direction:column;transition:width var(--duration-slow) var(--ease-standard);overflow:hidden}.shell-sidebar.collapsed{width:var(--sidebar-width-collapsed)}.shell-logo{height:var(--topbar-height);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4);color:var(--n-0);font-weight:var(--font-weight-bold);font-size:var(--text-base);flex-shrink:0;letter-spacing:-.01em}.shell-logo-mark{width:22px;height:22px;border-radius:var(--radius-sm);background:var(--brand-500);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--font-weight-bold);flex-shrink:0}.shell-nav{flex:1;overflow-y:auto;padding:var(--space-2) var(--space-2) var(--space-4)}.shell-nav-section{margin-top:var(--space-4)}.shell-nav-section:first-child{margin-top:0}.shell-nav-heading{font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--sidebar-heading);padding:0 var(--space-2);margin-bottom:var(--space-1)}.shell-sidebar.collapsed .shell-nav-heading{display:none}.shell-nav-link{display:flex;align-items:center;gap:var(--space-2);color:var(--sidebar-text);text-decoration:none;font-size:var(--text-sm);padding:7px var(--space-2);border-radius:var(--radius-sm);margin-bottom:1px;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-standard)}.shell-nav-link svg{flex-shrink:0}.shell-nav-link:hover{background:var(--sidebar-bg-hover);color:var(--n-0)}.shell-nav-link.active{background:var(--sidebar-bg-active);color:var(--sidebar-text-active)}.shell-sidebar.collapsed .shell-nav-link{justify-content:center;padding:7px 0}.shell-sidebar.collapsed .shell-nav-label{display:none}.shell-nav-badge{margin-left:auto;min-width:17px;height:17px;padding:0 5px;border-radius:var(--radius-full);background:var(--danger-500);color:var(--n-0);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.shell-sidebar.collapsed .shell-nav-badge{display:none}.shell-sidebar-footer{border-top:1px solid var(--sidebar-border);padding:var(--space-2);flex-shrink:0}.shell-collapse-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:none;border:none;color:var(--sidebar-text);padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs)}.shell-collapse-btn:hover{background:var(--sidebar-bg-hover);color:var(--n-0)}.shell-main{flex:1;min-width:0;display:flex;flex-direction:column}.shell-topbar{height:var(--topbar-height);flex-shrink:0;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--surface-raised);border-bottom:1px solid var(--border-default);position:sticky;top:0;z-index:var(--z-sticky)}.shell-mobile-toggle{display:none;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.shell-breadcrumbs{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--text-tertiary);overflow:hidden;white-space:nowrap}.shell-breadcrumbs a{color:var(--text-secondary);text-decoration:none}.shell-breadcrumbs a:hover{color:var(--text-brand)}.shell-breadcrumbs .current{color:var(--text-primary);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis}.shell-topbar-spacer{flex:1}.shell-topbar-search{width:240px}.shell-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);background:none;border:none;color:var(--text-secondary);cursor:pointer}.shell-icon-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.shell-icon-dot{position:absolute;top:5px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--danger-500);border:1.5px solid var(--surface-raised)}.shell-user-trigger{display:flex;align-items:center;gap:var(--space-2);background:none;border:none;cursor:pointer;padding:2px;border-radius:var(--radius-full)}.shell-user-trigger:hover{background:var(--surface-hover)}.shell-user-meta{padding:var(--space-2) var(--space-2) var(--space-1)}.shell-user-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.shell-user-email{font-size:var(--text-xs);color:var(--text-tertiary);word-break:break-all}.shell-notif-panel{width:320px}.shell-notif-empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.shell-content{flex:1;padding:var(--space-6) var(--space-6) var(--space-10);max-width:var(--content-max-width);width:100%}@media(max-width:900px){.shell-sidebar{position:fixed;inset:0 auto 0 0;z-index:var(--z-overlay);transform:translate(-100%);transition:transform var(--duration-slow) var(--ease-standard);width:var(--sidebar-width)}.shell-sidebar.mobile-open{transform:translate(0);box-shadow:var(--shadow-lg)}.shell-mobile-toggle{display:inline-flex}.shell-topbar-search{display:none}.shell-content{padding:var(--space-4)}}.shell-mobile-scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-overlay);z-index:calc(var(--z-overlay) - 1)}@media(max-width:900px){.shell-mobile-scrim.visible{display:block}}.chat-shell{display:flex;height:calc(100vh - var(--topbar-height) - var(--space-6) - var(--space-10));margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) calc(-1 * var(--space-10));background:var(--surface-raised);border-top:1px solid var(--border-default)}.chat-sidebar{width:280px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--border-default);background:var(--surface-page);min-height:0}.chat-sidebar-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.chat-sidebar-search{flex:1}.chat-new-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-raised);color:var(--text-secondary);cursor:pointer;flex-shrink:0}.chat-new-btn:hover{background:var(--brand-50);color:var(--text-brand);border-color:var(--brand-300)}.chat-sidebar-sections{flex:1;overflow-y:auto;padding:var(--space-2)}.chat-sidebar-section{margin-bottom:var(--space-1)}.chat-sidebar-section-heading{width:100%;display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary)}.chat-sidebar-item{width:100%;display:flex;align-items:center;gap:var(--space-2);background:none;border:none;cursor:pointer;padding:6px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary);text-align:left}.chat-sidebar-item:hover{background:var(--surface-hover)}.chat-sidebar-item.active{background:var(--surface-selected);color:var(--text-brand);font-weight:var(--font-weight-medium)}.chat-sidebar-item-icon{display:flex;color:var(--text-tertiary);flex-shrink:0}.chat-sidebar-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-sidebar-badge{min-width:17px;height:17px;padding:0 5px;border-radius:var(--radius-full);background:var(--brand-500);color:var(--n-0);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-sidebar-item.active .chat-sidebar-badge{background:var(--brand-600)}.chat-sidebar-empty{padding:var(--space-6) var(--space-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.chat-sidebar-empty p{margin:0 0 var(--space-3)}.chat-search-results{flex:1;overflow-y:auto;padding:var(--space-2);position:relative}.chat-search-close{position:absolute;top:var(--space-1);right:var(--space-1);background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px}.chat-search-section{margin-bottom:var(--space-3)}.chat-search-heading{font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);padding:0 var(--space-2) var(--space-1)}.chat-search-result{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:6px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-primary)}.chat-search-result:hover{background:var(--surface-hover)}.chat-search-message{display:flex;flex-direction:column;gap:2px}.chat-search-message-author{font-weight:var(--font-weight-medium);font-size:var(--text-xs)}.chat-search-message-body{color:var(--text-secondary);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-search-empty{padding:var(--space-6) var(--space-3);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.chat-header{height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);border-bottom:1px solid var(--border-default)}.chat-header-title{display:flex;align-items:center;gap:var(--space-2);min-width:0}.chat-header-icon{display:flex;color:var(--text-tertiary)}.chat-header-name{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);display:flex;align-items:center;gap:6px}.chat-header-desc{font-size:var(--text-xs);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}.chat-header-typing{font-size:var(--text-2xs);color:var(--text-brand);font-style:italic}.chat-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.chat-mobile-back{display:none;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px}.chat-presence-dot{width:8px;height:8px;border-radius:50%;display:inline-block;border:1.5px solid var(--surface-raised)}.chat-presence-online{background:var(--success-500)}.chat-presence-away{background:var(--warning-500)}.chat-presence-busy{background:var(--danger-500)}.chat-presence-offline{background:var(--n-300)}.chat-body{flex:1;display:flex;min-height:0}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;min-width:0}.chat-day-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-4) 0 var(--space-2)}.chat-day-divider:before,.chat-day-divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.chat-day-divider span{font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em}.chat-thread-loading{text-align:center;color:var(--text-tertiary);font-size:var(--text-xs);padding:var(--space-2)}.chat-message{display:flex;gap:var(--space-2);padding:2px var(--space-2);border-radius:var(--radius-md);position:relative}.chat-message:hover{background:var(--surface-page)}.chat-message-avatar-slot{width:30px;flex-shrink:0}.chat-message-body-col{flex:1;min-width:0}.chat-message-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:1px}.chat-message-author{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.chat-message-time,.chat-message-edited{font-size:var(--text-2xs);color:var(--text-tertiary)}.chat-message-pinned-tag{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-2xs);color:var(--text-warning)}.chat-message-text{font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word}.chat-message-deleted{padding:2px var(--space-2);opacity:.7}.chat-message-deleted-text{font-size:var(--text-sm);font-style:italic;color:var(--text-tertiary)}.chat-link{color:var(--text-link);text-decoration:underline}.chat-mention-highlight{background:var(--brand-50);color:var(--text-brand);border-radius:3px;padding:0 2px;font-weight:var(--font-weight-medium)}.chat-code-block{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-xs);margin:4px 0}.chat-attachments-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}.chat-attachment-item{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-primary);text-decoration:none;width:fit-content;max-width:100%}.chat-attachment-item:hover{background:var(--surface-hover)}.chat-attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attachment-size{color:var(--text-tertiary);flex-shrink:0}.chat-reactions-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.chat-reaction-pill{display:flex;align-items:center;gap:4px;padding:1px 7px;border-radius:var(--radius-full);border:1px solid var(--border-default);background:var(--surface-raised);font-size:var(--text-xs);cursor:pointer}.chat-reaction-pill:hover{border-color:var(--border-strong)}.chat-reaction-pill.mine{background:var(--brand-50);border-color:var(--brand-300);color:var(--text-brand)}.chat-thread-summary{margin-top:4px;background:none;border:none;cursor:pointer;color:var(--text-brand);font-size:var(--text-xs);font-weight:var(--font-weight-medium);padding:0}.chat-thread-summary:hover{text-decoration:underline}.chat-message-toolbar{position:absolute;top:-14px;right:var(--space-2);display:none;align-items:center;gap:2px;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:2px;z-index:5}.chat-message:hover .chat-message-toolbar{display:flex}.chat-toolbar-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer}.chat-toolbar-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.chat-toolbar-btn.danger:hover{background:var(--danger-50);color:var(--text-danger)}.chat-toolbar-btn.active{background:var(--brand-50);color:var(--text-brand)}.chat-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.chat-edit-box{display:flex;flex-direction:column;gap:4px}.chat-edit-box textarea{font:inherit;padding:6px 8px;border:1px solid var(--border-focus);border-radius:var(--radius-md);resize:vertical}.chat-edit-actions{display:flex;gap:6px;justify-content:flex-end}.chat-composer{border-top:1px solid var(--border-default);padding:var(--space-3);flex-shrink:0}.chat-composer-disabled{color:var(--text-tertiary);font-size:var(--text-sm);text-align:center;padding:var(--space-3)}.chat-composer-row{position:relative;display:flex;align-items:flex-end;gap:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:6px 6px 6px var(--space-3);background:var(--surface-raised)}.chat-composer-row:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--brand-100)}.chat-composer-input{flex:1;border:none;outline:none;resize:none;font:inherit;font-size:var(--text-sm);line-height:var(--leading-normal);padding:6px 0;max-height:160px;background:transparent;color:var(--text-primary)}.chat-composer-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.chat-composer-icon-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer}.chat-composer-icon-btn:hover{background:var(--surface-hover);color:var(--text-secondary)}.chat-composer-send{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--brand-500);color:var(--n-0);border:none;border-radius:var(--radius-md);cursor:pointer}.chat-composer-send:hover{background:var(--brand-600)}.chat-composer-send:disabled{opacity:.5;cursor:not-allowed}.chat-composer-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-2)}.chat-attachment-chip{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-xs)}.chat-attachment-chip.error{background:var(--danger-50);color:var(--text-danger)}.chat-attachment-status{color:var(--text-tertiary);font-size:var(--text-2xs)}.chat-attachment-chip button{background:none;border:none;color:var(--text-tertiary);cursor:pointer;display:flex}.chat-mention-popover{position:absolute;bottom:calc(100% + 6px);left:var(--space-3);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:220px;max-height:220px;overflow-y:auto;z-index:var(--z-dropdown)}.chat-mention-option{width:100%;display:flex;align-items:center;gap:6px;padding:6px var(--space-3);background:none;border:none;cursor:pointer;font-size:var(--text-sm);text-align:left}.chat-mention-option:hover{background:var(--surface-hover)}.chat-mention-type{font-weight:var(--font-weight-semibold);color:var(--text-tertiary)}.chat-mention-type-employee{color:var(--text-brand)}.chat-mention-type-team{color:var(--text-success)}.chat-mention-type-channel{color:var(--text-warning)}.chat-emoji-wrap{position:relative}.chat-emoji-popover{position:absolute;bottom:calc(100% + 6px);right:0;background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:6px;display:flex;gap:2px;z-index:var(--z-dropdown)}.chat-emoji-popover button{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:15px}.chat-emoji-popover button:hover{background:var(--surface-hover)}.chat-thread-panel,.chat-info-panel{width:340px;flex-shrink:0;display:flex;flex-direction:column;border-left:1px solid var(--border-default);background:var(--surface-page);min-height:0}.chat-thread-header{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.chat-thread-body{flex:1;overflow-y:auto;padding:var(--space-2)}.chat-thread-root{padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-2)}.chat-thread-replies{display:flex;flex-direction:column}.chat-load-more{align-self:center;background:none;border:none;color:var(--text-brand);font-size:var(--text-xs);cursor:pointer;padding:var(--space-2)}.chat-info-panel-body{flex:1;overflow-y:auto;padding:var(--space-3)}.chat-member-list{display:flex;flex-direction:column;gap:var(--space-1)}.chat-member-row{display:flex;align-items:center;gap:var(--space-2);padding:6px 4px}.chat-member-name{font-size:var(--text-sm);color:var(--text-primary)}.chat-member-sub{font-size:var(--text-xs);color:var(--text-tertiary)}.chat-pinned-list{display:flex;flex-direction:column;gap:var(--space-3)}.chat-pinned-item{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.chat-pinned-author{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:2px}.chat-pinned-body{font-size:var(--text-sm);color:var(--text-secondary)}.chat-files-list{display:flex;flex-direction:column;gap:6px}.chat-people-picker-list{max-height:260px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-top:var(--space-2)}.chat-people-picker-row{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-3);background:none;border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer;text-align:left}.chat-people-picker-row:last-child{border-bottom:none}.chat-people-picker-row:hover{background:var(--surface-hover)}.chat-people-picker-row.checked{background:var(--brand-50)}.chat-people-picker-name{flex:1;font-size:var(--text-sm);color:var(--text-primary)}.chat-people-picker-sub{color:var(--text-tertiary)}.chat-people-picker-empty{padding:var(--space-4);text-align:center;color:var(--text-tertiary);font-size:var(--text-sm)}.chat-form-stack{display:flex;flex-direction:column;gap:var(--space-3)}.chat-checkbox-row{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--text-primary)}.chat-forward-list{max-height:320px;overflow-y:auto}@media(max-width:900px){.chat-shell{margin:calc(-1 * var(--space-4));height:calc(100vh - var(--topbar-height) - 2 * var(--space-4))}.chat-thread-panel,.chat-info-panel{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;z-index:3}.chat-sidebar{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%}.chat-mobile-conversation .chat-sidebar{display:none}.chat-mobile-back{display:flex}}.call-incoming-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--surface-overlay);display:flex;align-items:center;justify-content:center}.call-incoming-card{background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:260px;animation:call-pulse-in .22s var(--ease-standard)}@keyframes call-pulse-in{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.call-incoming-name{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-top:var(--space-2)}.call-incoming-type{font-size:var(--text-sm);color:var(--text-secondary)}.call-incoming-actions{display:flex;gap:var(--space-6);margin-top:var(--space-4)}.call-incoming-btn{width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--n-0)}.call-incoming-btn.accept{background:var(--success-500)}.call-incoming-btn.accept:hover{background:var(--success-600)}.call-incoming-btn.decline{background:var(--danger-500)}.call-incoming-btn.decline:hover{background:var(--danger-600)}.call-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) - 1);background:var(--n-900);display:flex;flex-direction:column;color:var(--n-0)}.call-error-banner{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);z-index:5;background:var(--n-800);color:var(--n-0);border:1px solid var(--sidebar-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);box-shadow:var(--shadow-lg)}.call-error-banner.fatal{border-color:var(--danger-500)}.call-error-banner button{background:none;border:none;color:var(--n-400);cursor:pointer;display:flex}.call-screen-header{padding:var(--space-3) var(--space-4);flex-shrink:0}.call-screen-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold)}.call-screen-subtitle{font-size:var(--text-xs);color:var(--n-400)}.call-screen-body{flex:1;display:flex;min-height:0}.call-tiles-grid{flex:1;padding:var(--space-3);min-width:0;display:flex;flex-direction:column}.call-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:minmax(140px,1fr);gap:var(--space-3);align-content:center}.call-tiles-grid.spotlight{display:flex;flex-direction:column;gap:var(--space-3)}.call-spotlight{flex:1;min-height:0;display:flex}.call-spotlight .call-tile{flex:1}.call-filmstrip{display:flex;gap:var(--space-2);overflow-x:auto;flex-shrink:0;padding-bottom:2px}.call-filmstrip .call-tile{width:160px;height:100px;flex-shrink:0}.call-tile{position:relative;background:var(--n-800);border-radius:var(--radius-lg);overflow:hidden;display:flex;align-items:center;justify-content:center;border:2px solid transparent;min-height:0}.call-tile.speaking{border-color:var(--success-500)}.call-tile.disconnected{opacity:.55}.call-tile.large{min-height:0}.call-tile-video{width:100%;height:100%;object-fit:cover}.call-tile-avatar{display:flex;align-items:center;justify-content:center}.call-tile-label{position:absolute;left:var(--space-2);bottom:var(--space-2);display:flex;align-items:center;gap:5px;background:#00000080;border-radius:var(--radius-sm);padding:3px 8px;font-size:var(--text-xs)}.call-tile-label svg{width:12px;height:12px}.call-tile-reconnecting{position:absolute;top:var(--space-2);right:var(--space-2);background:var(--warning-500);color:var(--n-900);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);padding:2px 6px}.call-side-panel{width:300px;flex-shrink:0;background:var(--n-800);border-left:1px solid var(--sidebar-border);display:flex;flex-direction:column}.call-side-panel-header{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);border-bottom:1px solid var(--sidebar-border);font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}.call-side-panel-header .chat-toolbar-btn{color:var(--n-300)}.call-side-panel-body{flex:1;overflow-y:auto;padding:var(--space-3)}.call-side-panel .ui-select{background:var(--n-700);color:var(--n-0);border-color:var(--sidebar-border)}.call-side-panel .ui-field-label{color:var(--n-300)}.call-side-panel .ui-field-hint{color:var(--n-400)}.call-meeting-chat-messages{display:flex;flex-direction:column}.call-side-panel .chat-composer{border-top:1px solid var(--sidebar-border)}.call-side-panel .chat-composer-row{background:var(--n-700);border-color:var(--sidebar-border)}.call-side-panel .chat-composer-input,.call-side-panel .chat-message-author,.call-side-panel .chat-message-text{color:var(--n-0)}.call-side-panel .chat-message-time{color:var(--n-400)}.call-side-panel .chat-message:hover{background:var(--n-700)}.call-participant-row{display:flex;align-items:center;justify-content:space-between;padding:7px 4px;font-size:var(--text-sm)}.call-participant-status{font-size:var(--text-2xs);color:var(--n-400)}.call-participant-status.status-accepted{color:var(--success-500)}.call-participant-status.status-declined{color:var(--danger-500)}.call-controls{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4)}.call-control-btn{width:46px;height:46px;border-radius:50%;border:none;background:var(--n-700);color:var(--n-0);display:flex;align-items:center;justify-content:center;cursor:pointer}.call-control-btn:hover{background:var(--n-600)}.call-control-btn.active{background:var(--brand-500)}.call-control-btn.leave{background:var(--danger-500)}.call-control-btn.leave:hover{background:var(--danger-600)}@media(max-width:900px){.call-side-panel{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;z-index:4}.call-controls{gap:var(--space-2)}.call-control-btn{width:42px;height:42px}.call-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.quick-add-bar{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3);background:var(--surface-raised);margin:var(--space-4) 0;color:var(--text-tertiary)}.quick-add-bar:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--brand-100)}.quick-add-bar input{flex:1;border:none;outline:none;background:transparent;font-size:var(--text-base);color:var(--text-primary)}.quick-add-chip{display:flex;align-items:center;gap:4px;background:var(--brand-50);color:var(--text-brand);font-size:var(--text-xs);font-weight:var(--font-weight-medium);padding:3px 8px;border-radius:var(--radius-full);flex-shrink:0}.quick-add-chip svg{width:12px;height:12px}.mywork-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3);margin-bottom:var(--space-2)}.mywork-stat{display:flex;align-items:center;gap:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:var(--surface-raised);color:var(--text-tertiary)}.mywork-stat.danger{border-color:var(--danger-500)}.mywork-stat.danger .mywork-stat-value{color:var(--text-danger)}.mywork-stat-value{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1}.mywork-stat-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.mywork-view-toggle{margin-bottom:var(--space-2)}.mywork-filters{display:flex;gap:var(--space-2);margin:var(--space-3) 0;max-width:420px}.mywork-section-body{min-height:200px}.mywork-subgroup{margin-bottom:var(--space-5)}.mywork-subgroup h3{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);margin:0 0 var(--space-2)}.todo-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid transparent;border-bottom:1px solid var(--border-subtle);cursor:pointer}.todo-row:hover{background:var(--surface-hover)}.todo-row.overdue .todo-row-title{color:var(--text-danger)}.todo-row.completed .todo-row-title{text-decoration:line-through;color:var(--text-tertiary)}.todo-row-grip{color:var(--text-tertiary);cursor:grab;display:flex;flex-shrink:0}.todo-row-checkbox{width:17px;height:17px;flex-shrink:0;cursor:pointer;accent-color:var(--brand-500)}.todo-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.todo-row-title{font-size:var(--text-sm);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-row-subtask-count{font-size:var(--text-2xs);color:var(--text-tertiary);display:flex;align-items:center;gap:4px}.todo-row-subtask-count svg{width:11px;height:11px}.todo-row-meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.todo-row-due,.todo-row-recur{display:flex;align-items:center;gap:4px;font-size:var(--text-2xs);color:var(--text-tertiary)}.todo-row-due svg,.todo-row-recur svg{width:12px;height:12px}.todo-row-due.overdue{color:var(--text-danger);font-weight:var(--font-weight-medium)}.project-task-row .todo-row-checkbox{accent-color:var(--n-500)}.todo-detail{display:flex;flex-direction:column;gap:var(--space-4)}.todo-detail-title input,input.todo-detail-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);border:none;padding:4px 0}.todo-detail-title input:focus,input.todo-detail-title:focus{box-shadow:none;border-bottom:1px solid var(--border-focus)}.todo-detail-description{resize:vertical}.todo-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.todo-detail-datetime{display:flex;gap:6px}.todo-detail-datetime input{flex:1;min-width:0}.todo-recur-controls{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.todo-weekday-picker{display:flex;gap:4px}.todo-weekday-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--border-default);background:var(--surface-raised);color:var(--text-secondary);font-size:var(--text-2xs);cursor:pointer}.todo-weekday-btn.active{background:var(--brand-500);border-color:var(--brand-500);color:var(--n-0)}.todo-detail-footer{justify-content:space-between}.week-view{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2);margin-top:var(--space-3)}.week-day-col{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-raised);min-height:220px;display:flex;flex-direction:column}.week-day-col.today{border-color:var(--brand-500)}.week-day-header{padding:var(--space-2);border-bottom:1px solid var(--border-subtle);text-align:center}.week-day-name{display:block;font-size:var(--text-2xs);color:var(--text-tertiary);text-transform:uppercase}.week-day-num{display:block;font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.week-day-col.today .week-day-num{color:var(--text-brand)}.week-day-body{flex:1;padding:var(--space-1);overflow-y:auto}.week-day-body .todo-row{padding:6px;border-bottom:none}.week-day-empty{text-align:center;color:var(--text-tertiary);font-size:var(--text-2xs);padding:var(--space-3)}@media(max-width:900px){.week-view{grid-template-columns:repeat(2,1fr)}}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--surface-overlay);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.palette-panel{width:560px;max-width:90vw;background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.palette-search{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary)}.palette-search input{flex:1;border:none;outline:none;font-size:var(--text-base);color:var(--text-primary)}.palette-search kbd{font-size:var(--text-2xs);color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:1px 5px}.palette-options{max-height:340px;overflow-y:auto;padding:var(--space-2)}.palette-option{width:100%;display:flex;align-items:center;gap:var(--space-2);background:none;border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;text-align:left}.palette-option.active{background:var(--surface-selected);color:var(--text-brand)}.palette-empty{text-align:center;color:var(--text-tertiary);font-size:var(--text-sm);padding:var(--space-6)}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;margin:var(--space-4) 0;flex-wrap:wrap;gap:var(--space-3)}.cal-toolbar-nav{display:flex;align-items:center;gap:var(--space-2)}.cal-toolbar-heading{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-left:var(--space-2);min-width:160px}.cal-month{border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-raised)}.cal-month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--border-default)}.cal-month-weekday{padding:var(--space-2);text-align:center;font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);color:var(--text-tertiary);text-transform:uppercase}.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(110px,1fr)}.cal-month-cell{border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);padding:6px;cursor:pointer;display:flex;flex-direction:column;gap:3px;min-width:0}.cal-month-cell:hover{background:var(--surface-hover)}.cal-month-cell.muted{background:var(--surface-sunken);color:var(--text-tertiary)}.cal-month-cell.muted .cal-month-cell-num{color:var(--text-tertiary)}.cal-month-cell.today .cal-month-cell-num{background:var(--brand-500);color:var(--n-0);border-radius:var(--radius-full);width:20px;height:20px;display:flex;align-items:center;justify-content:center}.cal-month-cell-num{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-primary)}.cal-month-cell-chips{display:flex;flex-direction:column;gap:2px;overflow:hidden}.cal-month-more{background:none;border:none;color:var(--text-brand);font-size:var(--text-2xs);text-align:left;cursor:pointer;padding:1px 0}.cal-chip{display:flex;align-items:center;gap:4px;width:100%;background:var(--surface-page);border:none;border-left:3px solid var(--n-300);border-radius:3px;padding:2px 5px;font-size:var(--text-2xs);color:var(--text-primary);text-align:left;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cal-chip:hover{background:var(--surface-hover)}.cal-chip svg{width:10px;height:10px;flex-shrink:0}.cal-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-chip.cancelled{opacity:.5;text-decoration:line-through}.cal-chip-meeting{border-left-color:var(--brand-500)}.cal-chip-todo{border-left-color:var(--success-500)}.cal-chip-task{border-left-color:var(--n-500)}.cal-chip-milestone{border-left-color:var(--warning-500)}.cal-chip-leave{border-left-color:var(--danger-500)}.cal-chip-holiday{border-left-color:var(--brand-300)}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2)}.cal-week-col{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-raised);min-height:300px;display:flex;flex-direction:column}.cal-week-col.today{border-color:var(--brand-500)}.cal-week-col-header{padding:var(--space-2);border-bottom:1px solid var(--border-subtle);text-align:center}.cal-week-col-name{display:block;font-size:var(--text-2xs);color:var(--text-tertiary);text-transform:uppercase}.cal-week-col-num{display:block;font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.cal-week-col.today .cal-week-col-num{color:var(--text-brand)}.cal-week-col-body{flex:1;padding:var(--space-1);display:flex;flex-direction:column;gap:3px;overflow-y:auto}.cal-week-empty{text-align:center;color:var(--text-tertiary);font-size:var(--text-2xs);padding:var(--space-3)}@media(max-width:900px){.cal-week{grid-template-columns:repeat(2,1fr)}}.cal-day-heading{font-size:var(--text-lg);margin:0 0 var(--space-4)}.cal-day-section{margin-bottom:var(--space-5)}.cal-day-section h3{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary);margin:0 0 var(--space-2)}.cal-day-meeting-row{width:100%;display:flex;align-items:center;gap:var(--space-3);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2);cursor:pointer;text-align:left;font-size:var(--text-sm)}.cal-day-meeting-row:hover{background:var(--surface-hover)}.cal-day-meeting-time{color:var(--text-tertiary);font-size:var(--text-xs);flex-shrink:0;min-width:130px}.cal-day-meeting-title{flex:1;color:var(--text-primary)}.cal-day-meeting-category{color:var(--text-tertiary);font-size:var(--text-xs)}.cal-day-chips{display:flex;flex-direction:column;gap:4px;max-width:420px}.mtg-detail-header{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.mtg-detail-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.mtg-participant-list{display:flex;flex-direction:column;gap:4px}.mtg-participant-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);padding:4px 0}.mtg-participant-row span:first-of-type{flex:1}.inbox-sections{display:flex;flex-direction:column;gap:var(--space-6);margin-top:var(--space-4)}.inbox-section h2{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 var(--space-2)}.notif-row{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-raised);margin-bottom:6px;cursor:pointer}.notif-row:hover{background:var(--surface-hover)}.notif-row.unread{border-left:3px solid var(--brand-500);background:var(--brand-50)}.notif-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.notif-row-top{display:flex;align-items:center;gap:var(--space-2)}.notif-row-title{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.notif-row-body{font-size:var(--text-xs);color:var(--text-secondary)}.notif-row-time{font-size:var(--text-2xs);color:var(--text-tertiary)}.notif-row-actions{display:flex;gap:var(--space-2);margin-top:4px}.notif-unread-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-500);display:block;margin:8px}.inbox-page .ui-table th,.inbox-page .ui-table td{text-align:left}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--surface-page);color:var(--text-primary)}.portal-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:var(--space-8) var(--space-4) var(--space-16)}.portal-logo{align-self:flex-start;font-weight:var(--font-weight-bold);font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--brand-500);margin-bottom:var(--space-6);max-width:640px;width:100%}.portal-card{background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-8);max-width:640px;width:100%}.portal-eyebrow{color:var(--text-tertiary);font-size:var(--text-base);margin:0 0 var(--space-2)}.portal-title{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);margin:0 0 4px}.portal-due{color:var(--text-tertiary);font-size:var(--text-base);margin:0 0 var(--space-5)}.portal-description{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--text-secondary);margin:0 0 var(--space-6)}.task-list{list-style:none;margin:0 0 var(--space-6);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.task-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-lg);font-size:var(--text-base)}.status-badge{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);padding:3px var(--space-3);border-radius:var(--radius-full);text-transform:capitalize}.status-badge.done{background:var(--success-50);color:var(--text-success)}.status-badge.other{background:var(--n-100);color:var(--text-secondary)}.portal-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.portal-actions .ui-btn{flex:1;min-width:200px}.state-message{text-align:center;padding:var(--space-10) var(--space-5)}.state-message h1{font-size:var(--text-2xl);margin-bottom:var(--space-2)}.state-message p{color:var(--text-tertiary)}.error-text{color:var(--text-danger);font-size:var(--text-sm);margin-top:var(--space-2)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5);flex-wrap:wrap;gap:var(--space-3)}.page-header h1{font-size:var(--text-2xl);margin:0}.page-subtitle{color:var(--text-tertiary);font-size:var(--text-base);margin:4px 0 0}.project-header{margin-bottom:4px;align-items:flex-start}.project-header-title-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.project-header-title-row h1{font-size:var(--text-xl)}.project-header-code{font-size:var(--text-2xs);font-family:var(--font-mono);color:var(--text-tertiary);background:var(--n-100);padding:2px 6px;border-radius:var(--radius-sm)}.project-header-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;color:var(--text-tertiary);font-size:12.5px;margin-top:6px}.project-header-meta .dot{opacity:.6}.project-header-actions{display:flex;gap:var(--space-2);align-items:center;flex-shrink:0}.filter-bar{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface-page)}.login-card{background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-8);width:420px}.login-card h1{font-size:var(--text-xl);margin:0 0 var(--space-3)}.login-hint{font-size:var(--text-sm);color:var(--text-tertiary);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}.login-hint code{display:block;background:var(--n-100);padding:6px var(--space-2);border-radius:var(--radius-sm);margin-top:6px;font-size:var(--text-xs)}.avatar{border-radius:50%;color:var(--n-0);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);flex-shrink:0}.avatar-stack{display:flex}.avatar-stack .avatar{margin-left:-8px;border:2px solid var(--surface-raised)}.avatar-stack .avatar:first-child{margin-left:0}.rag-badge{font-size:var(--text-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.03em;padding:3px var(--space-2);border-radius:var(--radius-full)}.rag-green{background:var(--success-50);color:var(--text-success)}.rag-amber{background:var(--warning-50);color:var(--text-warning)}.rag-red{background:var(--danger-50);color:var(--text-danger)}.budget-bar-track{height:6px;background:var(--n-200);border-radius:var(--radius-full);overflow:hidden;width:100%}.budget-bar-fill{height:100%;border-radius:var(--radius-full)}.budget-bar-green{background:var(--success-500)}.budget-bar-amber{background:var(--warning-500)}.budget-bar-red{background:var(--danger-500)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.project-card{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-4);text-decoration:none;color:inherit;display:block;transition:border-color var(--duration-base) var(--ease-standard)}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.project-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2)}.project-card-title{font-weight:var(--font-weight-semibold);font-size:var(--text-md);margin:0}.project-card-code{font-size:var(--text-xs);color:var(--text-tertiary)}.project-card-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin:var(--space-2) 0 6px}.project-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3)}.project-table{width:100%;border-collapse:collapse;background:var(--surface-raised);border-radius:var(--radius-lg);overflow:hidden}.project-table th,.project-table td{text-align:left;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-bottom:1px solid var(--border-subtle)}.project-table th{color:var(--text-secondary);font-weight:var(--font-weight-semibold);background:var(--surface-sunken)}.project-table tr:last-child td{border-bottom:none}.project-table a{color:var(--text-link);text-decoration:none;font-weight:var(--font-weight-semibold)}.view-toggle{display:flex;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.view-toggle button{border:none;background:var(--surface-raised);padding:6px var(--space-3);font-size:var(--text-sm);cursor:pointer;color:var(--text-primary)}.view-toggle button.active{background:var(--brand-500);color:var(--text-inverse)}.tab-nav{display:flex;gap:4px;margin-top:var(--space-3)}.tab-link{color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);padding:7px var(--space-3);border-radius:var(--radius-md)}.tab-link:hover{background:var(--surface-hover)}.tab-link.active{background:var(--brand-50);color:var(--text-brand)}.board-columns{display:flex;gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-3)}.board-column{background:var(--surface-sunken);border-radius:var(--radius-lg);width:270px;flex-shrink:0;padding:var(--space-2);min-height:200px}.board-column.drag-over{background:var(--brand-100)}.board-column-header{display:flex;justify-content:space-between;align-items:center;padding:4px 6px var(--space-2);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);text-transform:capitalize}.board-column-count{color:var(--text-tertiary);font-weight:var(--font-weight-regular)}.task-card{background:var(--surface-raised);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-2);cursor:grab;box-shadow:var(--shadow-xs);font-size:var(--text-sm)}.task-card:active{cursor:grabbing}.task-card.dragging{opacity:.4}.task-card-title{font-weight:500;margin-bottom:8px}.task-card-footer{display:flex;justify-content:space-between;align-items:center}.priority-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.priority-critical{background:var(--danger-500)}.priority-high{background:#ea580c}.priority-medium{background:#d97706}.priority-low{background:#65a30d}.priority-none{background:var(--n-400)}.task-card-meta{font-size:var(--text-2xs);color:var(--text-tertiary);display:flex;gap:var(--space-2);align-items:center}.task-card-toprow{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:6px}.task-card-type-badge{font-size:10px;letter-spacing:.02em;padding:1px 6px}.task-card-labels{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.task-card-labels .label-chip{font-size:10px;padding:1px 6px}.board-swimlane-toggle{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary, #4b5563);cursor:pointer;margin-left:4px}.board-swimlanes{display:flex;flex-direction:column;gap:18px}.board-swimlane-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:8px}.board-columns-lane .board-column{min-height:60px}.board-swimlane-legend{padding-bottom:4px;margin-bottom:4px}.board-swimlane-legend-item{width:270px;flex-shrink:0;padding:4px 10px}.bulk-action-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--brand-50, #eef2ff);border:1px solid var(--brand-300, #b7c6fb);border-radius:var(--radius-md, 6px);padding:10px 14px;margin-bottom:14px;font-size:13px;font-weight:500}.bulk-action-bar .ui-field{margin:0}.bulk-action-bar select{min-width:130px}.backlog-sprint-dropzone{border:1.5px dashed var(--brand-300, #b7c6fb);border-radius:var(--radius-md, 6px);padding:12px;text-align:center;font-size:13px;color:var(--text-secondary, #4b5563);margin-bottom:14px;background:var(--brand-50, #f5f7ff)}.backlog-sprint-dropzone.drag-over{background:var(--brand-100, #dbe4fc);border-color:var(--brand-500, #3568e0)}.backlog-list{background:var(--surface-raised, #fff);border:1px solid var(--border-default, #e5e7eb);border-radius:var(--radius-lg, 8px);overflow:hidden}.backlog-row{display:flex;align-items:center;gap:8px;padding:9px 12px 9px 10px;border-bottom:1px solid var(--border-subtle, #f1f1f1);font-size:13px;cursor:pointer}.backlog-row:last-child{border-bottom:none}.backlog-row:hover{background:var(--surface-hover, #f9fafb)}.backlog-row.dragging{opacity:.4}.backlog-row.drag-over{background:var(--brand-50, #eef2ff)}.backlog-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backlog-row-spacer{flex:1}.sprint-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media(max-width:860px){.sprint-create-grid{grid-template-columns:1fr}}.capacity-warning{background:var(--surface-danger-subtle, #fef2f2);border:1px solid var(--border-danger, #f2b8b5);color:var(--text-danger, #c53434);border-radius:var(--radius-md, 6px);padding:10px 14px;font-size:12.5px;margin-bottom:14px}.capacity-member-table{width:100%;border-collapse:collapse;font-size:12.5px}.capacity-member-table th{text-align:left;padding:6px 8px;color:var(--text-tertiary, #6b7280);font-weight:600;border-bottom:1px solid var(--border-subtle, #eee)}.capacity-member-table td{padding:6px 8px;border-bottom:1px solid var(--border-subtle, #f4f4f5)}.resource-manager-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:4px}@media(max-width:860px){.resource-manager-panels{grid-template-columns:1fr}}.resource-detail{font-size:13px}.resource-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.resource-detail-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border-subtle, #f4f4f5);font-size:13px}.resource-detail-h4{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary, #6b7280);margin:18px 0 8px}.allocation-matrix th,.allocation-matrix td{white-space:nowrap;text-align:center}.allocation-matrix th:first-child,.allocation-matrix td:first-child{text-align:left;position:sticky;left:0;background:var(--surface-raised)}.allocation-matrix tr.clickable{cursor:pointer}.allocation-matrix tr.clickable:hover td{background:var(--surface-hover, #f9fafb)}.resource-calendar-wrap{overflow-x:auto}.resource-calendar-grid{display:grid;row-gap:2px;column-gap:1px;align-items:center;width:max-content}.resource-calendar-corner{position:sticky;left:0;background:var(--surface-raised);z-index:1}.resource-calendar-daylabel{font-size:9px;text-align:center;color:var(--text-tertiary, #9ca3af)}.resource-calendar-daylabel.weekend{color:var(--text-danger, #dc2626)}.resource-calendar-rowlabel{font-size:12px;padding-right:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;left:0;background:var(--surface-raised);cursor:pointer}.resource-calendar-rowlabel:hover{text-decoration:underline}.resource-calendar-cell{width:22px;height:18px;border-radius:3px;background:var(--n-100)}.resource-calendar-cell.weekend{background:var(--n-200)}.resource-calendar-cell.leave{background:#f59e0b}.resource-calendar-cell.holiday{background:#6366f1}.resource-calendar-legend{display:flex;gap:var(--space-4);margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-tertiary)}.resource-calendar-legend .swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle}.resource-calendar-legend .swatch.weekend{background:var(--n-200)}.resource-calendar-legend .swatch.leave{background:#f59e0b}.resource-calendar-legend .swatch.holiday{background:#6366f1}.timesheet-grid{width:100%}.timesheet-grid th,.timesheet-grid td{text-align:center;white-space:nowrap}.timesheet-grid th:first-child,.timesheet-grid td:first-child{text-align:left;white-space:normal}.timesheet-cell-input{width:52px;text-align:center;border:1px solid var(--border-default, #d1d5db);border-radius:4px;padding:4px;font-size:12.5px}.timesheet-cell-input:disabled{background:var(--n-100, #f3f4f6);color:var(--text-tertiary, #9ca3af)}.timesheet-billable-badge{margin-left:6px}.timesheet-add-row{display:flex;gap:8px;align-items:center;margin-top:14px;flex-wrap:wrap}.timesheet-add-row .ui-field{margin:0;min-width:160px}.doc-tree-row{white-space:nowrap;overflow:hidden}.doc-tree-title{overflow:hidden;text-overflow:ellipsis}.doc-flat-row{align-items:flex-start;padding:8px}.doc-preview-snippet{font-size:11px;color:var(--text-tertiary, #9ca3af);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.doc-recent-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;background:var(--n-100, #f3f4f6);border:1px solid var(--border-subtle, #e5e7eb);border-radius:var(--radius-full, 999px);padding:5px 12px;cursor:pointer}.doc-recent-chip:hover{background:var(--surface-hover, #eef0f3)}.doc-preview-pane{margin-top:14px;border-top:1px solid var(--border-subtle, #eee);padding-top:12px}.doc-preview-pane-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary, #6b7280);margin:0 0 6px}.doc-preview-pane-body{font-size:13px;white-space:pre-wrap;color:var(--text-secondary, #374151);max-height:160px;overflow-y:auto}.comment-item{padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.comment-author{font-weight:var(--font-weight-semibold);margin-right:6px}.comment-time{color:var(--text-tertiary);font-size:var(--text-2xs)}.slideover-backdrop,.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-overlay);display:flex;justify-content:flex-end;z-index:var(--z-overlay)}.modal-backdrop{align-items:center;justify-content:center}.slideover-panel{background:var(--surface-raised);height:100%;overflow-y:auto;box-shadow:var(--shadow-lg)}.slideover-panel:focus-visible,.modal-panel:focus-visible{outline:none}.modal-panel{background:var(--surface-raised);border-radius:var(--radius-lg);width:480px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.slideover-header,.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.slideover-header h2,.modal-header h2{font-size:var(--text-lg);margin:0}.slideover-body,.modal-body{padding:var(--space-5)}.slideover-footer,.modal-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-2)}.icon-btn{background:none;border:none;cursor:pointer;font-size:var(--text-md);color:var(--text-tertiary);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{color:var(--text-primary);background:var(--surface-hover)}.icon-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.gantt-wrap{display:flex;background:var(--surface-raised);border-radius:var(--radius-lg);overflow-y:auto;overflow-x:hidden;box-shadow:var(--shadow-xs);max-height:640px;align-items:flex-start}.gantt-labels{width:220px;flex-shrink:0;border-right:1px solid var(--border-subtle);position:sticky;left:0;background:var(--surface-raised);z-index:1}.gantt-label-row{height:30px;display:flex;align-items:center;gap:5px;padding:0 var(--space-3);font-size:var(--text-xs);border-bottom:1px solid var(--border-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label-header{font-weight:var(--font-weight-bold);background:var(--surface-sunken)}.gantt-label-group{font-weight:var(--font-weight-semibold);background:var(--n-100)}.gantt-type-chip{font-size:9px;font-weight:var(--font-weight-bold);color:var(--text-tertiary);background:var(--n-100);border-radius:3px;padding:1px 4px;flex-shrink:0}.gantt-scroll{overflow-x:auto;flex:1;min-width:0}.gantt-zoom{display:flex;gap:4px;margin-left:auto}.gantt-zoom .icon-btn{border:1px solid var(--border-default);border-radius:var(--radius-md);width:26px;height:26px;font-size:var(--text-md)}.sprint-header,.bucket-card,.chart-card{background:var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.sprint-header,.chart-card{padding:var(--space-5);margin-bottom:var(--space-5)}.bucket-card{padding:var(--space-4) var(--space-5)}.sprint-header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4)}.capacity-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-tertiary);margin-bottom:4px}.bucket-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.bucket-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}.bucket-value{font-size:var(--text-2xl);font-weight:var(--font-weight-bold)}.bucket-sub{font-size:11.5px;color:var(--text-tertiary);margin-top:4px}.chart-card h3{font-size:var(--text-base);margin:0 0 var(--space-4)}.ui-muted{color:var(--text-tertiary, #6b7280)}.overview-columns{display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:start}.overview-col-main,.overview-col-side{min-width:0}.overview-sprint-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-size:13px}.overview-team-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.overview-team-list li{display:flex;align-items:center;gap:10px}.overview-team-name{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.employee-picker-search{margin-bottom:6px}.stacked-avatars{display:flex}.stacked-avatars .avatar{margin-left:-6px;border:2px solid var(--surface-base, #fff)}.stacked-avatars .avatar:first-child{margin-left:0}.stacked-avatars-more{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--n-200, #e5e7eb);color:var(--text-secondary, #4b5563);font-size:10px;font-weight:600;margin-left:-6px;border:2px solid var(--surface-base, #fff)}.views-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.saved-view-chip{display:inline-flex;align-items:center;gap:4px}.saved-view-chip button{background:none;border:none;cursor:pointer;color:inherit;opacity:.6;padding:0;display:flex}.saved-view-chip button:hover{opacity:1}.danger-zone{border:1px solid var(--border-danger, #f2b8b5);background:var(--surface-danger-subtle, #fef2f2);border-radius:var(--radius-md, 6px);padding:16px 18px;margin-top:24px}.danger-zone h3{margin:0 0 4px;font-size:14px;color:var(--text-danger, #c53434)}.danger-zone p{margin:0 0 12px;font-size:12.5px;color:var(--text-tertiary, #6b7280)}.member-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-subtle, #f1f1f1)}.member-row:last-child{border-bottom:none}.member-row-name{font-size:13.5px;font-weight:500}.member-row-sub{font-size:11.5px;color:var(--text-tertiary, #6b7280)}.member-row-controls{display:flex;gap:8px;align-items:center;margin-left:auto}.ui-progress-cell{display:flex;align-items:center;gap:8px;min-width:90px}.ui-progress-track{flex:1;height:5px;border-radius:3px;background:var(--n-200, #e5e7eb);overflow:hidden;min-width:48px}.ui-progress-fill{height:100%;background:var(--brand-500, #3568e0);border-radius:3px}.ui-progress-cell span{font-size:11.5px;color:var(--text-tertiary, #6b7280);white-space:nowrap}.member-inline-select{min-width:110px;padding:4px 8px;font-size:12.5px}.task-detail{font-size:13px}.task-detail-header{padding-bottom:14px;border-bottom:1px solid var(--border-subtle, #eee);margin-bottom:16px}.task-detail-idrow{display:flex;align-items:center;gap:8px;margin-bottom:8px}.task-detail-title-input{font-size:16px;font-weight:600;padding:6px 8px;margin-bottom:10px}.task-detail-header-controls{display:flex;gap:8px;flex-wrap:wrap}.task-detail-header-controls .ui-field{min-width:130px}.task-detail-body{display:grid;grid-template-columns:1fr;gap:24px}.task-detail-main section{margin-bottom:22px}.task-detail-main h4{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-tertiary, #6b7280);margin:0 0 10px}.task-detail-subtask-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border-subtle, #f4f4f5);font-size:13px}.task-detail-subtask-row:last-of-type{border-bottom:none}.task-detail-inline-add{margin-top:8px;display:flex;gap:8px;align-items:center}.task-detail-inline-add input{flex:1}.task-detail-inline-add .ui-field{flex:1;margin:0}.task-detail-subhead{font-size:11.5px;text-transform:uppercase;letter-spacing:.02em;margin:0 0 6px}.task-detail-reply-btn{background:none;border:none;color:var(--text-brand, #3568e0);font-size:11.5px;cursor:pointer;padding:4px 0 0}.comment-reply{margin-left:20px;border-left:2px solid var(--border-subtle, #eee);padding-left:10px}.task-detail-comment-box{margin-top:10px}.task-detail-comment-box textarea{width:100%}.task-detail-activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.task-detail-activity-list li{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}.task-detail-side{border-top:1px solid var(--border-subtle, #eee);padding-top:16px}.task-detail-side-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;font-size:13px}.task-detail-side-label{color:var(--text-tertiary, #6b7280);font-size:12px;flex-shrink:0}.task-detail-more-toggle{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--text-brand, #3568e0);font-size:12.5px;cursor:pointer;padding:8px 0}.label-chip-row{display:flex;flex-wrap:wrap;gap:6px}.label-chip{display:inline-flex;align-items:center;gap:4px;background:var(--n-100, #f3f4f6);color:var(--text-secondary, #4b5563);font-size:11.5px;padding:3px 8px;border-radius:var(--radius-full, 999px)}.label-chip button{background:none;border:none;cursor:pointer;color:inherit;display:flex;opacity:.6;padding:0}.label-chip button:hover{opacity:1}@media(min-width:760px){.task-detail-body{grid-template-columns:2fr 1fr}.task-detail-side{border-top:none;padding-top:0;padding-left:20px;border-left:1px solid var(--border-subtle, #eee)}}@media(max-width:900px){.overview-columns{grid-template-columns:1fr}}.task-group{margin-bottom:var(--space-6)}.task-group h2{font-size:var(--text-base);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-2)}.task-row-flat{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-raised);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:6px;box-shadow:var(--shadow-xs)}.task-row-flat.overdue{border-left:3px solid var(--danger-500)}.task-row-flat-title{flex:1;font-size:var(--text-base)}.task-row-flat-project{font-size:var(--text-xs);color:var(--text-tertiary)}.checkbox-lg{width:18px;height:18px;cursor:pointer}.loading-state{padding:var(--space-10);text-align:center;color:var(--text-tertiary)}
