:root{--color-bg: #F8FAFC;--color-surface: #FFFFFF;--color-surface-alt: #F1F5F9;--color-surface-sunk: #F8FAFC;--color-border: #E2E8F0;--color-border-strong: #CBD5E1;--color-text: #0F172A;--color-text-secondary: #475569;--color-text-muted: #94A3B8;--color-text-inverse: #FFFFFF;--color-accent: #1E3A8A;--color-accent-hover: #1E40AF;--color-accent-active: #1D4ED8;--color-accent-soft: #EEF2FF;--color-success: #047857;--color-success-soft: #ECFDF5;--color-danger: #B91C1C;--color-danger-soft: #FEF2F2;--color-warning: #B45309;--color-warning-soft: #FFFBEB;--color-info: #0E7490;--color-info-soft: #ECFEFF;--color-value-positive: #047857;--color-value-negative: #B91C1C;--color-value-neutral: var(--color-text-secondary);--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-tight: 1.25;--line-base: 1.5;--line-relaxed: 1.65;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 8px -2px rgba(15, 23, 42, .08), 0 2px 4px -1px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 24px -6px rgba(15, 23, 42, .12), 0 4px 8px -4px rgba(15, 23, 42, .06);--shadow-focus: 0 0 0 3px rgba(30, 58, 138, .25);--z-base: 0;--z-sticky: 100;--z-dropdown: 200;--z-modal-backdrop: 900;--z-modal: 1000;--z-toast: 1100;--z-tooltip: 1200;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--line-base);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-muted{color:var(--color-text-secondary)}.text-subtle{color:var(--color-text-muted)}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-upper-tracked{text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.num{font-variant-numeric:tabular-nums;text-align:right;font-feature-settings:"tnum"}.num--positive{color:var(--color-value-positive)}.num--negative{color:var(--color-value-negative)}.mono{font-family:var(--font-mono);font-size:var(--text-sm)}.app-header{background:var(--color-text);color:var(--color-text-inverse);padding:var(--space-4) var(--space-8);display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.app-header h1{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em}.app-header .subtitle{color:var(--color-text-muted);font-size:var(--text-sm)}.app-header .client-name{color:#93c5fd;font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.client-selector{display:flex;align-items:center;gap:var(--space-2)}.client-selector select{font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);background:#ffffff14;color:var(--color-text-inverse)}.client-selector select:focus{border-color:#93c5fd;outline:none}.container{width:100%;padding:var(--space-6) var(--space-8)}.tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);align-items:flex-end;flex-wrap:wrap;border-bottom:1px solid var(--color-border)}.app-tabs{margin-bottom:0;border-bottom:none}.tab{padding:var(--space-3) var(--space-5);background:transparent;border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:pointer;font-size:var(--text-base);font-weight:var(--font-weight-medium);border:none;color:var(--color-text-secondary);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.tab:hover{background:var(--color-surface-alt)}.tab.active,.tab.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-xs)}.tab:disabled{opacity:.45;cursor:default}.tab.tab-manage{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.tab__count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 var(--space-2);margin-left:var(--space-2);background:var(--color-surface-alt);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums}.tab.is-active .tab__count,.tab.active .tab__count{background:var(--color-accent-soft);color:var(--color-accent)}.tab-separator{width:1px;height:var(--space-6);background:var(--color-border);margin:0 var(--space-2);align-self:center}.badge{display:inline-flex;align-items:center;background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);padding:2px var(--space-2);border-radius:var(--radius-pill);margin-left:var(--space-2);line-height:1.4}.badge.warn,.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge.err,.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge.success,.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--info{background:var(--color-info-soft);color:var(--color-info)}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent)}.badge--neutral{background:var(--color-surface-alt);color:var(--color-text-secondary)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 var(--radius-lg) var(--radius-lg) var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;transition:box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.card .num{font-size:var(--text-2xl);font-weight:var(--font-weight-bold);color:var(--color-accent);font-variant-numeric:tabular-nums;text-align:center}.num--success{color:var(--color-success)}.num--info{color:var(--color-info)}.num--accent{color:var(--color-accent)}.num--warning{color:var(--color-warning)}.num--danger{color:var(--color-danger)}.num--muted{color:var(--color-text-muted)}.card .label{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.card.clickable,.card--clickable{cursor:pointer;transition:box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.card.clickable:hover,.card--clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);border-color:var(--color-border-strong)}.card--clickable:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-color:var(--color-accent)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-base)}th{background:var(--color-surface-alt);text-align:left;padding:var(--space-2) var(--space-3);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:var(--z-sticky);border-bottom:1px solid var(--color-border-strong)}td{padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);color:var(--color-text)}tbody tr:hover td{background:var(--color-surface-alt)}.amount{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-sm)}.paid{color:var(--color-text)}.received{color:var(--color-value-positive)}.status-matched,.status-suggested,.status-unmatched,.status-confirmed,.status-duplicate,.status-excluded{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);line-height:1.4}.status-matched{background:var(--color-success-soft);color:var(--color-success)}.status-suggested{background:var(--color-info-soft);color:var(--color-info)}.status-unmatched{background:var(--color-warning-soft);color:var(--color-warning)}.status-confirmed{background:var(--color-accent-soft);color:var(--color-accent)}.status-duplicate{background:var(--color-danger-soft);color:var(--color-danger)}.status-excluded{background:var(--color-surface-alt);color:var(--color-text-secondary)}.duplicate-badge{display:inline-block;background:var(--color-danger);color:var(--color-text-inverse);font-size:9px;font-weight:var(--font-weight-bold);padding:1px var(--space-1);border-radius:var(--radius-sm);margin-left:var(--space-1);vertical-align:top;letter-spacing:.04em}.duplicate-row{position:relative}.duplicate-row td{border-left:3px solid var(--color-danger)}.excluded-duplicate-row td{opacity:.55;background:var(--color-surface-alt);border-left:3px solid var(--color-border-strong);color:var(--color-text-secondary)}.excluded-duplicate-row td .btn{opacity:1;text-decoration:none}.code{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface-alt);padding:1px var(--space-1);border-radius:var(--radius-sm);color:var(--color-text)}.ccy-badge{display:inline-block;background:var(--color-surface-alt);color:var(--color-text-secondary);font-size:10px;font-weight:var(--font-weight-bold);padding:1px var(--space-1);border-radius:var(--radius-sm);letter-spacing:.04em}.txn-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-pill);background:var(--color-surface-alt);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-weight-bold);flex-shrink:0}.scroll-wrapper{max-height:600px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.step-label{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}.step-num{background:var(--color-accent);color:var(--color-text-inverse);width:28px;height:28px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:var(--font-weight-bold);flex-shrink:0}.step-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold)}.le-info{display:flex;gap:var(--space-6);margin-bottom:var(--space-4);flex-wrap:wrap}.le-info .field-label{font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-semibold)}.le-info .field-value{font-size:var(--text-md);font-weight:var(--font-weight-semibold)}.workbook-section{margin-top:var(--space-6)}.workbook-section__heading{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin:var(--space-4) 0 var(--space-3)}.workbook-section__select{margin-bottom:var(--space-4);max-width:420px}.rules-section{margin-top:var(--space-6);margin-bottom:var(--space-6)}.rules-section:first-of-type{margin-top:var(--space-4)}.rules-section__heading{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin:0 0 var(--space-2)}.rules-section__heading--warning{color:var(--color-warning)}.rules-section__count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;padding:0 var(--space-2);background:var(--color-surface-alt);color:var(--color-text-secondary);font-size:var(--text-xs);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums}.rules-section__heading--warning .rules-section__count{background:var(--color-warning-soft);color:var(--color-warning)}.rules-section__hint{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0 0 var(--space-3)}.rules-section__scroll{max-height:300px}.rule-row--unconfigured{background:var(--color-warning-soft)}.rule-row--unconfigured:hover{background:color-mix(in srgb,var(--color-warning-soft) 80%,var(--color-warning) 20%)}.code.code--strong{font-weight:var(--font-weight-bold);color:var(--color-text)}.field-select.field-select--rule{min-width:200px}.field-select.field-select--rule-med{min-width:180px}.field-select.field-select--rule-sm{min-width:160px}.inline-add{margin-top:var(--space-4)}.inline-add__form{display:flex;gap:var(--space-2);align-items:center}.inline-add__input{max-width:120px;text-transform:uppercase}.inline-add__input--wide{max-width:220px}.account-selector{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.account-selector label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);white-space:nowrap}.account-selector select{font-size:var(--text-base);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);flex:1;max-width:500px;color:var(--color-text)}.account-selector select:focus{border-color:var(--color-accent);outline:none;box-shadow:var(--shadow-focus)}select.field-select{font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-width:160px;max-width:280px;color:var(--color-text)}select.field-select:focus{border-color:var(--color-accent);outline:none;box-shadow:var(--shadow-focus)}select.field-select:disabled{background:var(--color-surface-alt);color:var(--color-text-muted)}input.field-input{font-size:var(--text-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--color-text)}input.field-input:focus{border-color:var(--color-accent);outline:none;box-shadow:var(--shadow-focus)}input.field-input.overridden{border-color:var(--color-warning);background:var(--color-warning-soft)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field__label{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.field__hint{font-size:var(--text-sm);color:var(--color-text-muted)}.field__error{font-size:var(--text-sm);color:var(--color-danger)}.field--error input,.field--error select,.field--error textarea{border-color:var(--color-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-base);padding:var(--space-2) var(--space-4);height:36px;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-semibold);line-height:1;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);white-space:nowrap}.btn:focus-visible{box-shadow:var(--shadow-focus)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-primary:disabled{background:var(--color-border-strong);border-color:var(--color-border-strong);cursor:not-allowed}.btn-success{background:var(--color-success);color:var(--color-text-inverse);border-color:var(--color-success)}.btn-success:hover{background:#065f46;border-color:#065f46}.btn-danger{background:var(--color-danger);color:var(--color-text-inverse);border-color:var(--color-danger)}.btn-danger:hover{background:#991b1b;border-color:#991b1b}.btn-outline{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text)}.btn-outline:hover{background:var(--color-surface-alt);border-color:var(--color-text-secondary)}.btn-sm{font-size:var(--text-sm);padding:var(--space-1) var(--space-3);height:28px}.btn-lg{font-size:var(--text-md);padding:var(--space-3) var(--space-6);height:44px}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.review-row td{border-bottom:1px solid var(--color-border);vertical-align:top}.review-row td:first-child{border-left:3px solid var(--color-warning)}.review-row:hover td{background:var(--color-surface-alt)}.matched-row td{border-bottom:1px solid var(--color-border);vertical-align:top;background:var(--color-success-soft)}.matched-row td:first-child{border-left:3px solid var(--color-success)}.matched-row:hover td{background:#d1fae5}.confirmed-row td{border-bottom:1px solid var(--color-border);vertical-align:top;background:#d1fae5}.confirmed-row td:first-child{border-left:3px solid var(--color-success)}.confirmed-row:hover td{background:#a7f3d0}.suggested-row td{border-bottom:1px solid var(--color-border);vertical-align:top;background:var(--color-info-soft)}.suggested-row td:first-child{border-left:3px solid var(--color-info)}.suggested-row:hover td{background:#cffafe}.je-cash td{color:var(--color-text-muted);font-style:italic}.dr-cr{font-weight:var(--font-weight-bold);width:30px}.auto-tag{font-size:10px;color:var(--color-text-muted);font-style:italic}.txn-detail{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.txn-detail--accent{color:var(--color-accent);font-weight:var(--font-weight-medium)}.upload-area{border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-10);text-align:center;cursor:pointer;background:var(--color-surface);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.upload-area:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.upload-area.dragging{border-color:var(--color-accent);background:var(--color-accent-soft);box-shadow:var(--shadow-focus)}.upload-area .icon{font-size:var(--text-3xl);margin-bottom:var(--space-2);color:var(--color-text-muted)}.upload-area .label{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.upload-area .hint{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.upload-area__input{display:none}.upload-area__spinner{margin:0 auto var(--space-2)}.upload-area.is-disabled{opacity:.5;cursor:default;pointer-events:none}.account-selector__count{font-size:var(--text-sm);color:var(--color-text-secondary)}.cell-description{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--color-text-secondary)}.cell-description--expanded{white-space:normal;word-break:break-word;text-overflow:unset;cursor:pointer}.table-footer{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-4);gap:var(--space-3)}.table-footer--right{justify-content:flex-end}.cell-dim{font-size:var(--text-xs);color:var(--color-text-secondary)}.cell-name{font-weight:var(--font-weight-medium)}.field-input--edit{font-size:var(--text-sm);padding:var(--space-1) var(--space-2);text-align:left;max-width:200px}.code.code--missing{color:var(--color-danger);font-weight:var(--font-weight-bold);background:var(--color-danger-soft)}.amount__ccy-suffix{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:var(--space-1);font-variant-numeric:normal}.page-lede{color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:0;margin-bottom:var(--space-4);max-width:70ch}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);margin-bottom:var(--space-4);border:1px solid transparent}.alert-error{background:var(--color-danger-soft);color:var(--color-danger);border-color:#fecaca}.alert-warning{background:var(--color-warning-soft);color:var(--color-warning);border-color:#fde68a}.alert-success{background:var(--color-success-soft);color:var(--color-success);border-color:#a7f3d0}.alert-info{background:var(--color-info-soft);color:var(--color-info);border-color:#a5f3fc}.alert--stacked{display:block}.alert__list{margin:var(--space-1) 0 0 var(--space-4);padding:0;font-size:var(--text-sm)}.alert__list li{margin-top:var(--space-1)}.alert--inline{display:inline-flex;align-items:center;margin:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.cash-type-diagnostic{background:var(--color-surface-alt);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:0 0 var(--space-4);font-size:var(--text-sm)}.cash-type-diagnostic__row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.cash-type-diagnostic__label{color:var(--color-text-muted);font-weight:var(--font-weight-medium);min-width:110px}.cash-type-diagnostic__value{font-weight:var(--font-weight-semibold);color:var(--color-text)}.cash-type-diagnostic__source{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--text-xs);border-radius:var(--radius-sm);font-style:italic;margin-left:auto}.cash-type-diagnostic__source--bank-account-mapping{background:var(--color-success-soft);color:var(--color-success)}.cash-type-diagnostic__source--coa-flag{background:var(--color-info-soft);color:var(--color-info)}.cash-type-diagnostic__source--client-setting-legacy{background:var(--color-warning-soft);color:var(--color-warning)}.cash-type-diagnostic__source--none{background:var(--color-danger-soft);color:var(--color-danger)}.cash-type-diagnostic__bankacct{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-border);color:var(--color-text-muted);font-size:var(--text-xs)}.alert--dismissible{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.alert__dismiss{background:none;border:none;cursor:pointer;font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:inherit;opacity:.7;padding:0 var(--space-1);line-height:1}.alert__dismiss:hover{opacity:1}.modal-overlay{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:var(--z-modal-backdrop);justify-content:center;align-items:flex-start;padding-top:var(--space-16);animation:fade-in var(--duration-base) var(--ease-out)}.modal{background:var(--color-surface);border-radius:var(--radius-xl);width:90%;max-width:1100px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);z-index:var(--z-modal);animation:slide-up var(--duration-base) var(--ease-out)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-header h2{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);display:flex;align-items:baseline;gap:var(--space-2)}.modal-header__count{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-weight-normal)}.modal-close{background:none;border:none;font-size:var(--text-xl);cursor:pointer;color:var(--color-text-secondary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);line-height:1}.modal-close:hover{background:var(--color-surface-alt);color:var(--color-text)}.modal-search{padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal-search input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface)}.modal-search input:focus{border-color:var(--color-accent);outline:none;box-shadow:var(--shadow-focus)}.modal-body{overflow-y:auto;flex:1;padding:0}.modal-body table{font-size:var(--text-sm)}.modal-body th{position:sticky;top:0;z-index:var(--z-sticky)}.modal-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-6)}.modal-overlay--confirm{align-items:center;padding-top:0}.modal--confirm{max-width:460px;width:auto;max-height:none}.modal--confirm .modal-header{border-bottom:none;padding-bottom:0}.modal-body--padded{padding:var(--space-4) var(--space-6) var(--space-2);overflow:visible;flex:0 0 auto}.confirm-message{margin:0 0 var(--space-2);color:var(--color-text);line-height:1.5}.confirm-detail{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border)}.toast-container{position:fixed;top:var(--space-6);right:var(--space-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;max-width:400px}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-text-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);color:var(--color-text);transform:translate(120%);opacity:0;transition:transform var(--duration-base) var(--ease-out),opacity var(--duration-base) var(--ease-out)}.toast--visible{transform:translate(0);opacity:1}.toast--error{border-left-color:var(--color-danger)}.toast__icon{font-size:var(--text-md);font-weight:var(--font-weight-bold);line-height:1.25;width:20px;text-align:center;flex-shrink:0}.toast--success .toast__icon{color:var(--color-success)}.toast--error .toast__icon{color:var(--color-danger)}.toast--warning .toast__icon{color:var(--color-warning)}.toast--info .toast__icon{color:var(--color-info)}.toast__message{flex:1;min-width:0;line-height:1.4;word-wrap:break-word}.toast__dismiss{background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:var(--text-lg);line-height:1;padding:0 var(--space-1);flex-shrink:0}.toast__dismiss:hover{color:var(--color-text)}@media(prefers-reduced-motion:reduce){.toast{transition:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.empty-state .icon{font-size:42px;margin-bottom:var(--space-3);opacity:.7}.empty-state .message{font-size:var(--text-md);color:var(--color-text);font-weight:var(--font-weight-medium);margin-bottom:var(--space-1)}.empty-state .hint{font-size:var(--text-base);color:var(--color-text-muted)}.empty-state__action{margin-top:var(--space-5)}.empty-state--inline{border:none;background:transparent;padding:var(--space-8) var(--space-4)}.empty-state--page{padding:var(--space-16) var(--space-6)}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:block;background:linear-gradient(90deg,var(--color-surface-alt) 0%,var(--color-border) 50%,var(--color-surface-alt) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s linear infinite}.skeleton--text{height:var(--text-base);margin-bottom:var(--space-2);width:100%}.skeleton--row{height:36px;margin-bottom:var(--space-2)}.skeleton--card{height:120px;border-radius:var(--radius-lg)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.login-page{display:flex;min-height:100vh;background:var(--color-bg)}.login-brand{display:none;flex:1.1;background:radial-gradient(circle at 20% 20%,rgba(147,197,253,.22),transparent 55%),radial-gradient(circle at 80% 70%,rgba(129,140,248,.18),transparent 50%),linear-gradient(135deg,#0B1220 0%,var(--color-accent) 60%,#312E81 100%);color:var(--color-text-inverse);padding:var(--space-12);position:relative;flex-direction:column;justify-content:space-between;overflow:hidden}.login-brand:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent 0 24px,rgba(255,255,255,.015) 24px 48px);pointer-events:none}.login-brand__content{position:relative;z-index:1;max-width:460px}.login-brand__wordmark{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin-bottom:var(--space-6)}.login-brand__icon{font-size:var(--text-3xl);line-height:1}.login-brand__tagline{font-size:var(--text-lg);line-height:var(--line-relaxed);color:#ffffffd1;margin-bottom:var(--space-8);font-weight:var(--font-weight-normal)}.login-brand__points{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);padding:0;margin:0}.login-brand__points li{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-base);color:#ffffffe0;line-height:var(--line-relaxed)}.login-brand__bullet{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:var(--radius-pill);background:#ffffff24;color:#a7f3d0;font-size:var(--text-sm);font-weight:var(--font-weight-bold);flex-shrink:0;margin-top:1px}.login-brand__footer{position:relative;z-index:1;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:#ffffffa6}.login-brand__lock{font-size:var(--text-base)}.login-main{flex:1;display:flex;justify-content:center;align-items:center;padding:var(--space-6)}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-10);width:100%;max-width:420px;box-shadow:var(--shadow-lg)}.login-card__header{margin-bottom:var(--space-6)}.login-card__title{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-1)}.login-card__subtitle{font-size:var(--text-base);color:var(--color-text-secondary)}.login-form{display:flex;flex-direction:column;gap:var(--space-4)}.login-input{font-size:var(--text-base);padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);height:44px;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.login-input:focus{border-color:var(--color-accent);outline:none;box-shadow:var(--shadow-focus)}.login-submit{width:100%;margin-top:var(--space-2)}.login-card__footer{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:var(--text-sm)}.login-card__footer .badge{margin-left:0}@media(min-width:768px){.login-brand{display:flex}}.header-user{color:var(--color-text-muted);font-size:var(--text-sm)}.header-logout{color:var(--color-text-muted);border-color:#ffffff2e;background:transparent}.header-logout:hover{background:#ffffff14;color:var(--color-text-inverse)}.settings-section{margin-bottom:var(--space-6);padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.settings-section__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-2)}.settings-section__title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.settings-section__subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4) 0}.settings-section__meta{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.settings-section h3{font-size:var(--text-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3);color:var(--color-text)}.settings-toolbar{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-3)}.settings-toolbar__count{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto;font-variant-numeric:tabular-nums}.save-bar{position:sticky;bottom:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-6) calc(var(--space-5) * -1) calc(var(--space-5) * -1);box-shadow:0 -4px 12px -4px #0f172a0f;z-index:var(--z-sticky);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.save-bar__status{font-size:var(--text-sm);color:var(--color-text-secondary)}.save-bar__status--success{color:var(--color-success);font-weight:var(--font-weight-medium)}.save-bar__actions{display:flex;gap:var(--space-2)}.setting-label__title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.setting-label__hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);line-height:1.4}.setting-helper{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.range-control{display:flex;align-items:center;gap:var(--space-3)}.range-control__value{font-weight:var(--font-weight-semibold);font-size:var(--text-base);font-variant-numeric:tabular-nums;min-width:44px;color:var(--color-text)}.coa-row--active td{background:var(--color-success-soft)}.coa-row--updating{opacity:.5}.th-center,.td-center{text-align:center}.settings-meta{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.settings-meta__chip{padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-secondary)}.settings-meta__chip strong{display:block;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums}.settings-grid{display:flex;flex-direction:column;gap:0}.setting-row{display:flex;align-items:flex-start;gap:var(--space-6);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border)}.setting-row:last-child{border-bottom:none}.setting-label{flex:0 0 280px;padding-top:var(--space-1);font-weight:var(--font-weight-medium);color:var(--color-text)}.setting-value{flex:1}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:var(--radius-pill);background:var(--color-border);outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-accent);cursor:pointer;box-shadow:var(--shadow-sm)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.page-header__title{display:flex;flex-direction:column;gap:var(--space-1)}.page-header__eyebrow{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.page-header__heading{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);letter-spacing:-.01em}.page-header__meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);flex-wrap:wrap}.page-header__divider{width:1px;height:var(--space-4);background:var(--color-border-strong)}.toolbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-3);flex-wrap:wrap;box-shadow:var(--shadow-xs)}.toolbar__search{flex:1;min-width:200px;max-width:360px;position:relative}.toolbar__search input{width:100%;height:36px;padding:0 var(--space-3) 0 var(--space-8);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);font-size:var(--text-base);color:var(--color-text)}.toolbar__search input:focus{border-color:var(--color-accent);outline:none;box-shadow:var(--shadow-focus)}.toolbar__search:before{content:"🔍";position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);font-size:var(--text-base);pointer-events:none;opacity:.55}.toolbar__divider{width:1px;height:var(--space-6);background:var(--color-border)}.toolbar__actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto;flex-wrap:wrap}.filter-chips{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-2);height:30px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.filter-chip:hover{background:var(--color-surface-alt);border-color:var(--color-text-secondary)}.filter-chip.is-active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.filter-chip__count{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-bold);font-size:var(--text-xs);background:var(--color-surface-alt);border-radius:var(--radius-pill);padding:1px var(--space-2);min-width:20px;text-align:center}.filter-chip.is-active .filter-chip__count{background:var(--color-surface)}.confidence-meter{display:inline-flex;align-items:center;gap:var(--space-2)}.confidence-meter__bar{width:60px;height:6px;background:var(--color-surface-alt);border-radius:var(--radius-pill);overflow:hidden;position:relative}.confidence-meter__fill{height:100%;border-radius:var(--radius-pill);transition:width var(--duration-base) var(--ease-out)}.confidence-meter__fill--high{background:var(--color-success)}.confidence-meter__fill--mid{background:var(--color-warning)}.confidence-meter__fill--low{background:var(--color-danger)}.confidence-meter__value{font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.section-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-3)}.timeline{position:relative;padding-left:var(--space-4)}.timeline:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--color-border);border-radius:1px}.timeline__date-divider{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;padding:var(--space-4) 0 var(--space-2) 0;margin-left:calc(-1 * var(--space-4))}.timeline__date-divider:first-child{padding-top:0}.timeline__entry{position:relative;display:grid;grid-template-columns:36px 1fr auto;gap:var(--space-3);align-items:start;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.timeline__entry:last-child{border-bottom:none}.timeline__dot{position:relative;width:16px;height:16px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-accent);margin-left:-1px;margin-top:4px;z-index:1}.timeline__dot--matched{border-color:var(--color-success)}.timeline__dot--exported{border-color:var(--color-accent)}.timeline__dot--overridden,.timeline__dot--flagged{border-color:var(--color-warning)}.timeline__dot--duplicate-warned,.timeline__dot--duplicate-overridden{border-color:var(--color-danger)}.timeline__body{min-width:0}.timeline__actor{display:inline-flex;align-items:center;gap:var(--space-2);margin-right:var(--space-2)}.timeline__avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);flex-shrink:0}.timeline__action{font-size:var(--text-sm);color:var(--color-text);line-height:1.5}.timeline__action strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.timeline__action-badge{display:inline-block;padding:1px 8px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--font-weight-medium);background:var(--color-surface-alt);color:var(--color-text-secondary);margin-right:var(--space-2)}.timeline__action-badge--matched{background:var(--color-success-soft);color:var(--color-success)}.timeline__action-badge--exported{background:var(--color-accent-soft);color:var(--color-accent)}.timeline__action-badge--overridden,.timeline__action-badge--flagged{background:var(--color-warning-soft);color:var(--color-warning)}.timeline__action-badge--duplicate-warned,.timeline__action-badge--duplicate-overridden{background:var(--color-danger-soft);color:var(--color-danger)}.timeline__reason{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1);line-height:1.5}.timeline__meta{display:flex;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);font-family:var(--font-mono)}.timeline__diff{margin-top:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);overflow-x:auto}.timeline__diff-line{display:block;white-space:nowrap}.timeline__diff-line--before{color:var(--color-danger)}.timeline__diff-line--after{color:var(--color-success)}.timeline__time{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.pagination__info{font-size:var(--text-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.cell-fx{min-width:110px}.cell-fx .field-input{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);text-align:right}.cell-fx__warn{font-size:var(--text-xs);color:var(--color-danger);margin-top:var(--space-1);font-weight:var(--font-weight-medium)}.dup-detail{font-size:var(--text-xs);color:var(--color-text-muted);font-family:var(--font-mono);margin-top:var(--space-1);line-height:1.3}.cell-actions{display:flex;flex-direction:column;gap:var(--space-1);align-items:flex-start}.btn-duplicate{background:var(--color-warning);color:var(--color-text-inverse);border-color:var(--color-warning);white-space:nowrap}.btn-duplicate:hover{background:var(--color-warning);filter:brightness(.92)}.cell-na{color:var(--color-text-muted);font-size:var(--text-xs)}.cell-vendor{display:flex;align-items:center;gap:var(--space-1)}.cell-vendor .field-select{min-width:120px}.btn-icon-search{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);line-height:1}.cell-match-reason{font-size:var(--text-xs);color:var(--color-text-secondary);display:flex;flex-direction:column;gap:var(--space-1);max-width:200px}.cell-match-reason__text{white-space:normal;line-height:1.4}.duplicate-panel{margin-bottom:var(--space-5)}.duplicate-panel__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.duplicate-panel__hint{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-3) 0}.duplicate-panel__scroll{max-height:240px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.duplicate-panel__scroll table{margin:0;font-size:var(--text-xs)}.duplicate-panel__scroll thead th{position:sticky;top:0;background:var(--color-surface-alt);z-index:1}.duplicate-panel__reason{max-width:240px;white-space:normal;font-size:var(--text-xs);line-height:1.4;color:var(--color-text-secondary)}.toast-container{position:fixed;top:var(--space-6);right:var(--space-6);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-2);max-width:420px}.toast{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-text-secondary);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-md);display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-base);animation:slide-in-right var(--duration-base) var(--ease-out)}.toast--success{border-left-color:var(--color-success)}.toast--danger{border-left-color:var(--color-danger)}.toast--warning{border-left-color:var(--color-warning)}.toast--info{border-left-color:var(--color-info)}@keyframes slide-in-right{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.skip-link{position:absolute;top:-60px;left:var(--space-4);z-index:var(--z-toast, 2000);padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-text-inverse);text-decoration:none;font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);transition:top var(--duration-fast) var(--ease-out)}.skip-link:focus,.skip-link:focus-visible{top:var(--space-4);outline:none;box-shadow:var(--shadow-focus),var(--shadow-lg)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.field-input:focus-visible,.field-select:focus-visible{outline:none;border-color:var(--color-accent);box-shadow:var(--shadow-focus)}@media(max-width:1024px){.container{padding:var(--space-5) var(--space-4)}.settings-row--split{flex-direction:column}}@media(max-width:768px){:root{--text-3xl: 24px;--text-2xl: 20px}.container{padding:var(--space-4)}.app-header{padding:var(--space-3) var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.app-header h1{font-size:var(--text-lg)}.client-selector{gap:var(--space-2);flex-wrap:wrap}.header-user{display:none}.tabs.app-tabs{flex-wrap:wrap;gap:2px}.tab{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.tab-separator{display:none}.setting-row{flex-direction:column;gap:var(--space-2);align-items:stretch}.setting-label{flex:none}.panel{padding:var(--space-4)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.table-scroll,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.login-card{padding:var(--space-6)}.login-brand{display:none}.toast-container{left:var(--space-3);right:var(--space-3);top:var(--space-3)}.toast{max-width:none}.modal{width:calc(100vw - var(--space-6));max-width:none}}@media(max-width:480px){.cards{grid-template-columns:minmax(0,1fr)}.app-header h1{font-size:var(--text-md)}.client-name{display:none}}@media print{.app-header,.tabs,.btn,.toast-container,.skip-link{display:none!important}body{background:#fff}.panel{border:none;box-shadow:none;padding:0}}
