.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-color:var(--btn-primary-border);box-shadow:var(--btn-primary-shadow)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover);color:var(--btn-primary-fg-hover);border-color:var(--btn-primary-bg-hover);box-shadow:var(--btn-primary-shadow-hover)}.btn-primary:active:not(:disabled){background:var(--btn-primary-bg-active);border-color:var(--btn-primary-bg-active);box-shadow:none}.btn-secondary:hover:not(:disabled){border-color:var(--sig-green-line);color:var(--sig-green-ink)}.header-new-btn{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);color:var(--btn-primary-fg)}.header-new-btn .material-icons-round{color:inherit}.header-new-btn:hover{background:var(--btn-primary-bg-hover);border-color:var(--btn-primary-bg-hover);color:var(--btn-primary-fg-hover);box-shadow:var(--btn-primary-shadow-hover)}.btn{height:var(--h-base);padding:0 1.125rem;font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1;letter-spacing:.005em;gap:.4375rem}.btn-sm,.btn-xs{height:var(--h-sm);padding:0 .75rem;font-size:var(--text-xs);letter-spacing:.01em;gap:.3125rem}.btn-lg{height:46px;padding:var(--space-3) var(--space-8);font-size:var(--text-md)}.btn-icon{width:var(--h-base);height:var(--h-base);padding:10px}.btn-icon.btn-sm,.btn-icon.btn-xs{width:var(--h-sm);height:var(--h-sm)}.btn:focus-visible,.filter-chip:focus-visible,.header-new-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px;box-shadow:none}.btn,.btn-icon,.form-input,.form-select,.form-textarea,.settings-input,.filter-chip{border-radius:var(--radius-control)}.card,.ds-card,.dash-widget-card,.kanban-card,.contact-card{border-radius:var(--radius-card);box-shadow:var(--elev-1)}.card:hover,.ds-card:hover,.dash-widget-card:hover,.kanban-card:hover,.contact-card:hover{box-shadow:var(--elev-2)}@media (hover: none),(max-width: 640px){.card:hover,.ds-card:hover,.dash-widget-card:hover,.kanban-card:hover,.contact-card:hover{box-shadow:var(--elev-1)}}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid transparent;border-radius:var(--radius-pill);font-size:.6875rem;font-weight:600;line-height:1.4;letter-spacing:.01em;white-space:nowrap}.badge-draft{--badge-dot: var(--ql-status-draft-dot);background:var(--ql-status-draft-bg);color:var(--ql-status-draft-text);border-color:color-mix(in srgb,var(--ql-status-draft-dot) 22%,transparent)}.badge-active{--badge-dot: var(--ql-sage-500);background:color-mix(in srgb,var(--ql-sage-500) 11%,transparent);color:var(--ql-sage-600-text);border-color:color-mix(in srgb,var(--ql-sage-500) 26%,transparent)}.badge-pending,.badge-warning{--badge-dot: var(--ql-status-warning-dot);background:var(--ql-status-warning-bg);color:var(--ql-status-warning-text);border-color:color-mix(in srgb,var(--ql-status-warning-dot) 22%,transparent)}.badge-signed,.badge-info{--badge-dot: var(--ql-status-signed-dot);background:var(--ql-status-signed-bg);color:var(--ql-status-signed-text);border-color:color-mix(in srgb,var(--ql-status-signed-dot) 22%,transparent)}.badge-completed{--badge-dot: var(--ql-status-completed-dot);background:var(--ql-status-completed-bg);color:var(--ql-status-completed-text);border-color:color-mix(in srgb,var(--ql-status-completed-dot) 22%,transparent)}.badge-success{--badge-dot: var(--ql-status-success-dot);background:var(--ql-status-success-bg);color:var(--ql-status-success-text);border-color:color-mix(in srgb,var(--ql-status-success-dot) 22%,transparent)}.badge-cancelled{--badge-dot: var(--ql-status-cancelled-dot);background:var(--ql-status-cancelled-bg);color:var(--ql-status-cancelled-text);border-color:color-mix(in srgb,var(--ql-status-cancelled-dot) 22%,transparent)}.badge-danger,.badge-overdue,.badge-urgent{--badge-dot: var(--ql-status-danger-dot);background:var(--ql-status-danger-bg);color:var(--ql-status-danger-text);border-color:color-mix(in srgb,var(--ql-status-danger-dot) 22%,transparent)}.badge-draft:before,.badge-active:before,.badge-pending:before,.badge-warning:before,.badge-signed:before,.badge-info:before,.badge-completed:before,.badge-success:before,.badge-cancelled:before,.badge-danger:before,.badge-overdue:before,.badge-urgent:before{content:"";width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--badge-dot)}.badge-active:before{box-shadow:0 0 0 2px color-mix(in srgb,var(--ql-sage-500) 18%,transparent)}.form-input,.form-select,.settings-input{height:var(--h-lg);padding:0 var(--space-4);font-family:var(--font-primary);font-size:var(--text-sm);line-height:1}input[type=date].form-input{min-height:var(--h-lg)}.form-select,select.form-input{padding-left:var(--space-10)}.form-input-sm,input[type=date].form-input-sm{height:var(--h-sm);min-height:var(--h-sm);padding:0 var(--space-3)}@media (pointer: coarse){input[type=date].form-input-sm{min-height:44px}}.form-textarea,textarea.form-input{min-height:88px;padding:var(--space-3) var(--space-4);line-height:var(--leading-normal);resize:vertical}.form-input,.form-select,.form-textarea,.settings-input{background-color:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);box-shadow:var(--shadow-inner)}.form-input:hover,.form-select:hover,.settings-input:hover{background-color:var(--ql-input-bg-hover);border-color:var(--gray-300)}.form-input::placeholder,.form-textarea::placeholder,.settings-input::placeholder{color:var(--text-muted);font-weight:var(--weight-regular);opacity:.7}.form-input:disabled,.form-input[disabled],.form-input[readonly],.form-select:disabled,.form-textarea:disabled,.settings-input:disabled{background-color:var(--gray-50);border-color:var(--border-subtle);color:var(--text-tertiary);box-shadow:none;opacity:.7;cursor:not-allowed}.form-input:focus,.form-select:focus,.form-textarea:focus,.settings-input:focus{outline:none;background-color:var(--bg-surface);border-color:var(--focus-ring-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-ring-color) 18%,transparent)}[data-mode=dark] .form-input,[data-mode=dark] .form-select,[data-mode=dark] .form-textarea,[data-mode=dark] .settings-input{background-color:var(--fill-3);border-color:var(--border-strong);box-shadow:none}[data-mode=dark] .form-input::placeholder,[data-mode=dark] .form-textarea::placeholder,[data-mode=dark] .settings-input::placeholder{opacity:1}[data-mode=dark] .form-input:disabled,[data-mode=dark] .form-select:disabled,[data-mode=dark] .form-textarea:disabled,[data-mode=dark] .settings-input:disabled{opacity:.5}[data-mode=dark] .form-input:focus,[data-mode=dark] .form-select:focus,[data-mode=dark] .form-textarea:focus,[data-mode=dark] .settings-input:focus{background-color:var(--fill-3);border-color:var(--focus-ring-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus-ring-color) 22%,transparent)}input.field-error,select.field-error,textarea.field-error,.form-input.error,.form-input[aria-invalid=true],.cal-field-error,[data-mode] .form-input.field-error,[data-mode] .form-select.field-error,[data-mode] .form-textarea.field-error,[data-mode] .form-input.error,[data-mode] .form-input[aria-invalid=true],[data-mode] .cal-field-error{border-color:var(--ql-status-danger-dot);box-shadow:0 0 0 3px color-mix(in srgb,var(--ql-status-danger-dot) 16%,transparent)}.field-error-msg,span.field-error,.form-error,.settings-field-error,p.field-error-msg,p.form-error,p.settings-field-error{display:block;margin-top:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1.4;color:var(--text-danger);animation:var(--motion-base) var(--motion-ease) both field-error-in}.data-table{width:100%;border-collapse:separate;border-spacing:0;text-align:start;font-variant-numeric:tabular-nums lining-nums}.data-table th{position:relative;z-index:2;height:var(--ql-tbl-th-height);padding:0 var(--ql-tbl-th-px);background:var(--ql-tbl-th-bg);border-bottom:1px solid var(--ql-tbl-head-sep);color:var(--text-tertiary);font-size:var(--ql-tbl-th-size);font-weight:var(--ql-tbl-th-weight);letter-spacing:var(--ql-tbl-th-tracking);line-height:1;text-align:start;text-transform:uppercase;white-space:nowrap;vertical-align:middle}.data-table td{height:var(--ql-tbl-td-height);padding:0 var(--ql-tbl-td-px);border-bottom:1px solid var(--ql-tbl-sep);color:var(--text-primary);font-size:var(--ql-tbl-td-size);line-height:var(--ty-lh-caption);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:nth-child(2n){background:var(--fill-1)}.data-table tbody tr:hover{background:var(--ql-tbl-hover-bg)}.data-table tbody tr.selected,.data-table tbody tr[aria-selected=true]{background:color-mix(in srgb,var(--sig-green-ink) 6%,transparent);box-shadow:inset 3px 0 0 var(--sig-green-ink)}.data-table td.cell-primary{font-weight:var(--weight-semibold)}.data-table td .material-icons-round{position:relative;top:-1px;font-size:var(--icon-md);line-height:1;vertical-align:middle}.data-table th.cell-number,.data-table td.cell-number{text-align:end;white-space:nowrap}.data-table td.cell-number{font-weight:var(--weight-semibold)}.data-table th.th-sort{cursor:pointer;user-select:none}.data-table th.th-sort:hover,.data-table th.th-sort.active{color:var(--text-primary)}.data-table th.col-select,.data-table td.col-select,.data-table td.bulk-checkbox-cell{width:36px;padding:0 var(--space-2)}@media (hover: hover) and (pointer: fine){.data-table td:last-child>.btn{opacity:0;transition:opacity var(--duration-fast) var(--motion-ease)}.data-table tbody tr:hover td:last-child>.btn,.data-table tbody tr:focus-within td:last-child>.btn{opacity:1}}.data-table-sm th{height:var(--h-sm)}.data-table-sm td{height:var(--h-md);font-size:var(--text-xs)}.card:has(.data-table){overflow:hidden}.card:has(.data-table):hover{transform:none;box-shadow:var(--elev-1)}.table-scroll{overflow-x:auto}.modal-overlay,.import-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;height:100vh;height:100dvh;height:var(--modal-vvh, 100dvh);padding:var(--space-6);overflow-y:auto;background:var(--ql-modal-overlay-bg);backdrop-filter:blur(var(--ql-modal-overlay-blur)) saturate(1.1);-webkit-backdrop-filter:blur(var(--ql-modal-overlay-blur)) saturate(1.1)}.import-overlay{z-index:9999}:where(.modal-content){max-width:var(--ql-modal-max-width)}.modal-content{display:flex;flex-direction:column;width:100%;max-height:90vh;max-height:90dvh;max-height:calc(var(--modal-vvh, 100dvh) * .9);margin:auto;overflow:hidden;background:var(--ql-modal-bg);border:1px solid var(--border-default);border-radius:var(--ql-modal-radius);box-shadow:var(--ql-modal-shadow)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:60px;padding:var(--ql-modal-py-header) var(--ql-modal-px);background:linear-gradient(180deg,var(--fill-1),transparent);border-bottom:1px solid var(--border-subtle)}.modal-title{margin:0;color:var(--text-primary);font-family:var(--font-primary);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.018em;line-height:1.25}.modal-header .btn-icon{flex-shrink:0;width:var(--h-sm);height:var(--h-sm);padding:0;border-radius:var(--radius-control);color:var(--text-tertiary)}.modal-header .btn-icon:hover{background:var(--bg-sunken);color:var(--text-primary)}.modal-header .btn-icon .material-icons-round{font-size:18px}.modal-body{flex:1;min-height:0;padding:var(--ql-modal-py-body) var(--ql-modal-px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2-5);min-height:60px;padding:var(--ql-modal-py-footer) var(--ql-modal-px);padding-bottom:calc(var(--ql-modal-py-footer) + env(safe-area-inset-bottom,0px));background:var(--fill-1);border-top:1px solid var(--border-subtle)}.modal-footer .modal-footer-aside{margin-inline-end:auto}.confirm-dialog-modal{max-width:420px}.confirm-dialog-body{padding:var(--space-1) 0}p.confirm-dialog-message{margin:0 0 var(--space-2);color:var(--text-primary);font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-snug)}p.confirm-dialog-sub,p.modal-text{margin:0;color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}p.modal-text{margin-bottom:var(--space-4)}.confirm-dialog-body .form-input{margin-top:var(--space-2-5)}@media (max-width: 640px){.modal-overlay,.import-overlay{align-items:flex-end;padding:env(safe-area-inset-top,0px) 0 0}.modal-content{max-width:100%;margin:0;border-bottom:none;border-radius:var(--ql-modal-radius) var(--ql-modal-radius) 0 0}.modal-header{padding:var(--space-4) var(--space-5)}.modal-body{padding:var(--space-5)}.modal-footer{padding-inline:var(--space-5)}.modal-footer .btn{flex:1 1 auto;justify-content:center;min-width:0}}.toast-container{position:fixed;top:var(--space-5);top:max(var(--space-5),env(safe-area-inset-top,0px));left:50%;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);width:min(420px,calc(100vw - var(--space-6)));transform:translate(-50%);pointer-events:none}.toast{--toast-accent: var(--ql-status-info-dot);--toast-color: var(--toast-accent);position:relative;display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-3) var(--space-4);padding-inline-start:calc(var(--space-4) + 3px);overflow:hidden;color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1.45;background:var(--ql-modal-bg);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--elev-3);pointer-events:auto;animation:toast-enter var(--duration-slow) var(--ease-spring)}.toast.removing{animation:toast-exit var(--duration-normal) var(--ease-in) forwards}.toast-success{--toast-accent: var(--ql-status-success-dot)}.toast-error{--toast-accent: var(--ql-status-danger-dot)}.toast-warning{--toast-accent: var(--ql-status-warning-dot)}.toast-info{--toast-accent: var(--ql-status-info-dot)}.toast-undo{--toast-accent: var(--accent-500)}.toast-undo.is-undone{--toast-accent: var(--ql-status-success-dot)}[data-mode=dark] .toast{--toast-color: color-mix(in srgb, var(--toast-accent) 60%, var(--text-primary))}.toast:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;background:var(--toast-color)}.toast-icon{display:flex;flex-shrink:0;color:var(--toast-color)}.toast-icon .material-icons-round{font-size:20px;line-height:1}.toast-message{flex:1;min-width:0;overflow-wrap:anywhere}.toast-close{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:28px;height:28px;padding:0;color:var(--text-tertiary);background:transparent;border:none;border-radius:var(--radius-control);cursor:pointer;transition:background var(--duration-fast) var(--motion-ease),color var(--duration-fast) var(--motion-ease)}.toast-close:hover{background:var(--fill-2);color:var(--text-primary)}.toast-close .material-icons-round{font-size:18px;line-height:1}.toast .toast-action{flex-shrink:0}.toast-progress{position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--fill-2)}.toast-progress-fill{height:100%;background:var(--toast-color);animation:linear forwards toast-timer-shrink}.toast-undo .toast-progress-fill{width:100%;animation:none;transition:width .1s linear}.tab-row{display:flex;align-items:center;gap:var(--space-1);margin:0 0 var(--space-4);padding:0 0 var(--space-2);overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;-webkit-overflow-scrolling:touch;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);border-radius:0}.tab{display:inline-flex;flex-shrink:0;align-items:center;gap:var(--space-1-5);height:var(--h-md);margin:0;padding:0 var(--space-3);color:var(--text-secondary);font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1.2;white-space:nowrap;background:transparent;border:1px solid transparent;border-radius:var(--radius-control);box-shadow:none;cursor:pointer;transition:background var(--duration-fast) var(--motion-ease),color var(--duration-fast) var(--motion-ease)}.tab .material-icons-round{flex-shrink:0;font-size:18px;line-height:1;color:inherit}.tab:hover{background:var(--bg-sunken);color:var(--text-primary)}.tab.active{background:var(--active-bg);color:var(--active-fg);font-weight:var(--weight-semibold)}.tab.active:hover{background:var(--active-bg-hover)}.tab:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:-2px;box-shadow:none}.tab .tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;color:var(--ql-warm-0);font-size:10px;font-weight:var(--weight-bold);line-height:1;background:var(--ql-status-danger-dot);border-radius:var(--radius-full)}.tab .tab-badge .material-icons-round{font-size:12px}.tab-row.tab-row-side{position:sticky;top:80px;flex-direction:column;align-items:stretch;gap:var(--space-1);margin:0;padding:var(--space-2);overflow:visible;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.tab-row-side .tab{justify-content:flex-start}@media (max-width: 768px){.tab-row.tab-row-side{position:static;flex-direction:row;align-items:center;padding:var(--space-1-5);overflow-x:auto;overflow-y:hidden}.tab-row{scrollbar-width:none}.tab-row::-webkit-scrollbar{display:none}}@media (max-width: 375px){.tab-row-side .tab>span:last-child{display:none}.tab-row-side .tab{justify-content:center}}@media (pointer: coarse){.tab{height:auto;min-height:44px}}.tab-row.tab-row-groups{display:none}@media (max-width: 768px){.tab-row.tab-row-groups{display:flex;gap:var(--space-1);margin:0 0 var(--space-2);padding:var(--space-1);overflow:visible;background:var(--bg-sunken);border:none;border-radius:var(--radius-control)}.tab-row-groups .tab{flex:1 1 0;min-width:0;justify-content:center;padding:0 var(--space-1)}.tab-row-groups .tab.active{background:var(--bg-surface);color:var(--active-fg);box-shadow:var(--shadow-xs)}.tab.tab-other-group{display:none}.tab-row-groups+.tab-row>.tab{flex:1 0 auto;justify-content:center}}@media (max-width: 480px){.tab-row-groups+.tab-row>.tab{padding:0 var(--space-2)}.tab-row-groups+.tab-row>.tab>.material-icons-round{display:none}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);min-height:240px;padding:var(--space-10) var(--space-6);text-align:center;background:transparent;animation:var(--motion-base) var(--motion-ease) both empty-fade-in}.empty-state-icon{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:56px;height:56px;margin-bottom:var(--space-2);color:var(--text-tertiary);background:var(--fill-2);border:1px solid var(--border-subtle);border-radius:var(--radius-card)}.empty-state-icon .material-icons-round{font-size:26px;line-height:1}.empty-state-illus{--illus-line: var(--text-tertiary);--illus-faint: color-mix(in srgb, var(--text-tertiary) 42%, transparent);--illus-paper: var(--bg-surface);--illus-soft: var(--active-bg);--illus-ground: var(--fill-2);--illus-accent: var(--sig-green-ink);display:block;flex-shrink:0;width:136px;margin-bottom:var(--space-2)}.empty-state-illus svg{display:block;width:100%;height:auto;overflow:visible}.empty-state-illus .il-soft{fill:var(--illus-soft)}.empty-state-illus .il-ground{fill:var(--illus-ground)}.empty-state-illus .il-paper{fill:var(--illus-paper);stroke:var(--illus-line);stroke-width:2;stroke-linejoin:round}.empty-state-illus .il-line{fill:none;stroke:var(--illus-line);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.empty-state-illus .il-faint{fill:none;stroke:var(--illus-faint);stroke-width:2;stroke-linecap:round}.empty-state-illus .il-accent{fill:none;stroke:var(--illus-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.empty-state-illus .il-handle{fill:none;stroke:var(--illus-accent);stroke-width:4.5;stroke-linecap:round}.empty-state-illus .il-pen{fill:var(--illus-paper);stroke:var(--illus-accent);stroke-width:2;stroke-linejoin:round}.empty-state-illus .il-dot{fill:var(--illus-accent)}.empty-state-illus .il-grid circle{fill:var(--illus-faint)}.empty-state-illus .il-windows rect{fill:none;stroke:var(--illus-line);stroke-width:2}.empty-state-title{margin:0;color:var(--text-primary);font-family:var(--font-primary);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:1.3;letter-spacing:-.012em}.empty-state-text{max-width:38ch;margin:0;color:var(--text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.empty-state-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-3)}.empty-state.empty-state-sm{gap:var(--space-1-5);min-height:0;padding:var(--space-6) var(--space-4)}.empty-state-sm .empty-state-icon{width:40px;height:40px;margin-bottom:var(--space-1);border-radius:var(--radius-control)}.empty-state-sm .empty-state-icon .material-icons-round{font-size:20px}.empty-state-sm .empty-state-title{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:0}.empty-state-sm .empty-state-text{font-size:var(--text-xs)}.empty-state-sm .empty-state-actions{margin-top:var(--space-2)}.empty-line{margin:0;padding:var(--space-3) var(--space-2);color:var(--text-tertiary);font-size:var(--text-xs);font-style:normal;text-align:center}@media (max-width: 640px){.empty-state{min-height:180px;padding:var(--space-6) var(--space-4)}.empty-state-illus{width:112px}}.skeleton{position:relative;display:block;overflow:hidden;background:var(--ql-skel-bg);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,var(--ql-skel-shine) 50%,transparent 70%);transform:translate(-160%);animation:1.8s ease-in-out infinite ql-skeleton-sweep}@media (prefers-reduced-motion: reduce){.skeleton:after{display:none;animation:none}}.skeleton-text{height:12px;margin-bottom:9px}.skeleton-text:last-child{margin-bottom:0}.skeleton-title{width:52%;height:16px;margin-bottom:var(--space-3)}.skeleton-avatar{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-control)}.skeleton-circle{border-radius:50%}.skeleton-badge{width:64px;height:22px;border-radius:var(--radius-full)}.skeleton-table-cell{height:13px}.skeleton-stat-icon{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-control)}.skeleton-stat-value{width:56px;height:22px}.skeleton-stat-label{width:88px;height:10px}.skeleton-card-media{height:72px;border-radius:0}.skeleton-table-row{display:flex;align-items:center;gap:var(--space-4);height:var(--ql-tbl-td-height);padding:0 var(--ql-tbl-td-px);border-bottom:1px solid var(--border-subtle)}.skeleton-table-row:last-child{border-bottom:none}.skeleton-stat{display:flex;align-items:center;gap:var(--space-4);padding:var(--ql-card-body-py) var(--ql-card-body-px)}.skeleton-stat-lines{display:flex;flex:1;flex-direction:column;gap:7px}.skeleton-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-5)}.skeleton-card-full{overflow:hidden;background:var(--ql-card-bg);border:var(--ql-card-border);border-radius:var(--ql-card-radius);box-shadow:var(--ql-card-shadow)}.skeleton-card-body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--ql-card-body-py) var(--ql-card-body-px)}.header-action-btn{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-control);cursor:pointer;transition:background var(--duration-fast) var(--motion-ease),color var(--duration-fast) var(--motion-ease)}.header-action-btn .material-icons-round{display:block;font-size:var(--icon-lg);line-height:1}.header-theme-toggle[data-theme-intent=dark],.header-theme-toggle[data-theme-intent=light]{color:var(--text-primary);background:var(--bg-sunken)}.header-action-btn:hover{background:var(--fill-2);color:var(--text-primary)}.header-action-btn:active{background:var(--fill-3)}.header-action-btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px;box-shadow:none}.header-new-btn{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:var(--space-1);height:var(--h-md);padding:0 var(--space-3-5) 0 var(--space-2-5);font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:1;white-space:nowrap;border-radius:var(--radius-full);cursor:pointer;transition:background var(--duration-fast) var(--motion-ease),border-color var(--duration-fast) var(--motion-ease),box-shadow var(--duration-fast) var(--motion-ease)}.header-new-btn .material-icons-round{font-size:var(--icon-md);line-height:1}@media (max-width: 1024px),(pointer: coarse){.header-action-btn{width:44px;height:44px}.header-new-btn{height:44px;padding:0 var(--space-4) 0 var(--space-3)}}@media (max-width: 600px){.header-new-btn{width:44px;padding:0}.header-new-btn .header-new-label,.header-action-btn.kbd-btn,.header-action-btn.header-tour-btn{display:none}}@media (max-width: 375px){.header-action-btn.header-theme-toggle{display:none}}.header-theme-toggle .material-icons-round{transition:opacity var(--duration-fast) var(--motion-ease),transform var(--duration-fast) var(--motion-ease)}.header-theme-toggle:active .material-icons-round{opacity:.6;transform:scale(.88)}.tx-search-wrap{position:relative;flex:1 1 220px;min-width:0;max-width:400px}.tx-search-icon{position:absolute;top:50%;right:var(--space-3);transform:translateY(-50%);font-size:var(--icon-md);line-height:1;color:var(--text-muted);pointer-events:none;transition:color var(--duration-fast) var(--motion-ease)}.tx-search-wrap:focus-within .tx-search-icon{color:var(--ql-sage-500)}.tx-search-wrap.cal-search-wrap{flex:0 0 auto;margin-bottom:var(--space-3-5)}.form-input.tx-search-input{height:var(--h-md);padding-inline-start:var(--space-10)}.form-input.list-tx-filter{height:var(--h-md);font-size:var(--text-xs)}.transaction-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.filter-chip{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:var(--space-1-5);height:var(--h-md);padding:0 var(--space-3-5);font-family:inherit;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.01em;line-height:1;white-space:nowrap;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);box-shadow:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--duration-fast) var(--motion-ease),border-color var(--duration-fast) var(--motion-ease),color var(--duration-fast) var(--motion-ease)}.filter-chip .material-icons-round{flex-shrink:0;font-size:var(--icon-sm);line-height:1}.filter-chip:hover{background:var(--bg-sunken);border-color:var(--border-strong);color:var(--text-primary)}.filter-chip-count{display:inline-block;min-width:15px;padding:0 5px;font-size:10px;font-weight:var(--weight-bold);line-height:15px;text-align:center;color:var(--text-tertiary);background:var(--bg-sunken);border-radius:var(--radius-full)}@media (pointer: coarse){.filter-chip,.form-input.tx-search-input,.form-input.list-tx-filter{height:44px}}@media (max-width: 768px){.tx-search-wrap{flex-basis:100%;max-width:none}.transaction-filters{flex:1 1 0;flex-wrap:nowrap;min-width:0;overflow-x:auto;scrollbar-width:none}.transaction-filters::-webkit-scrollbar{display:none}:is(.contacts-toolbar,.docs-toolbar) .transaction-filters{min-width:min(100%,200px)}}.filter-chip.active,.rpt-date-btn.active{background:var(--active-bg);border-color:var(--active-border);color:var(--active-fg);font-weight:600;box-shadow:none}.filter-chip.active:hover,.rpt-date-btn.active:hover{background:var(--active-bg-hover);color:var(--active-fg)}.tasks-view-btn.active,.cal-view-btn.active,.analytics-period-btn.active{color:var(--active-fg)}.pwa-banner:not([hidden]){position:fixed;inset-inline:var(--space-4);bottom:max(var(--space-4),env(safe-area-inset-bottom));z-index:var(--z-overlay);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);max-width:500px;margin-inline:auto;padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-card);box-shadow:var(--elev-3);opacity:0;transform:translateY(12px);transition:opacity var(--motion-base) var(--motion-ease),transform var(--motion-base) var(--motion-ease)}.pwa-banner.pwa-banner--visible{opacity:1;transform:none}.pwa-banner__icon img{display:block;width:40px;height:40px;border-radius:9px}.pwa-banner__text{min-width:0}.pwa-banner__title{font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:1.35;color:var(--text-primary)}.pwa-banner__desc{margin-top:2px;font-size:var(--text-xs);line-height:1.4;color:var(--text-secondary)}.pwa-banner__actions{display:flex;gap:var(--space-2)}@media (max-width: 540px){.pwa-banner:not([hidden]){grid-template-columns:auto minmax(0,1fr);inset-inline-end:calc(var(--space-4) + 44px + var(--space-3))}.pwa-banner__actions{grid-column:1 / -1;justify-content:flex-end}}@media (prefers-reduced-motion: reduce){.pwa-banner:not([hidden]){transition:none}}.lexa-panel{position:fixed;inset-block:var(--header-height) 0;inset-inline-end:0;z-index:450;width:min(420px,100vw);display:flex;flex-direction:column;background:var(--bg-surface);border-inline-start:1px solid var(--border-default);box-shadow:var(--elev-3);animation:fade-in var(--motion-fast) var(--motion-ease)}.lexa-panel[hidden],.lexa-context[hidden]{display:none}.lexa-head,.lexa-context,.lexa-form{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.lexa-head{justify-content:space-between}.lexa-head-main,.lexa-head-actions{display:flex;align-items:center;gap:var(--space-2)}.lexa-logo{display:flex;color:var(--sig-green-ink)}.lexa-title{margin:0;font-size:var(--text-md);font-weight:var(--weight-bold)}.lexa-sub,.lexa-note,.lexa-sec-note,.lexa-item-meta,.lexa-cand-sub,.lexa-foot,.lexa-more,.lexa-empty{margin:0;font-size:var(--text-2xs);color:var(--text-tertiary)}.lexa-context{background:var(--bg-sunken);font-size:var(--text-xs)}.lexa-context-deal{flex:1;min-width:0;padding:0;border:0;background:none;color:var(--text-link);font:inherit;font-weight:var(--weight-semibold);text-align:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.lexa-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.lexa-msg{font-size:var(--text-sm);line-height:1.6;overflow-wrap:anywhere}.lexa-msg-user{align-self:flex-start;max-width:88%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--fill-2);white-space:pre-wrap}.lexa-msg-bot{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-elevated)}.lexa-text{margin:0;white-space:pre-wrap}.lexa-ai-badge{align-self:flex-start;padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--sig-green-ink);background:var(--fill-2)}.lexa-sec{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.lexa-sec-head{display:flex;align-items:center;justify-content:space-between}.lexa-sec-title{margin:0;font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--text-secondary)}.lexa-sec-observations .lexa-sec-title{color:var(--sig-green-ink)}.lexa-rows{margin:0}.lexa-row{display:grid;grid-template-columns:minmax(84px,34%) 1fr;gap:var(--space-2);font-size:var(--text-xs)}.lexa-row dt{color:var(--text-tertiary)}.lexa-row dd{margin:0}.lexa-items{margin:0;padding:0;list-style:none}.lexa-item{display:flex;flex-direction:column;padding:var(--space-1) 0}.lexa-item+.lexa-item{border-top:1px dashed var(--border-subtle)}.lexa-item-sub{padding-inline-start:var(--space-3)}.lexa-item-overdue .lexa-item-meta,.lexa-error{color:var(--text-danger)}.lexa-cand{display:flex;flex-direction:column;width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-weight:var(--weight-semibold);text-align:start;cursor:pointer}.lexa-cand:hover:not(:disabled){background:var(--bg-hover)}.lexa-btn-start{align-self:flex-start}.lexa-empty-state{margin:auto 0;padding:var(--space-6) var(--space-2);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;color:var(--text-secondary)}.lexa-empty-state h3{margin:0;font-size:var(--text-md);color:var(--text-primary)}.lexa-chips{display:flex;flex-wrap:wrap;gap:var(--space-1-5);justify-content:center}.lexa-msg-bot .lexa-chips{justify-content:flex-start}.lexa-form{align-items:flex-end;border-top:1px solid var(--border-subtle);border-bottom:0;padding-block:var(--space-3) var(--space-2);padding-left:76px}.lexa-form .lexa-input{flex:1;height:42px;min-height:42px;max-height:120px;padding-block:var(--space-2-5);resize:none}.lexa-send{width:42px;height:42px;padding:0}.lexa-send .material-icons-round{transform:scaleX(-1)}.lexa-foot{padding:0 var(--space-4) var(--space-3)}.header-assistant-btn[aria-expanded=true]{color:var(--sig-green-ink)}@media (max-width:600px){.lexa-panel{inset:0;width:100vw;border:0;padding-block:env(safe-area-inset-top,0px) env(safe-area-inset-bottom,0px)}.lexa-input{font-size:16px}body.lexa-open{overflow:hidden}body.lexa-open .qa-fab{display:none}}.lexa-actions{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.lexa-action{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px dashed var(--border-default);border-radius:var(--radius-md);background:var(--bg-surface);font-size:var(--text-xs)}.lexa-action-head,.lexa-action-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-1-5)}.lexa-action-label,.lexa-action-state{font-weight:var(--weight-bold)}.lexa-action-desc,.lexa-action-why{margin:0}.lexa-action-why,.lexa-action-foot{font-size:var(--text-2xs);color:var(--text-tertiary)}.lexa-risk{padding:0 var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:var(--weight-semibold);background:var(--fill-2)}.lexa-risk-medium{color:var(--ql-status-warning-text)}.lexa-sec-actions .lexa-sec-title{color:var(--sig-green-ink)}.lexa-risk-high,.lexa-sec-forbidden .lexa-sec-title{color:var(--text-danger)}.lexa-approval{border-style:solid}.lexa-approval-kicker,.lexa-approval-state{margin:0;font-size:var(--text-2xs);font-weight:var(--weight-bold)}.lexa-approval-kicker{color:var(--sig-green-ink)}.lexa-approval-state{color:var(--text-secondary)}.lexa-approval-actions,.lexa-batch-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.lexa-approval.is-executed{border-color:var(--text-success)}.lexa-approval.is-executed .lexa-approval-state,.lexa-approval.is-executed .lexa-approval-kicker{color:var(--text-success)}.lexa-approval.is-cancelled,.lexa-approval.is-expired,.lexa-approval.is-approved{opacity:.72}.lexa-approval.is-error .lexa-approval-state,.lexa-approval.is-failed .lexa-approval-state,.lexa-approval-high{color:var(--text-danger)}.lexa-batch{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--fill-2)}.lexa-batch-title{margin:0;font-size:var(--text-xs);font-weight:var(--weight-bold)}.lexa-approval.is-completed{border-color:var(--text-success)}.lexa-approval.is-completed .lexa-approval-state,.lexa-approval.is-completed .lexa-approval-kicker{color:var(--text-success)}.lexa-approval.is-blocked{opacity:.72}.lexa-wf-state{margin-inline-start:auto;font-size:var(--text-2xs);color:var(--text-secondary)}.lexa-wf-part{display:flex;flex-direction:column;gap:var(--space-1)}.lexa-wf-report{margin:0;font-size:var(--text-2xs)}.lexa-context.has-focus{flex-wrap:wrap}.lexa-context-focus{order:3;flex:1 1 100%;min-width:0;font-size:var(--text-2xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lexa-pf-overdue_task .lexa-sec-title,.lexa-pf-overdue_stage .lexa-sec-title{color:var(--text-danger)}.lexa-pf-no_issue .lexa-sec-title{color:var(--text-success)}.lexa-pf-deal{align-self:flex-start;max-width:100%;padding:0;border:0;background:none;color:var(--text-link);font:inherit;font-weight:var(--weight-semibold);text-align:start;overflow-wrap:anywhere;cursor:pointer}.lexa-pf-acts{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2)}.lexa-log[hidden]{display:none}.lexa-tabs{display:flex;gap:var(--space-1);padding:0 var(--space-4);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.lexa-tab{min-height:40px;padding:0 var(--space-3);border:0;border-bottom:2px solid transparent;background:none;color:var(--text-secondary);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer}.lexa-tab.is-active{color:var(--text-primary);border-bottom-color:var(--sig-green-ink)}.lexa-ws{display:flex;flex-direction:column;gap:var(--space-3)}.lexa-ws-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.lexa-ws-tone-ok{color:var(--text-success)}.lexa-ws-tone-error{color:var(--text-danger)}.lexa-ws-tone-wait{color:var(--text-primary);font-weight:var(--weight-semibold)}.lexa-panel.lexa-wide{width:min(720px,100vw)}.header-assistant-btn[data-count]:after{content:attr(data-count);position:absolute;top:2px;inset-inline-end:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--text-primary);color:var(--bg-surface);font-size:10px;font-weight:var(--weight-bold);line-height:16px;text-align:center}.lexa-context-deal{min-height:24px}.lexa-panel{--text-success:var(--ql-status-success-text)}@media (max-width:600px){.lexa-wide-btn{display:none}.lexa-panel .btn-sm,.lexa-tab,.lexa-context-deal{min-height:44px}}@media (max-width:600px){.lexa-context-deal{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;line-height:1.35}.lexa-log{padding-bottom:calc(var(--space-4) + 44px)}}@media (max-width:600px) and (max-height:520px){.lexa-sub,.lexa-foot{display:none}.lexa-head{padding-block:var(--space-1)}.lexa-form{padding-block:var(--space-1-5)}body.lexa-open #a11y-widget-btn{bottom:calc(env(safe-area-inset-bottom,0px) + 6px)}}.lexa-note-exact{white-space:pre-wrap;overflow-wrap:anywhere;font-weight:var(--weight-medium)}.lexa-approval.is-unverified{border-color:var(--text-warning,var(--ql-status-warning-text))}.lexa-approval.is-unverified .lexa-approval-state,.lexa-approval.is-unverified .lexa-approval-kicker{color:var(--text-warning,var(--ql-status-warning-text))}.lx-consent-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;height:100vh;height:100dvh;height:var(--modal-vvh,100dvh);padding:var(--space-6);overflow-y:auto;background:var(--ql-modal-overlay-bg);backdrop-filter:blur(var(--ql-modal-overlay-blur)) saturate(1.1);-webkit-backdrop-filter:blur(var(--ql-modal-overlay-blur)) saturate(1.1)}.lx-consent{max-width:720px}.lx-consent .modal-body{display:flex;flex-direction:column;gap:var(--space-3)}.lx-consent-lead{margin:0;color:var(--text-secondary);line-height:var(--leading-relaxed)}.lx-consent-doc{min-height:160px;max-height:42vh;max-height:42dvh;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-sunken);color:var(--text-primary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.lx-consent-doc h1{margin:0 0 var(--space-2);font-size:var(--text-lg)}.lx-consent-doc h2{margin:var(--space-3) 0 var(--space-1);font-size:var(--text-base)}.lx-consent-doc p{margin:0 0 var(--space-2)}.lx-consent-link{display:inline-flex;align-items:center;gap:var(--space-1);align-self:flex-start;font-size:var(--text-sm)}.lx-consent-link .material-icons-round{font-size:16px}.lx-consent-check{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--text-primary);font-weight:var(--weight-semibold);line-height:var(--leading-relaxed);cursor:pointer}.lx-consent-check input{flex-shrink:0;width:20px;height:20px;margin:2px 0 0}.lx-consent-error{margin:0;color:var(--text-danger);font-size:var(--text-sm)}.lx-consent-error:empty{display:none}.lx-consent-note{margin:0;color:var(--text-tertiary);font-size:var(--text-xs)}body.lx-consent-open{overflow:hidden}@media (max-width:600px){.lx-consent-overlay{padding:0}.lx-consent{height:100%;max-height:none;border-radius:0}.lx-consent-doc{max-height:none;flex:1}.lx-consent .modal-footer .btn{flex:1 1 auto;min-height:44px}}
