:root,[data-theme=dark]{--bg: #0b1222;--bg-elevated: #111a2e;--panel: #151f36;--panel-2: #1b2742;--panel-hover: #1f2c4b;--line: #27324e;--line-strong: #3a4771;--muted: #8b93a7;--muted-strong: #a6adc0;--text: #e7ecf3;--text-strong: #ffffff;--accent: #6aa5ff;--accent-strong: #84b6ff;--accent-ink: #081026;--accent-soft: rgba(106, 165, 255, .14);--accent-2: #34d399;--accent-2-ink: #052e20;--accent-2-soft: rgba(52, 211, 153, .14);--danger: #f87171;--danger-ink: #ffffff;--danger-soft: rgba(248, 113, 113, .14);--warn: #fbbf24;--warn-ink: #3a2a00;--warn-soft: rgba(251, 191, 36, .14);--shadow-xs: 0 1px 0 rgba(0, 0, 0, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow-md: 0 2px 8px rgba(0, 0, 0, .32), 0 1px 2px rgba(0, 0, 0, .22);--shadow-lg: 0 10px 24px rgba(0, 0, 0, .38), 0 4px 8px rgba(0, 0, 0, .22);--shadow: var(--shadow-sm);color-scheme:dark}[data-theme=light]{--bg: #f7f8fb;--bg-elevated: #ffffff;--panel: #ffffff;--panel-2: #f3f5f9;--panel-hover: #eef1f7;--line: #e2e6ee;--line-strong: #c5ccd8;--muted: #616a7d;--muted-strong: #4a5160;--text: #0f172a;--text-strong: #0b1220;--accent: #2563eb;--accent-strong: #1d4ed8;--accent-ink: #ffffff;--accent-soft: rgba(37, 99, 235, .08);--accent-2: #059669;--accent-2-ink: #ffffff;--accent-2-soft: rgba(5, 150, 105, .08);--danger: #dc2626;--danger-ink: #ffffff;--danger-soft: rgba(220, 38, 38, .08);--warn: #b45309;--warn-ink: #ffffff;--warn-soft: rgba(180, 83, 9, .08);--shadow-xs: 0 1px 0 rgba(15, 23, 42, .04);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 2px 8px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 24px rgba(15, 23, 42, .1), 0 4px 8px rgba(15, 23, 42, .05);--shadow: var(--shadow-sm);color-scheme:light}:root{--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--font-sans: "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--duration-fast: 90ms;--duration: .12s;--ease: cubic-bezier(.2, .7, .3, 1)}html,body{background:var(--bg);color:var(--text);margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}.tabular{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.4}h1,h2,h3{margin:0}button{background:var(--accent);color:var(--accent-ink);border:0;padding:10px 16px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.1)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}button.danger{background:var(--danger);color:var(--danger-ink)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--line);padding:10px 12px;border-radius:var(--radius);font-size:14px;width:100%;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}textarea{resize:vertical}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.panel+.panel{margin-top:16px}.panel h2{font-size:13px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px}.muted{color:var(--muted)}.tiny{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.num{text-align:right;font-variant-numeric:tabular-nums}.portal-shell{display:flex;flex-direction:column;min-height:100vh}.portal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:20;flex-wrap:wrap}.portal-header-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.portal-header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.brand{font-weight:700;font-size:16px;letter-spacing:.01em}.portal-nav{display:flex;gap:4px;flex-wrap:wrap}.portal-nav a{padding:8px 14px;border-radius:var(--radius);color:var(--muted);font-weight:500}.portal-nav a:hover{background:var(--panel-2);text-decoration:none;color:var(--text)}.portal-nav a.active{background:var(--panel-2);color:var(--accent)}.hamburger{display:none;background:transparent;color:var(--text);border:1px solid var(--line);padding:6px 10px;font-size:18px;line-height:1}.user-pill{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);font-size:13px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-pill .vendor-name{font-weight:600}.theme-toggle{display:inline-flex;gap:2px;padding:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius)}.theme-toggle button{background:transparent;color:var(--muted);padding:4px 10px;font-size:12px;font-weight:500;border-radius:calc(var(--radius) - 2px)}.theme-toggle button.active{background:var(--panel);color:var(--text)}.portal-main{flex:1;padding:20px;max-width:1400px;width:100%;margin:0 auto}.page{display:flex;flex-direction:column;gap:16px}.page-title{font-size:22px;font-weight:700}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.back-link-row{font-size:13px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.kpi-tile{padding:18px}.kpi-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.kpi-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.kpi-sub{font-size:12px;margin-top:6px}.next-statement-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;align-items:end}.next-statement-body .big{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.button-link{display:inline-block;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:var(--radius);font-weight:600;align-self:center}.button-link:hover{filter:brightness(1.1);text-decoration:none}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.data-table th{color:var(--muted);font-weight:600;font-size:11px;letter-spacing:.05em;text-transform:uppercase}.data-table th.num,.data-table td.num{text-align:right}.data-table tbody tr:hover{background:var(--panel-2)}.totals-row{padding:8px 8px 12px;border-bottom:1px solid var(--line);margin-bottom:6px;font-size:13px;color:var(--muted)}.totals-row strong{color:var(--text)}.filter-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.filter-row label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.filter-actions{display:flex;gap:8px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.badge-pending{color:var(--warn);border-color:#eab30866}.badge-approved,.badge-fulfilled,.badge-paid{color:var(--accent-2);border-color:#34d39966}.badge-rejected,.badge-voided,.badge-cancelled{color:var(--danger);border-color:#f8717166}.badge-locked{color:var(--accent);border-color:#6aa5ff66}.badge-draft{color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.sum-row{padding:8px 10px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius)}.sum-row.emph{background:var(--panel);border-color:var(--accent)}.sum-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.sum-value{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.sum-row.emph .sum-value{font-size:18px}.banner{padding:10px 14px;border-radius:var(--radius);font-size:13px}.banner.error{background:#f8717124;color:var(--danger);border:1px solid rgba(248,113,113,.3)}.banner.info{background:#6aa5ff1f;color:var(--accent);border:1px solid rgba(106,165,255,.3)}.banner.success{background:#34d3991f;color:var(--accent-2);border:1px solid rgba(52,211,153,.3)}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.login-card h1{font-size:22px;font-weight:700}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.request-form{display:flex;flex-direction:column;gap:12px}.request-form label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.form-actions{display:flex;gap:8px}.boot{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.boot-card{padding:40px 60px;color:var(--muted)}@media (max-width: 760px){.portal-header{padding:10px 14px}.hamburger{display:inline-block}.portal-nav{flex-basis:100%;flex-direction:column;display:none;margin-top:10px}.portal-nav.open{display:flex}.portal-main{padding:14px}.user-pill{display:none}.filter-row{grid-template-columns:1fr 1fr}.filter-actions{grid-column:1 / -1}.data-table{font-size:12px}.data-table th,.data-table td{padding:8px 6px}}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.table-wrap{overflow-x:auto;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius)}.table-wrap .data-table{min-width:560px}@media (max-width: 768px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.next-statement-body{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.portal-header{padding:8px 12px;gap:8px}.portal-header-left,.portal-header-right{gap:8px}.portal-nav.open{flex-basis:100%;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:4px}.portal-nav.open a{flex-shrink:0;min-height:44px;display:inline-flex;align-items:center}.portal-main{padding:12px}.kpi-grid,.next-statement-body,.filter-row{grid-template-columns:1fr}.summary-grid{grid-template-columns:1fr 1fr}.page-title{font-size:20px}button,.button-link,.hamburger{min-height:44px}.hamburger{min-width:44px;padding:6px 12px}.theme-toggle button{min-height:36px}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{font-size:16px}}@media (max-width: 480px){.summary-grid{grid-template-columns:1fr}}.login-card{max-width:420px}.login-card input[type=text],.login-card input[type=email],.login-card input[type=password],.login-card button{min-height:44px;width:100%}@media (hover: none){button:hover{filter:none}.portal-nav a:hover{background:transparent;color:var(--muted)}.data-table tbody tr:hover{background:transparent}a:hover{text-decoration:none}}@media print{html,body,#root{height:auto;background:#fff!important;color:#000!important}.portal-header,.portal-nav,.hamburger,.theme-toggle,.filter-row,.form-actions{display:none!important}.portal-shell{display:block}.portal-main{padding:0!important;max-width:100%!important;background:#fff!important;color:#000!important}.panel{background:#fff!important;color:#000!important;border-color:#ccc!important;box-shadow:none!important}.data-table th,.data-table td{border-color:#ccc!important;color:#000!important}}
