:root{--color-surface:oklch(98.6% .005 95);--color-surface-raised:oklch(100% 0 0);--color-surface-sunken:oklch(96.6% .006 265);--color-surface-inset:oklch(97.6% .005 265);--color-border:oklch(91% .008 265);--color-border-strong:oklch(85% .01 265);--color-text:oklch(23% .022 268);--color-text-muted:oklch(52% .02 268);--color-text-subtle:oklch(63% .015 268);--color-accent:oklch(55% .17 264);--color-accent-2:oklch(52% .18 292);--color-accent-hover:oklch(49% .17 264);--color-accent-soft:oklch(55% .17 264/.1);--color-accent-softer:oklch(55% .17 264/.06);--color-on-accent:oklch(99% .01 264);--gradient-brand:linear-gradient(135deg, oklch(58% .17 264), oklch(52% .18 292));--gradient-accent-btn:linear-gradient(180deg, oklch(58% .17 264), oklch(51% .17 268));--ring-accent:0 0 0 3px var(--color-accent-soft);--glass-bg:linear-gradient(180deg, oklch(100% 0 0/.86), oklch(99% .004 265/.78));--glass-border:oklch(100% 0 0/.6);--app-bg:radial-gradient(1200px 640px at 100% -12%, oklch(55% .17 264/.07), transparent 58%), radial-gradient(1000px 560px at -12% 4%, oklch(52% .18 292/.06), transparent 55%), radial-gradient(760px 520px at 60% 118%, oklch(58% .12 210/.045), transparent 60%), var(--color-surface);--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");--color-pending:oklch(66% .14 75);--color-approved:oklch(58% .14 158);--color-reversed:oklch(58% .2 25);--color-settled:oklch(55% .03 265);--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;--text-xs:.75rem;--text-sm:clamp(.8125rem, .79rem + .1vw, .875rem);--text-base:clamp(.9375rem, .9rem + .15vw, 1rem);--text-lg:clamp(1.125rem, 1rem + .4vw, 1.375rem);--text-xl:clamp(1.375rem, 1.15rem + .7vw, 1.75rem);--text-display:clamp(1.9rem, 1.3rem + 2vw, 3rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:22px;--shadow-xs:0 1px 2px oklch(24% .02 268/.06);--shadow-sm:0 1px 2px oklch(24% .02 268/.06), 0 2px 6px oklch(24% .02 268/.05);--shadow-card:0 1px 2px oklch(24% .02 268/.05), 0 6px 16px oklch(24% .02 268/.06), 0 12px 32px oklch(24% .02 268/.04);--shadow-lg:0 2px 4px oklch(24% .02 268/.06), 0 12px 28px oklch(24% .02 268/.1), 0 24px 60px oklch(24% .02 268/.08);--shadow-hover:0 4px 10px oklch(24% .02 268/.08), 0 18px 44px oklch(24% .02 268/.1), 0 32px 72px oklch(24% .02 268/.06);--shadow-accent:0 4px 14px oklch(55% .17 264/.35);--duration-fast:.15s;--duration-normal:.24s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--app-bg);min-height:100vh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;margin:0;line-height:1.55}body:before{content:"";z-index:0;pointer-events:none;background-image:var(--grain);opacity:.4;mix-blend-mode:multiply;background-size:140px 140px;position:fixed;inset:0}#root{z-index:1;position:relative}h1,h2,h3{font-family:var(--font-sans)}::selection{background:var(--color-accent-soft);color:var(--color-accent-hover)}.tabular{font-family:var(--font-mono);font-variant-numeric:tabular-nums}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border:3px solid var(--color-surface);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page{gap:var(--space-6);flex-direction:column;max-width:1160px;display:flex}.page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:relative}.page__header:after{content:"";background:var(--gradient-brand);border-radius:999px;width:56px;height:2px;position:absolute;bottom:-1px;left:0}.page__title{font-size:var(--text-display);letter-spacing:-.035em;margin:0;font-weight:780;line-height:1.02}.page__subtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin:var(--space-2) 0 0;max-width:62ch}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{gap:var(--space-3);flex-wrap:wrap;align-items:flex-end;display:flex}.grid-balances{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.balance-tile{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);background:radial-gradient(120% 90% at 100% 0%, var(--color-accent-softer), transparent 55%), var(--color-surface-raised);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-normal) var(--ease-out-expo);position:relative;overflow:hidden}.balance-tile:hover{box-shadow:var(--shadow-card);transform:translateY(-2px)}.balance-tile:before{content:"";background:var(--gradient-brand);width:3px;position:absolute;inset:0 auto 0 0}.balance-tile__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle);font-weight:600}.balance-tile__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:var(--space-2);font-size:clamp(1.5rem,1.2rem + 1vw,2rem);font-weight:600}.balance-tile__pending{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.muted{color:var(--color-text-muted)}.error-text{color:var(--color-reversed);font-size:var(--text-sm);font-weight:500}.link-cell{color:var(--color-accent);font-weight:600;text-decoration:none}.link-cell:hover{text-decoration:underline}.inline-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.mono{font-family:var(--font-mono);font-size:.8125rem}.reject-form{gap:var(--space-2);flex-direction:column;min-width:240px;display:flex}.reject-form textarea{resize:vertical;font:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text)}.reject-form textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.gate{min-height:100vh;padding:var(--space-6);background:radial-gradient(1100px 720px at 50% -22%, oklch(55% .17 264/.14), transparent 60%), radial-gradient(760px 560px at 100% 108%, oklch(52% .18 292/.12), transparent 58%), radial-gradient(680px 520px at 0% 90%, oklch(58% .12 210/.08), transparent 60%), var(--color-surface);place-items:center;display:grid;position:relative}.gate__inner{z-index:1;gap:var(--space-6);flex-direction:column;width:min(420px,100%);display:flex;position:relative}.gate__brand{align-items:center;gap:var(--space-3);justify-content:center;display:flex}.gate__logo{background:var(--gradient-brand);width:40px;height:40px;color:var(--color-on-accent);box-shadow:var(--shadow-accent);border-radius:12px;place-items:center;display:grid}.gate__brand-text{font-weight:700;font-size:var(--text-lg);letter-spacing:-.02em}.gate__brand-text span{color:var(--color-accent)}.gate .surface-card{box-shadow:var(--shadow-lg)}.lang-switch{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-sunken);gap:2px;padding:3px;display:inline-flex}.lang-switch__btn{appearance:none;color:var(--color-text-muted);font-size:var(--text-sm);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:2px 8px;font-weight:600;transition:background .12s,color .12s}.lang-switch__btn:hover{color:var(--color-text)}.lang-switch__btn.is-active{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-xs)}.app-shell{grid-template-columns:264px 1fr;min-height:100vh;display:grid}.app-shell__nav{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);border-right:1px solid var(--color-border);height:100vh;box-shadow:1px 0 0 var(--glass-border) inset;padding:var(--space-6) var(--space-4) var(--space-5);align-self:start;gap:var(--space-8);flex-direction:column;display:flex;position:sticky;top:0}.app-shell__brand{align-items:center;gap:var(--space-3);padding:0 var(--space-2);display:flex}.app-shell__logo{background:var(--gradient-brand);width:36px;height:36px;color:var(--color-on-accent);box-shadow:var(--shadow-accent);border-radius:11px;flex-shrink:0;place-items:center;display:grid;position:relative;overflow:hidden}.app-shell__logo:after{content:"";pointer-events:none;background:linear-gradient(150deg,oklch(100% 0 0/.45),#0000 46%);position:absolute;inset:0}.app-shell__brand-text{font-weight:700;font-size:var(--text-base);letter-spacing:-.02em;line-height:1.1}.app-shell__brand-text span{color:var(--color-accent)}.app-shell__nav-label{margin:0 0 var(--space-2);padding:0 var(--space-3);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-subtle);font-size:.6875rem;font-weight:700}.app-shell__nav ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.app-shell__nav-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo), color var(--duration-fast) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-expo);font-weight:550;text-decoration:none;display:flex;position:relative}.app-shell__nav-icon{color:var(--color-text-subtle);transition:color var(--duration-fast) var(--ease-out-expo);place-items:center;display:grid}.app-shell__nav-link:hover{color:var(--color-text);background:var(--color-surface-sunken);transform:translate(2px)}.app-shell__nav-link:hover .app-shell__nav-icon{color:var(--color-text-muted)}.app-shell__nav-link.active{background:linear-gradient(100deg, var(--color-accent-soft), color-mix(in oklch, var(--color-accent-2) 8%, transparent));color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent-softer);font-weight:650}.app-shell__nav-link.active:hover{transform:none}.app-shell__nav-link.active .app-shell__nav-icon{color:var(--color-accent)}.app-shell__nav-link.active:before{content:"";left:calc(-1 * var(--space-4) + 2px);background:var(--gradient-brand);border-radius:999px;width:3px;height:20px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 0 10px oklch(55% .17 264/.5)}.app-shell__nav-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-shell__user{gap:var(--space-3);flex-direction:column;margin-top:auto;display:flex}.app-shell__account{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-inset);display:flex}.app-shell__avatar{background:var(--gradient-brand);width:32px;height:32px;color:var(--color-on-accent);letter-spacing:.02em;border-radius:50%;flex-shrink:0;place-items:center;font-size:.75rem;font-weight:700;display:grid}.app-shell__account-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.app-shell__account-email{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.app-shell__user-role{padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;align-self:flex-start;font-size:.625rem;font-weight:700}.app-shell__signout{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text-muted);font:inherit;font-size:var(--text-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out-expo), border-color var(--duration-fast) var(--ease-out-expo), background var(--duration-fast) var(--ease-out-expo);font-weight:550}.app-shell__signout:hover:not(:disabled){color:var(--color-reversed);border-color:color-mix(in oklch, var(--color-reversed) 45%, transparent);background:color-mix(in oklch, var(--color-reversed) 7%, transparent)}.app-shell__signout:disabled{opacity:.55;cursor:not-allowed}.app-shell__main{padding:var(--space-10) var(--space-12);min-width:0}@media (width<=768px){.app-shell{grid-template-columns:1fr}.app-shell__nav{border-right:none;border-bottom:1px solid var(--color-border);gap:var(--space-5);height:auto;position:static}.app-shell__main{padding:var(--space-6) var(--space-4)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);font:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-fast) var(--ease-out-expo), border-color var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-expo);border:1px solid #0000;font-weight:600;line-height:1.2;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn--primary{background:var(--gradient-accent-btn);color:var(--color-on-accent);box-shadow:var(--shadow-accent);position:relative;overflow:hidden}.btn--primary:before{content:"";pointer-events:none;background:linear-gradient(oklch(100% 0 0/.22),#0000);height:50%;position:absolute;inset:0 0 auto}.btn--primary:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 8px 22px oklch(55% .17 264/.45)}.btn--ghost{background:var(--color-surface-raised);border-color:var(--color-border-strong);color:var(--color-text);box-shadow:var(--shadow-xs)}.btn--ghost:hover:not(:disabled){background:var(--color-surface-sunken);border-color:var(--color-text-subtle)}.btn--danger{border-color:color-mix(in oklch, var(--color-reversed) 40%, transparent);color:var(--color-reversed);background:0 0}.btn--danger:hover:not(:disabled){background:color-mix(in oklch, var(--color-reversed) 10%, transparent);border-color:color-mix(in oklch, var(--color-reversed) 60%, transparent)}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{font-size:var(--text-xs);letter-spacing:.01em;color:var(--color-text-muted);font-weight:600}.field__input{font:inherit;font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-raised);color:var(--color-text);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast) var(--ease-out-expo)}.field__input::placeholder{color:var(--color-text-subtle)}.field__input:hover:not(:focus):not(:disabled){border-color:var(--color-text-subtle)}.field__input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.field__input:disabled{background:var(--color-surface-sunken);color:var(--color-text-muted);cursor:not-allowed}.field__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.surface-card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-normal) var(--ease-out-expo), border-color var(--duration-normal) var(--ease-out-expo);position:relative;overflow:hidden}.surface-card:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--color-accent) 30%, transparent), color-mix(in oklch, var(--color-accent-2) 30%, transparent), transparent);opacity:0;height:1px;transition:opacity var(--duration-normal) var(--ease-out-expo);position:absolute;inset:0 0 auto}.surface-card:hover{box-shadow:var(--shadow-hover);border-color:var(--color-border-strong);transform:translateY(-2px)}.surface-card:hover:after{opacity:1}.surface-card__header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);background:linear-gradient(180deg, var(--color-surface-inset), var(--color-surface-raised));display:flex}.surface-card__title{align-items:center;gap:var(--space-3);font-size:var(--text-base);letter-spacing:-.01em;margin:0;font-weight:650;display:flex}.surface-card__title:before{content:"";background:var(--gradient-brand);border-radius:999px;flex-shrink:0;width:3px;height:1.05em}.surface-card__actions{align-items:center;gap:var(--space-2);display:flex}.surface-card__body{padding:var(--space-6)}.status-badge{align-items:center;gap:var(--space-1);letter-spacing:.01em;padding:2px var(--space-2);white-space:nowrap;border:1px solid;border-radius:999px;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-badge--pending{color:var(--color-pending);background:color-mix(in oklch, var(--color-pending) 12%, transparent)}.status-badge--approved{color:var(--color-approved);background:color-mix(in oklch, var(--color-approved) 12%, transparent)}.status-badge--reversed{color:var(--color-reversed);background:color-mix(in oklch, var(--color-reversed) 12%, transparent)}.status-badge--settled{color:var(--color-settled);background:color-mix(in oklch, var(--color-settled) 14%, transparent)}.status-badge--neutral{color:var(--color-text-muted);background:var(--color-surface-sunken)}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table thead th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-subtle);padding:var(--space-3);background:var(--color-surface-inset);border-bottom:1px solid var(--color-border);white-space:nowrap;font-size:.6875rem;font-weight:700;position:sticky;top:0}.data-table td{padding:var(--space-3);border-bottom:1px solid var(--color-surface-sunken);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background-color var(--duration-fast) var(--ease-out-expo)}.data-table tbody tr:hover{background:var(--color-accent-softer)}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums}.data-table__empty{padding:var(--space-10);text-align:center;color:var(--color-text-muted)}.table-scroll{max-height:70vh;overflow:auto}.ledger-filter{align-items:center;gap:var(--space-2);display:inline-flex}.ledger-filter__label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;font-weight:600}.ledger-filter__select{cursor:pointer;min-width:180px}.ledger-edit-row>td{background:var(--color-surface-inset);padding:var(--space-4) var(--space-3)}.ledger-edit{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.ledger-edit__hint{font-size:var(--text-xs);color:var(--color-text-muted);flex-basis:100%}.ledger-edit__reason{flex:260px;min-width:220px}.correction-tag{margin-left:var(--space-2);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--color-accent-softer);color:var(--color-accent);text-transform:uppercase;letter-spacing:.06em;cursor:help;vertical-align:middle;font-size:.625rem;font-weight:700;display:inline-block}.pager{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.pager__info{font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.pager__actions{gap:var(--space-2);display:flex}.portal-page{gap:var(--space-6);flex-direction:column;display:flex}.portal-page__head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.portal-page__head h1{font-size:var(--text-display);letter-spacing:-.02em;margin:0}.portal-balances{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.portal-balance{gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);flex-direction:column;display:flex}.portal-balance__label{font-size:var(--text-sm);color:var(--color-text-muted)}.portal-balance__value{font-size:var(--text-lg);font-weight:700}.portal-balance__sub{font-size:var(--text-sm)}.portal-rate{font-size:var(--text-base);margin:0}
