:root{--bg: #eef0f8;--surface: #ffffff;--surface-sunken: #f8f8fc;--border: #e4e6f0;--border-strong: #d3d6e6;--text: #151a33;--muted: #5b6081;--muted-soft: #9297ae;--navbar-bg: #12162b;--navbar-bg-elevated: #1b2040;--navbar-text: #f4f5fb;--navbar-muted: #aeb2cc;--navbar-border: #232847;--navbar-active-bg: rgba(67, 56, 202, .18);--navbar-section-label: #54567c;--accent: #4338ca;--accent-hover: #372dae;--accent-active: #2f2790;--accent-text: #ffffff;--accent-soft: #eeedfb;--accent-soft-strong: #e4e1f9;--success: #157f4b;--success-soft: #e5f5ec;--warning: #b5790a;--warning-soft: #fbf0dc;--danger: #b42318;--danger-soft: #fdecea;--danger-hover: #96190f;--info: #2a5db0;--info-soft: #e9f0fc;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .06);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .14), 0 4px 10px rgba(16, 24, 40, .08);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Fraunces", "Iowan Old Style", Georgia, serif}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;font-family:var(--font-sans);font-size:14.5px;line-height:1.5;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:var(--accent-soft-strong);color:var(--accent-active)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg)}h1,h2,h3{margin:0 0 4px;font-weight:650;letter-spacing:-.015em;color:var(--text)}h1{font-family:var(--font-display);font-weight:600;font-size:1.65rem;letter-spacing:-.01em;margin-bottom:20px}h2{font-family:var(--font-display);font-size:1.1rem;margin-top:28px;margin-bottom:12px}h3{font-family:var(--font-display);font-size:.95rem;margin-bottom:10px}a{color:var(--accent);text-decoration:none;transition:color .12s ease}a:hover{color:var(--accent-hover);text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-weight:600;font-size:.875rem;cursor:pointer;background:var(--accent);color:var(--accent-text);border:1px solid transparent;border-radius:var(--radius-sm);padding:8px 14px;box-shadow:var(--shadow-xs);transition:background .12s ease,box-shadow .12s ease,transform .05s ease,border-color .12s ease}button:not(:disabled):hover{background:var(--accent-hover);box-shadow:var(--shadow-sm)}button:not(:disabled):active{background:var(--accent-active);transform:translateY(1px);box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.btn-secondary:not(:disabled):hover{background:var(--surface-sunken);border-color:var(--muted-soft)}.btn-secondary:not(:disabled):active{background:var(--border)}.btn-danger{background:var(--danger-soft);color:var(--danger);border:1px solid #f3c8c3}.btn-danger:not(:disabled):hover{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:not(:disabled):active{background:var(--danger-hover)}input:not([type=checkbox]):not([type=radio]),select,textarea{font:inherit;font-size:.875rem;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color .12s ease,box-shadow .12s ease}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--muted-soft)}input::placeholder,textarea::placeholder{color:var(--muted-soft);opacity:1}option[value=""]{color:var(--muted-soft)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:not([type=checkbox]):not([type=radio]):disabled,select:disabled,textarea:disabled{background:var(--surface-sunken);color:var(--muted-soft);cursor:not-allowed}textarea{min-height:80px;resize:vertical}input[type=checkbox],input[type=radio]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}.form label.checkbox-field{flex-direction:row;align-items:center;gap:8px;font-size:.875rem;font-weight:500;color:var(--text)}.app-shell{display:flex;min-height:100vh;align-items:stretch}.app-main{flex:1;min-width:0}.sidebar{display:flex;flex-direction:column;width:248px;flex-shrink:0;background:var(--navbar-bg);color:var(--navbar-text);padding:20px 16px;transition:width .15s ease;border-right:1px solid var(--navbar-border);font-family:"Manrope",var(--font-sans)}.sidebar-collapsed{width:68px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:22px}.sidebar-collapsed .sidebar-header{justify-content:center;padding:0}.sidebar-brand{display:flex;align-items:center;gap:10px;line-height:1.25;min-width:0}.sidebar-brand>div{display:flex;flex-direction:column;min-width:0}.sidebar-logo{color:var(--accent);flex-shrink:0}.sidebar-title{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.sidebar-subtitle{font-size:.72rem;color:var(--navbar-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-header .sidebar-title{font-size:.875rem}.sidebar-toggle{background:transparent;border:none;color:var(--navbar-muted);padding:4px;flex-shrink:0;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.sidebar-toggle:not(:disabled):hover{background:none;color:var(--navbar-text);box-shadow:none}.sidebar-links{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto}.sidebar-utility{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:8px;border-top:1px solid var(--navbar-border)}.sidebar-links a,.sidebar-utility a,.sidebar-cta{display:flex;align-items:center;gap:11px;color:var(--navbar-text);opacity:.72;font-size:.875rem;font-weight:500;padding:9px 11px;border-radius:var(--radius-sm);position:relative;transition:opacity .12s ease,background .12s ease}.sidebar-collapsed .sidebar-links a,.sidebar-collapsed .sidebar-utility a,.sidebar-collapsed .sidebar-cta{justify-content:center;padding:9px}.sidebar-icon{flex-shrink:0;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.sidebar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-links a:hover,.sidebar-utility a:hover{opacity:1;background:var(--navbar-bg-elevated);text-decoration:none}.sidebar-links a.active,.sidebar-utility a.active{opacity:1;background:var(--navbar-active-bg);color:#fff;font-weight:600}.sidebar-nav-badge{display:inline-flex;margin-left:auto;flex-shrink:0;font-size:.625rem;font-weight:800;color:#fff;background:var(--accent);padding:2px 7px;border-radius:999px;letter-spacing:.02em}.sidebar-collapsed .sidebar-nav-badge{display:none}.sidebar-section-label{font-size:.66rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--navbar-section-label);padding:14px 12px 6px}.sidebar-collapsed .sidebar-section-label{display:none}.sidebar-group{display:flex;flex-direction:column;gap:2px}.sidebar-group-toggle{display:flex;align-items:center;gap:11px;width:100%;color:var(--navbar-text);opacity:.72;font-size:.875rem;font-weight:500;padding:9px 11px;border-radius:var(--radius-sm);background:transparent;border:none;box-shadow:none;text-align:left}.sidebar-group-toggle:not(:disabled):hover{opacity:1;background:var(--navbar-bg-elevated);box-shadow:none}.sidebar-group-toggle-active{opacity:1;background:var(--navbar-active-bg);color:#fff;font-weight:600}.sidebar-group-toggle-active:not(:disabled):hover{background:var(--navbar-active-bg)}.sidebar-group-chevron{margin-left:auto;flex-shrink:0;transition:transform .3s ease}.sidebar-group-chevron-open{transform:rotate(180deg)}.sidebar-subgroup-wrap{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s ease,opacity .22s ease}.sidebar-subgroup-wrap.sidebar-subgroup-open{grid-template-rows:1fr;opacity:1}.sidebar-subgroup{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px;margin:4px 8px 2px 14px;padding-left:12px;border-left:1px solid var(--navbar-border)}a.sidebar-sublink{display:flex;align-items:center;gap:11px;color:var(--navbar-text);opacity:.68;font-size:.84375rem;font-weight:500;padding:7px 11px;border-radius:var(--radius-sm)}a.sidebar-sublink:hover{opacity:1;background:var(--navbar-bg-elevated);text-decoration:none}a.sidebar-sublink.active{opacity:1;background:var(--navbar-active-bg);color:#fff;font-weight:600}.sidebar-cta{background:var(--accent);color:var(--accent-text);opacity:1!important;margin-top:10px;border:2px solid #fff;box-shadow:var(--shadow-xs)}.sidebar-cta:hover{background:var(--accent-hover)!important}.sidebar-profile-footer{display:flex;align-items:center;gap:10px;border-top:1px solid var(--navbar-border);margin-top:8px;padding:14px 0 0}.sidebar-collapsed .sidebar-profile-footer{justify-content:center}.sidebar-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0}.sidebar-profile-info{flex:1;min-width:0}.sidebar-profile-name{color:var(--navbar-text);font-size:.8125rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-profile-role{color:var(--navbar-muted);font-size:.6875rem}.sidebar-signout-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:transparent;border:none;box-shadow:none;color:var(--navbar-muted);flex-shrink:0}.sidebar-signout-icon:not(:disabled):hover{background:var(--navbar-bg-elevated);color:var(--navbar-text);box-shadow:none}.sidebar-collapsed .sidebar-avatar{display:none}.page{max-width:1200px;margin:0 auto;padding:28px 24px}.page-loading,.empty-state{padding:28px;color:var(--muted);text-align:center;font-size:.9rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:16px 18px;transition:box-shadow .15s ease,transform .15s ease}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-card-warn{background:var(--warning-soft);border-color:#f0ddb2}.stat-label{font-size:.75rem;font-weight:600;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-family:var(--font-display);font-size:1.7rem;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.stat-sub{font-size:.78rem;color:var(--muted);margin-top:4px}.list-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 18px 36px -22px #14143c38;padding:22px;display:flex;flex-direction:column;gap:18px}.list-card input.filter-search,.list-card select.filter-select,.list-card input.searchable-select-input{background-color:var(--surface-sunken);border-color:transparent}.filter-bar{display:flex;flex-direction:column;gap:10px}.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.filter-date{display:flex;align-items:center;font-size:.78rem;font-weight:600;color:var(--muted);gap:7px;white-space:nowrap}.filter-checkbox{display:flex;align-items:center;font-size:.78rem;font-weight:600;color:var(--muted);gap:6px;white-space:nowrap;cursor:pointer}.filter-clear{margin-left:auto}.filter-select{flex:0 1 200px;min-width:160px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239297ae' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px}.filter-search-wrap{position:relative;flex:1 1 240px;display:flex;align-items:center}.filter-search-icon{position:absolute;left:11px;color:var(--muted-soft);pointer-events:none}.filter-search-wrap input.filter-search{width:100%;padding-left:32px}.searchable-select{position:relative}.searchable-select-control{position:relative;display:flex;align-items:center}.searchable-select-icon{position:absolute;left:11px;color:var(--muted-soft);pointer-events:none}.searchable-select-control input.searchable-select-input{width:100%;padding-left:32px;padding-right:28px}.searchable-select.is-disabled .searchable-select-icon{opacity:.6}.searchable-select-clear{position:absolute;right:6px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;box-shadow:none;background:none;color:var(--muted-soft);border-radius:50%}.searchable-select-clear:hover{background:var(--surface-sunken);color:var(--text)}.searchable-select-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;margin:0;padding:4px;list-style:none;max-height:240px;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.searchable-select-option{padding:7px 9px;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.searchable-select-option.is-highlighted{background:var(--surface-sunken)}.searchable-select-option.is-selected{color:var(--accent);font-weight:600}.searchable-select-empty{padding:8px 9px;font-size:.82rem;color:var(--muted-soft)}.multi-user-select{position:relative}.multi-user-select-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.multi-user-select-chip{display:inline-flex;align-items:center;gap:6px;background:var(--accent-soft);color:var(--accent-active);font-size:.8rem;font-weight:600;padding:4px 6px 4px 10px;border-radius:999px}.multi-user-select-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;box-shadow:none;background:none;color:var(--accent);border-radius:50%}.multi-user-select-chip-remove:not(:disabled):hover{background:var(--accent-soft-strong);box-shadow:none}.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:14px}.assignments-table-scroll{max-height:320px;overflow-y:auto}.assignments-table-scroll thead th{position:sticky;top:0;z-index:1}.page-table-scroll{max-height:65vh;overflow-y:auto}.page-table-scroll thead th{position:sticky;top:0;z-index:1}.data-table{width:100%;min-width:900px;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--border);font-size:.875rem;white-space:nowrap}.data-table th{background:var(--surface-sunken);color:var(--muted);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.data-table tfoot td{background:var(--surface-sunken);border-top:2px solid var(--border-strong);border-bottom:none}.data-table tbody tr:last-child td{border-bottom:none}.cell-clip{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:block}.comment-col,.comment-cell{width:320px;max-width:320px}.data-table td.comment-cell{white-space:normal;overflow-wrap:anywhere}.timesheet-comment{white-space:pre-wrap;overflow-wrap:anywhere}.comment-toggle{display:inline;background:none;border:none;box-shadow:none;padding:0;font-size:.8rem;font-weight:600;color:var(--accent)}.comment-toggle:not(:disabled):hover{background:none;color:var(--accent-hover);text-decoration:underline}.data-table tbody tr:hover{background:var(--surface-sunken)}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{color:var(--text)}.sort-arrow{color:var(--accent)}.cell-tool{font-weight:600;color:var(--accent)}.cell-clickable{cursor:pointer;color:var(--text)}.cell-clickable:hover{color:var(--accent);text-decoration:underline}button.cell-clickable{background:none;border:none;box-shadow:none;padding:0;font:inherit;text-align:left;color:var(--accent);font-weight:600}button.cell-clickable:hover{background:none;box-shadow:none}.cell-num{font-variant-numeric:tabular-nums}.table-add-row{display:inline-flex;align-items:center;gap:6px;color:var(--muted);background:none;border:none;box-shadow:none;padding:0;font-size:.85rem;font-weight:500;white-space:nowrap}.table-add-row:not(:disabled):hover{color:var(--accent);background:none;box-shadow:none}.cell-renewal{display:flex;align-items:center;gap:10px}.cell-renewal-date{font-variant-numeric:tabular-nums;color:var(--text)}.cell-renewal-days{font-size:.75rem;color:var(--muted-soft)}.cell-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;color:var(--muted)}.section-header{display:flex;align-items:baseline;gap:10px;margin-top:28px;margin-bottom:12px}.section-header h2{margin:0}.count-pill{margin-left:auto;font-size:.75rem;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 10px}.count-pill-warn{color:var(--warning);background:var(--warning-soft)}.page-header-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.page-header-row h1{margin-bottom:0}.page-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.email-send-anchor{position:relative}.email-send-popover{position:absolute;top:calc(100% + 12px);right:0;z-index:20;width:min(420px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .18s ease,transform .18s ease;pointer-events:none}.email-send-popover.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.email-send-popover .form{max-width:none}.email-send-popover-caret{position:absolute;top:-7px;right:22px;width:14px;height:14px;background:var(--surface);border-top:1px solid var(--border);border-left:1px solid var(--border);transform:rotate(45deg)}.columns-picker-anchor{position:relative}.columns-picker-popover{position:absolute;top:calc(100% + 12px);left:0;z-index:20;width:max-content;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top left;transition:opacity .18s ease,transform .18s ease;pointer-events:none}.columns-picker-popover.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.columns-picker-popover-caret{position:absolute;top:-7px;left:22px;width:14px;height:14px;background:var(--surface);border-top:1px solid var(--border);border-left:1px solid var(--border);transform:rotate(45deg)}.columns-picker-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}@media (max-width: 640px){.email-send-anchor,.columns-picker-anchor{position:static}.email-send-popover,.columns-picker-popover{left:12px;right:12px;width:auto;transform-origin:top center}.email-send-popover-caret{right:22px}.columns-picker-popover-caret{left:22px}.page-header-actions{width:100%;flex-direction:column;align-items:stretch}.page-header-actions>button,.email-send-anchor,.email-send-anchor>button,.columns-picker-anchor,.columns-picker-anchor>button{width:100%}}@media (prefers-reduced-motion: reduce){.email-send-popover,.columns-picker-popover{transition:none}}.cell-user{display:flex;align-items:center;gap:10px}.cell-user-name{font-weight:600;color:var(--text)}.info-icon{cursor:help;opacity:.6;display:inline-flex;vertical-align:middle}.info-icon:hover{opacity:1}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.01em}.status-badge:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor;flex-shrink:0}.status-badge-active{background:var(--success-soft);color:var(--success)}.status-badge-inactive{background:var(--surface-sunken);color:var(--muted)}.form{display:flex;flex-direction:column;gap:16px;max-width:520px}.form-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px}.form-row>label{flex:1 1 160px;min-width:140px;white-space:nowrap}.form-row>label.checkbox-field{flex:0 0 auto}.form-row>label.field-quarter{flex:0 0 25%;min-width:70px}.form-row>button{flex:0 0 auto;white-space:nowrap}.form label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}.tool-select{display:flex;gap:8px;align-items:center}.tool-select select{flex:1;min-width:0}.tool-select-add-btn{padding:6px 12px;font-weight:700}.tool-select-inline{display:flex;gap:8px;margin-top:8px}.form-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:9px 12px;font-size:.85rem;font-weight:500}.form-section-heading{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;font-weight:600;color:var(--muted)}.btn-text{background:none;border:none;box-shadow:none;padding:0;color:var(--accent);font-size:.8rem;font-weight:600}.btn-text:not(:disabled):hover{background:none;box-shadow:none;text-decoration:underline}.billability-group{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}.billability-controls{display:flex;align-items:center;gap:10px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin:16px 0;box-shadow:var(--shadow-xs);font-size:.9rem}.detail-actions{display:flex;flex-wrap:wrap;gap:10px}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:20px}.lookups-page{max-width:none;width:100%}.lookups-columns{display:grid;grid-template-columns:35fr 35fr 30fr;gap:20px;align-items:stretch;margin-top:16px;width:100%}.lookups-column{display:flex;flex-direction:column;min-width:0;min-height:0}.lookups-column h2{margin-top:0}.lookups-column .table-scroll{flex:1;max-height:65vh;overflow-y:auto;overflow-x:hidden}.lookups-column .data-table{min-width:0;width:100%;table-layout:fixed}.lookups-column .data-table td,.lookups-column .data-table th{white-space:normal;overflow-wrap:break-word}.lookups-column .detail-actions{gap:6px}.lookups-column .detail-actions button{font-size:.78rem;padding:6px 9px;gap:4px}.lookups-column .tool-select-inline{flex-wrap:wrap}.lookups-column .tool-select-inline input,.lookups-column .tool-select-inline select{flex:1 1 100px;min-width:0}.lookups-column .tool-select-inline button{font-size:.78rem;padding:7px 10px;white-space:nowrap}@media (max-width: 900px){.lookups-page{max-width:1200px}.lookups-columns{grid-template-columns:1fr}.lookups-column .table-scroll{max-height:none;overflow-x:auto}.lookups-column .data-table{min-width:480px;table-layout:auto}.lookups-column .data-table td,.lookups-column .data-table th{white-space:nowrap}}.report-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0;overflow-x:auto;box-shadow:var(--shadow-xs)}.breakdown-list{display:flex;flex-direction:column;gap:14px}.breakdown-row-header{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;margin-bottom:6px}.breakdown-row-label{color:var(--text);overflow-wrap:break-word}.breakdown-row-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.breakdown-track{background:var(--border);border-radius:999px;height:5px;overflow:hidden}.breakdown-fill{background:var(--accent);height:5px;border-radius:999px}.period-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:18px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-xs)}.period-actions{display:flex;gap:10px}.period-actions button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:20px;background:radial-gradient(ellipse 900px 600px at 30% 20%,#2b2966 0%,var(--navbar-bg-elevated) 45%,var(--navbar-bg) 100%)}.login-orbit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.12;color:#8b90e8;pointer-events:none}.login-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:36px 32px;width:340px;max-width:100%;display:flex;flex-direction:column;gap:16px;position:relative;animation:card-in .25s ease-out}.login-brand{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:8px;color:var(--text)}.login-logo{color:var(--accent);margin-bottom:10px}.login-brand .sidebar-subtitle{color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}.icon-spin{animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-status-card{text-align:center;align-items:center}.login-status-card h1{font-size:1.2rem;margin-bottom:2px}.login-status-icon{width:52px;height:52px;border-radius:50%;background:var(--success-soft);color:var(--success);display:flex;align-items:center;justify-content:center}.login-status-icon-warning{background:var(--warning-soft);color:var(--warning)}.login-status-message{margin:0;font-size:.85rem;color:var(--muted);line-height:1.5}.login-status-card button{width:100%}.hint{color:var(--muted);font-size:.8rem}@media (max-width: 720px){.sidebar{width:64px;padding:12px 8px}.sidebar-brand,.sidebar-label,.sidebar-section-label,.sidebar-nav-badge,.sidebar-avatar,.sidebar-profile-info{display:none}.sidebar-profile-footer,.sidebar-header{justify-content:center}.page{padding:16px}.filter-row{flex-direction:column;align-items:stretch}.filter-search-wrap,.filter-select{flex-basis:auto}.filter-clear{margin-left:0}.detail-page{padding:16px}.goal-meta-grid{gap:14px}.sidebar-subgroup{margin-left:0;padding-left:0;border-left:none}.comment-composer{margin-bottom:76px}.account-field-row{flex-direction:column;align-items:stretch}.account-readonly-value{overflow:visible;text-overflow:clip;white-space:normal}}.required-mark{color:var(--danger);margin-left:2px}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-size:.85rem;color:var(--muted)}.toast-stack{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column-reverse;gap:10px;z-index:100;width:340px;max-width:calc(100vw - 48px)}.toast-item{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--toast-color, var(--muted-soft));border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:12px 14px;display:flex;gap:10px;align-items:flex-start;position:relative;overflow:hidden;animation:toast-in .2s ease-out}.toast-success{--toast-color: var(--success);--toast-soft: var(--success-soft)}.toast-error{--toast-color: var(--danger);--toast-soft: var(--danger-soft)}.toast-warning{--toast-color: var(--warning);--toast-soft: var(--warning-soft)}.toast-info{--toast-color: var(--info);--toast-soft: var(--info-soft)}.toast-icon{width:26px;height:26px;border-radius:50%;background:var(--toast-soft, var(--surface-sunken));color:var(--toast-color, var(--muted));display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-body{flex:1;min-width:0}.toast-title{margin:0;font-size:.85rem;font-weight:600;color:var(--text)}.toast-description{margin:3px 0 0;font-size:.78rem;color:var(--muted)}.toast-dismiss{background:none;border:none;box-shadow:none;cursor:pointer;color:var(--muted-soft);padding:2px;flex-shrink:0}.toast-dismiss:not(:disabled):hover{background:none;box-shadow:none;color:var(--text)}.toast-timer{position:absolute;left:0;bottom:0;height:2px;background:var(--toast-color, var(--muted-soft));opacity:.4;width:100%;animation-name:toast-shrink;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-shrink{0%{width:100%}to{width:0%}}.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:600;flex-shrink:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#151a3373;display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{background:var(--surface);border-radius:var(--radius-lg);width:380px;max-width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-card-body{padding:24px;overflow-y:auto;min-height:0}.modal-card-wide{width:980px}.modal-card-wide .form{max-width:none}.modal-card-medium{width:620px}.modal-card-medium .form{max-width:none}.form+.table-scroll{margin-top:20px}.modal-card h2{margin-top:0}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-close{background:none;border:none;box-shadow:none;color:var(--muted-soft);padding:4px;display:inline-flex}.modal-close:not(:disabled):hover{background:none;box-shadow:none;color:var(--text)}.modal-actions{display:flex;align-items:center;gap:10px;margin-top:22px}.modal-actions button{flex:1}.confirm-dialog{display:flex;gap:14px;align-items:flex-start}.confirm-icon{flex-shrink:0;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}.confirm-icon-danger{background:var(--danger-soft);color:var(--danger)}.confirm-icon-success{background:var(--success-soft);color:var(--success)}.confirm-icon-neutral{background:var(--accent-soft);color:var(--accent)}.confirm-message{margin:0;font-size:.9rem;color:var(--muted)}.confirm-dialog-center{flex-direction:column;align-items:center;text-align:center}.confirm-dialog-center h2{margin-bottom:6px}.confirm-done-btn{width:100%;margin-top:22px}.segmented-toggle{display:inline-flex;background:var(--surface-sunken);border-radius:var(--radius-sm);padding:3px;gap:2px}.segmented-option{padding:8px 20px;font-size:.85rem;font-weight:600;border-radius:6px;border:none;cursor:pointer;color:var(--muted);background:transparent;box-shadow:none}.segmented-option:not(:disabled):hover{background:var(--border);box-shadow:none}.segmented-option.active{color:#fff;background:var(--accent)}.segmented-option.active:not(:disabled):hover{background:var(--accent-hover)}.field-error{margin:6px 0 0;font-size:.78rem;color:var(--danger)}.password-input-wrap{position:relative;max-width:420px}.password-input-wrap input{width:100%;padding-right:42px}.password-toggle-btn{position:absolute;right:8px;top:8px;background:none;border:none;box-shadow:none;color:var(--muted-soft);padding:4px;display:inline-flex}.password-toggle-btn:not(:disabled):hover{background:none;box-shadow:none;color:var(--text)}.strength-meter{display:flex;gap:4px;margin-bottom:6px}.strength-bar{flex:1;height:4px;border-radius:999px;background:var(--border)}.strength-label{margin:0;font-size:.75rem;font-weight:600}.account-cards{display:flex;flex-direction:column;gap:14px;max-width:560px}.account-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 14px 30px -20px #14143c33;padding:18px 20px}.account-card form{display:flex;flex-direction:column;gap:12px;min-width:0}.account-card-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.account-avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;font-size:.8125rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.account-card-name{font-size:.9375rem;font-weight:700;color:var(--text)}.account-card-kicker{font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted-soft)}.account-card-icon{color:var(--accent-hover)}.account-card-title{font-size:.9375rem;font-weight:700;color:var(--text)}.account-field{display:flex;flex-direction:column;gap:5px;min-width:0}.account-field-label{font-size:.75rem;font-weight:700;color:var(--muted)}.account-field input{width:100%;height:38px;border-radius:9px}.account-field-row{display:flex;align-items:flex-start;gap:12px}.account-field-grow{flex:1;min-width:0}.account-readonly-value{display:flex;align-items:center;width:100%;height:38px;border-radius:9px;padding:0 14px;font-size:.875rem;color:var(--muted-soft);background:var(--surface-sunken);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-field-hint{margin:0;font-size:.75rem;color:var(--muted-soft)}.account-role-badge{display:inline-flex;align-items:center;font-size:.75rem;font-weight:700;color:var(--accent-hover);background:var(--accent-soft);padding:0 14px;height:38px;border-radius:999px}.account-card form button[type=submit]{width:100%;height:40px}.form-section{margin-bottom:28px}.form-section-title{margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--border-strong)}.form-section .form{gap:18px;max-width:none}.page-subtitle{margin:-8px 0 18px;color:var(--muted);font-size:.85rem}.year-tabs{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:18px}.year-tabs-item{display:flex;align-items:center;gap:6px}.year-tab-connector{color:var(--border-strong)}.year-tab{background:none;border:none;box-shadow:none;padding:2px 4px;font-family:var(--font-display);font-size:1rem;color:var(--muted-soft);cursor:pointer;transition:color .12s ease,font-size .12s ease}.year-tab:not(:disabled):hover{background:none;box-shadow:none;color:var(--muted)}.year-tab-active{font-size:1.5rem;font-weight:600;color:var(--accent)}.year-tab-active:not(:disabled):hover{color:var(--accent)}.status-badge-todo{background:var(--surface-sunken);color:var(--muted)}.status-badge-progress{background:var(--info-soft);color:var(--info)}.status-badge-done{background:var(--success-soft);color:var(--success)}.status-select{border:1px solid transparent;border-radius:999px;padding:5px 26px 5px 10px;font-size:.78rem;font-weight:600;cursor:pointer}.status-select:hover{border-color:var(--border-strong)}.cell-progress{display:flex;align-items:center;gap:8px;min-width:130px}.cell-progress .breakdown-track{flex:1}.cell-progress-count{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.cell-comments{display:flex;align-items:center;gap:6px;color:var(--muted);font-variant-numeric:tabular-nums}.detail-page{max-width:880px;margin:0 auto;padding:28px 24px 60px}.goal-back-link{display:inline-flex;align-items:center;gap:4px;background:none;border:none;box-shadow:none;padding:0;color:var(--muted);font-size:.82rem;font-weight:600;margin-bottom:16px;cursor:pointer}.goal-back-link:hover{color:var(--accent)}button.goal-back-link:hover{background:none;box-shadow:none}.goal-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.goal-detail-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.detail-title{margin:0;font-weight:600;letter-spacing:-.015em;color:var(--text);font-family:var(--font-display);font-size:1.45rem;min-width:0;overflow-wrap:break-word}.goal-meta-grid{display:flex;flex-wrap:wrap;gap:28px;margin:18px 0 26px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.goal-meta-item{display:flex;align-items:center;gap:10px;color:var(--muted-soft)}.goal-meta-text{display:flex;flex-direction:column;gap:2px}.goal-meta-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-soft)}.goal-meta-value{font-size:.85rem;color:var(--text);font-weight:600}.description-text{margin:0;color:var(--text);font-size:.9rem;line-height:1.6;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-xs);white-space:pre-wrap}.action-items-progress{margin:10px 0 16px}.action-items-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.action-item-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem}.action-item-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.action-item-row.is-done .action-item-text{color:var(--muted-soft);text-decoration:line-through}.checklist-empty{color:var(--muted-soft);font-size:.85rem;padding:4px 2px}.dynamic-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.dynamic-list-row{display:flex;align-items:center;gap:8px}.dynamic-list-row input[type=text]{flex:1}.action-item-remove{flex-shrink:0;width:32px;height:32px;padding:0;background:none;border:1px solid var(--border-strong);box-shadow:none;color:var(--muted-soft);border-radius:var(--radius-sm)}.action-item-remove:not(:disabled):hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-soft)}.comment-timeline{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:16px}.comment-item{display:flex;gap:12px;align-items:flex-start}.comment-item-body{flex:1;min-width:0}.comment-item-header{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px}.comment-author-name{font-weight:700;color:var(--text);font-size:.85rem}.comment-role-tag{font-size:.68rem;font-weight:600;color:var(--muted-soft);background:var(--surface-sunken);border-radius:999px;padding:1px 8px}.comment-header-trailing{display:flex;align-items:center;gap:8px;margin-left:auto}.comment-timestamp{font-size:.75rem;color:var(--muted-soft);white-space:nowrap}.comment-edited-tag{font-style:italic;opacity:.75}.comment-item-actions{display:flex;align-items:center;gap:2px}.comment-item-actions .btn-icon{width:24px;height:24px}.comment-edit-row{display:flex;flex-direction:column;gap:8px}.comment-edit-actions{display:flex;justify-content:flex-end;gap:8px}.comment-body-text{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;font-size:.87rem;color:var(--text)}.comment-empty{color:var(--muted-soft);font-size:.85rem;margin-bottom:16px}.comment-composer{display:flex;flex-direction:column;gap:10px}.comment-composer textarea{width:100%}.comment-composer-actions{display:flex;justify-content:flex-end}.row-actions{display:flex;gap:6px}.timesheet-toolbar{display:flex;align-items:center;gap:12px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--border)}.view-tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px}.view-tab{padding:8px 16px;font-size:.875rem;font-weight:600;border:none;background:transparent;color:var(--muted);box-shadow:none;border-radius:8px}.view-tab:not(:disabled):hover{background:var(--surface-sunken);box-shadow:none}.view-tab-active{background:var(--accent-soft);color:var(--accent-hover);font-weight:700}.view-tab-active:not(:disabled):hover{background:var(--accent-soft)}.day-nav{display:flex;align-items:center;gap:2px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:4px;background:var(--surface);box-shadow:var(--shadow-xs)}.btn-icon-primary{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-text);border:1px solid transparent;box-shadow:var(--shadow-xs)}.btn-icon-primary:not(:disabled):hover{background:var(--accent-hover);box-shadow:var(--shadow-sm)}.btn-icon-primary:not(:disabled):active{background:var(--accent-active);box-shadow:none}.day-nav-label{display:flex;align-items:center;gap:6px;padding:0 8px;font-size:.85rem;color:var(--text)}.day-card-grid{display:grid;grid-template-columns:repeat(7,1fr) 1fr;gap:4px;margin-bottom:20px}.day-card{display:block;text-align:left;border-radius:var(--radius-sm);padding:8px 10px;border:1px solid transparent;background:none;box-shadow:none;font:inherit}.day-card:not(:disabled):hover{background:var(--surface-sunken);box-shadow:none}.day-card-active{background:var(--accent-soft);border-color:var(--accent-soft-strong)}.day-card-active:not(:disabled):hover{background:var(--accent-soft-strong)}.day-card-label{font-size:.72rem;font-weight:600;color:var(--muted)}.day-card-active .day-card-label{color:var(--accent)}.day-card-hours{font-size:.85rem;margin-top:2px;color:var(--text)}.day-card-active .day-card-hours{color:var(--accent);font-weight:700}.day-card-bar-track{height:4px;border-radius:999px;background:var(--border);margin-top:6px;overflow:hidden}.day-card-bar-fill{height:100%;border-radius:999px;background:var(--muted-soft)}.day-card-active .day-card-bar-fill{background:var(--accent)}.day-card-total{text-align:right;padding:8px 10px}.day-card-total-label{font-size:.72rem;font-weight:600;color:var(--muted-soft)}.day-card-total-value{font-size:.85rem;margin-top:2px;font-weight:700;color:var(--text)}.project-dot{display:inline-block;width:8px;height:8px;border-radius:999px;flex-shrink:0}.project-dot-0{background:#7f81d5}.project-dot-1{background:#35978c}.project-dot-2{background:#c96a7a}.project-dot-3{background:#c9932e}.project-dot-4{background:#977bd7}.project-dot-5{background:#2f99ab}.project-pill{font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:var(--radius-sm)}.project-pill-0{background:#7f81d524;color:#262873}.project-pill-1{background:#35978c24;color:#205b54}.project-pill-2{background:#c96a7a24;color:#9c4657}.project-pill-3{background:#c9932e24;color:#8a5f1d}.project-pill-4{background:#977bd724;color:#3c2375}.project-pill-5{background:#2f99ab24;color:#1b5660}.entry-list{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:0 14px 30px -20px #14143c33}.entry-row{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-size:.875rem;gap:12px}.entry-row:last-child{border-bottom:none}.entry-row-main{display:flex;align-items:center;gap:10px;min-width:0}.entry-row-name{font-weight:500;color:var(--text)}.entry-row-meta{color:var(--muted);font-size:.8rem}.entry-row-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.entry-row-icons{display:flex;align-items:center;gap:6px;opacity:0;transition:opacity .12s ease}.entry-row:hover .entry-row-icons,.entry-row:focus-within .entry-row-icons{opacity:1}.entry-row-hours{font-weight:600}.btn-icon-danger:not(:disabled):hover{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-soft)}.backdated-pill{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--warning);background:var(--warning-soft);border:1px solid #f0ddb2;border-radius:999px;padding:2px 8px;margin-left:8px}.backdated-dot{display:inline-block;width:6px;height:6px;border-radius:999px;background:var(--warning);margin-left:6px;vertical-align:middle}.calendar-grid{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}.calendar-grid-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface-sunken);border-bottom:1px solid var(--border)}.calendar-grid-header span{text-align:center;font-size:.72rem;color:var(--muted);padding:8px 0}.calendar-grid-header-weekend{background:#9496be14;color:var(--muted-soft)}.calendar-grid-body{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-cell{min-height:64px;padding:8px;border-bottom:1px solid #eef0f8;border-right:1px solid #eef0f8;cursor:pointer;font-size:.75rem;color:#c3c5dc}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell:nth-last-child(-n+7){border-bottom:none}.calendar-cell:hover{background:var(--surface-sunken)}.calendar-cell-in-month{color:#2b2c47}.calendar-cell:not(.calendar-cell-in-month){background:#fbfbfd}.calendar-cell:not(.calendar-cell-in-month) .calendar-cell-hours{color:#c9cbe2}.calendar-cell-weekend.calendar-cell-in-month{background:#fafbfe}.calendar-cell.calendar-cell-today{background:#4338ca14;outline:1.5px solid rgba(67,56,202,.5);outline-offset:-1.5px}.calendar-cell-today .calendar-cell-date{color:#4035c0;font-weight:700}.calendar-cell-hours{margin-top:6px;color:#4b4d70}.calendar-cell-today .calendar-cell-hours{color:#4035c0;font-weight:600}.calendar-cell-bar{width:18px;height:3px;border-radius:999px;background:#4338ca66;margin-top:5px}.calendar-cell-today .calendar-cell-bar{background:var(--accent)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;color:var(--muted)}.btn-icon:not(:disabled):hover{background:var(--surface-sunken);border-color:var(--border);color:var(--text);box-shadow:none}.btn-icon-static{cursor:default;opacity:.6}.btn-icon-state-on{color:var(--success);border-color:var(--success-soft)}.btn-icon-state-on:not(:disabled):hover{background:var(--success-soft)}.btn-icon-state-off{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-soft)}.btn-icon-state-off:not(:disabled):hover{background:var(--danger-soft);border-color:var(--danger)}.microsoft-signin-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.login-divider{display:flex;align-items:center;gap:10px;margin:4px 0;color:var(--muted-soft);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.ai-assistant-title-icon{color:var(--accent);vertical-align:-3px;margin-right:6px}.ai-assistant-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;height:min(640px,calc(100vh - 220px));min-height:360px;overflow:hidden}.ai-assistant-guest-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;background:var(--surface-sunken);border-bottom:1px solid var(--border);font-size:.78rem;color:var(--muted)}.ai-assistant-guest-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-assistant-guest-bar button{display:flex;align-items:center;gap:4px;flex-shrink:0;background:none;border:none;box-shadow:none;padding:0;color:var(--accent);font-size:.78rem;font-weight:600}.ai-assistant-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.ai-assistant-empty{margin:auto;color:var(--muted);font-size:.9rem;text-align:center;max-width:320px}.ai-assistant-msg{max-width:78%;padding:10px 14px;border-radius:var(--radius);font-size:.88rem;line-height:1.5;white-space:pre-wrap}.ai-assistant-msg-user{align-self:flex-end;background:var(--accent);color:var(--accent-text);border-bottom-right-radius:4px}.ai-assistant-msg-assistant{align-self:flex-start;background:var(--surface-sunken);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.ai-assistant-msg-pending{color:var(--muted);font-style:italic}.ai-assistant-msg-streaming:after{content:"▍";display:inline-block;margin-left:2px;color:var(--muted);animation:ai-assistant-cursor-blink .9s steps(1) infinite}@keyframes ai-assistant-cursor-blink{50%{opacity:0}}.ai-assistant-error{margin:0 20px 12px}.ai-assistant-input-row{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--border)}.ai-assistant-input-row input{flex:1}.ai-assistant-input-row button{display:flex;align-items:center;justify-content:center;width:40px;padding:0;flex-shrink:0}.ai-assistant-mic-active{background:var(--danger);border-color:var(--danger);color:#fff;animation:ai-assistant-mic-pulse 1.4s ease-in-out infinite}@keyframes ai-assistant-mic-pulse{0%,to{box-shadow:0 0 #d32f2f66}50%{box-shadow:0 0 0 6px #d32f2f00}}.ai-assistant-gate{display:flex;justify-content:center;padding:48px 24px}.ai-assistant-gate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px 28px;width:380px;max-width:100%;text-align:center}.ai-assistant-gate-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}.ai-assistant-gate-card h1{font-size:1.15rem;margin-bottom:14px}.ai-assistant-gate-card form{display:flex;flex-direction:column;gap:14px}.ai-assistant-gate-card label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted);text-align:left}.ai-assistant-gate-copy{margin:0;color:var(--muted);font-size:.85rem;line-height:1.5;text-align:left}.ai-assistant-gate-link{background:none;border:none;box-shadow:none;padding:0;color:var(--accent);font-size:.8rem;font-weight:600}@media (max-width: 640px){.ai-assistant-panel{height:calc(100vh - 190px);border-radius:var(--radius)}.ai-assistant-msg{max-width:92%}.ai-assistant-gate{padding:28px 16px}.ai-assistant-gate-card{padding:24px 20px}}.ai-assistant-widget{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.ai-assistant-widget-btn{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:flex;align-items:center;justify-content:center;border:none;padding:0;box-shadow:var(--shadow-sm)}.ai-assistant-widget-btn:hover{background:var(--accent-hover)}.ai-assistant-widget-panel{width:360px;max-width:calc(100vw - 40px);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column;animation:card-in .2s ease-out}.ai-assistant-widget-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:.9rem}.ai-assistant-widget-close{background:none;border:none;box-shadow:none;padding:4px;color:var(--muted)}.ai-assistant-widget-panel .ai-assistant-panel{height:420px;min-height:0;border:none;border-radius:0;box-shadow:none}.ai-assistant-widget-panel .ai-assistant-gate{padding:20px 16px}.ai-assistant-widget-panel .ai-assistant-gate-card{width:100%;padding:4px 4px 8px;border:none;box-shadow:none}@media (max-width: 640px){.ai-assistant-widget{right:14px;bottom:14px}.ai-assistant-widget-panel{width:calc(100vw - 28px)}.ai-assistant-widget-panel .ai-assistant-panel{height:min(420px,calc(100vh - 160px))}}
