@charset "UTF-8";:root{--c-primary: #1d4ed8;--c-primary-hover: #1a45c4;--c-primary-active: #1e40af;--c-primary-soft: #eef3fe;--c-primary-border: #c3d0f4;--c-accent: #f59e0b;--c-accent-strong: #b45309;--c-accent-soft: #fff7e8;--c-bg: #f5f7fb;--c-bg-elevated: #fff;--c-surface-sunken: #f1f4f9;--c-text: #1f2937;--c-text-muted: #5b6779;--c-text-on-primary: #fff;--c-border: #dde3ed;--c-border-strong: #79839a;--c-danger: #b91c1c;--c-danger-hover: #a01818;--c-danger-active: #8f1515;--c-danger-soft: #fef2f2;--c-danger-border: #f3b9b9;--c-success: #15803d;--c-success-soft: #f0fdf4;--c-focus-ring: #111827;--c-stage: #0f172a;--c-stage-text: #fff;--c-stage-muted: #cbd5e1;--c-scan-ok: #4ade80;--c-child-1: #f97316;--c-child-2: #f59e0b;--c-child-3: #84cc16;--c-child-4: #22c55e;--c-child-5: #14b8a6;--c-child-6: #0ea5e9;--c-child-7: #3b82f6;--c-child-8: #9333ea;--c-child-9: #ec4899;--c-child-10: #f43f5e;--c-child: var(--c-primary);--c-avatar-ink: #111827;--c-avatar-paper: #fff;--c-scrim: rgb(16 24 40 / 45%);--c-skeleton: #e7ecf3;--c-skeleton-hi: #f4f7fb;--font-sans: system-ui, -apple-system, "Segoe UI", roboto, "Noto Sans", "Helvetica Neue", arial, sans-serif;--fs-300: .8125rem;--fs-400: 1rem;--fs-500: 1.125rem;--fs-600: 1.375rem;--fs-700: 1.75rem;--fs-800: 2.25rem;--lh-tight: 1.2;--lh-normal: 1.5;--fw-regular: 400;--fw-semibold: 600;--fw-bold: 700;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4rem;--r-sm: 8px;--r-md: 12px;--r-lg: 20px;--r-full: 999px;--sh-1: 0 1px 2px rgb(16 24 40 / 6%), 0 1px 3px rgb(16 24 40 / 10%);--sh-2: 0 4px 14px rgb(29 78 216 / 24%);--sh-3: 0 12px 32px rgb(16 24 40 / 16%);--container: 30rem;--container-wide: 64rem;--header-h: 3.5rem;--tap-min: 2.75rem;--tap-comfy: 3.5rem;--tap-hero: 4.5rem;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-size:var(--fs-400);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}img,svg{display:block;max-width:100%}a{color:var(--c-primary)}:focus-visible{outline:3px solid var(--c-focus-ring);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--sp-4)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;left:var(--sp-4);top:-4rem;z-index:100;background:var(--c-bg-elevated);color:var(--c-primary);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);box-shadow:var(--sh-1);transition:top .15s ease}.skip-link:focus-visible{top:var(--sp-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tap-comfy);padding-inline:var(--sp-5);border:2px solid transparent;border-radius:var(--r-md);font-size:var(--fs-500);font-weight:var(--fw-semibold);line-height:var(--lh-tight);text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .06s ease}.btn--block{width:100%}.btn__icon{width:1.5rem;height:1.5rem;flex:none}.btn--primary{background:var(--c-primary);color:var(--c-text-on-primary);box-shadow:var(--sh-2)}.btn--primary:active{background:var(--c-primary-active);box-shadow:none;transform:translateY(1px)}.btn--primary:disabled:not([aria-busy=true]){background:var(--c-border);color:var(--c-text-muted);box-shadow:none;cursor:not-allowed;transform:none}.btn--primary[aria-busy=true]{background:var(--c-primary-active);box-shadow:none;cursor:progress}.btn--secondary{background:var(--c-bg-elevated);color:var(--c-primary);border-color:var(--c-primary)}.btn--secondary:active{background:var(--c-primary-soft);transform:translateY(1px)}.btn--danger{background:var(--c-danger);color:var(--c-text-on-primary)}.btn--danger:active{background:var(--c-danger-active);transform:translateY(1px)}.btn--danger:disabled:not([aria-busy=true]){background:var(--c-border);color:var(--c-text-muted);cursor:not-allowed;transform:none}.btn--danger[aria-busy=true]{background:var(--c-danger-active);cursor:progress}.btn-quiet--danger{color:var(--c-danger)}.btn--hero{min-height:var(--tap-hero);border-radius:var(--r-lg);font-size:var(--fs-600)}.btn--hero .btn__icon{width:2rem;height:2rem}.link{display:inline-flex;align-items:center;min-height:var(--tap-min);padding-inline:var(--sp-2);color:var(--c-primary);font-weight:var(--fw-semibold);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.btn-quiet{display:inline-flex;align-items:center;gap:var(--sp-2);min-height:var(--tap-min);padding-inline:var(--sp-2);background:none;border:0;border-radius:var(--r-sm);color:var(--c-text-muted);font-size:var(--fs-400);font-weight:var(--fw-semibold);cursor:pointer}.btn-quiet__icon{width:1.25rem;height:1.25rem}@media(hover:hover){.btn--primary:hover{background:var(--c-primary-hover)}.btn--secondary:hover{background:var(--c-primary-soft)}.link:hover{color:var(--c-primary-active)}.btn--danger:hover{background:var(--c-danger-hover)}.btn-quiet:hover{color:var(--c-text);background:var(--c-surface-sunken)}.btn-quiet--danger:hover{color:var(--c-danger);background:var(--c-danger-soft)}}.field{display:flex;flex-direction:column}.field__label{font-weight:var(--fw-semibold);margin-bottom:var(--sp-2)}.field__control{position:relative}.field__input{width:100%;min-height:var(--tap-comfy);padding:0 var(--sp-4);font-size:var(--fs-400);background:var(--c-bg-elevated);color:var(--c-text);border:2px solid var(--c-border-strong);border-radius:var(--r-md);transition:border-color .15s ease}.field__input--with-action{padding-right:3.5rem}.field__input::placeholder{color:var(--c-text-muted)}.field__input:focus-visible{border-color:var(--c-primary);outline:3px solid var(--c-focus-ring);outline-offset:2px}.field__input[aria-invalid=true]{border-color:var(--c-danger)}.field__input:disabled{background:var(--c-surface-sunken);color:var(--c-text-muted);border-color:var(--c-border);cursor:not-allowed}.field__hint{margin-top:var(--sp-2);font-size:var(--fs-300);color:var(--c-text-muted)}.field__action{position:absolute;right:4px;top:50%;translate:0 -50%;width:3rem;height:3rem;display:grid;place-items:center;background:none;border:0;border-radius:var(--r-sm);color:var(--c-text-muted);cursor:pointer}.field__action svg{width:1.25rem;height:1.25rem}.field__error{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--fs-300);color:var(--c-danger)}.field__error-icon{width:1rem;height:1rem;flex:none}@media(hover:hover){.field__input:hover{border-color:var(--c-text-muted)}.field__action:hover{color:var(--c-text);background:var(--c-surface-sunken)}}.card{display:flex;flex-direction:column;gap:var(--sp-4);background:var(--c-bg-elevated);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--sh-1)}.card__title{font-size:var(--fs-600);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.card__lead{color:var(--c-text-muted)}.alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid transparent;border-left-width:4px;border-radius:var(--r-sm)}.alert__icon{width:1.25rem;height:1.25rem;flex:none;margin-top:2px}.alert--error{background:var(--c-danger-soft);border-color:var(--c-danger-border);border-left-color:var(--c-danger);color:var(--c-danger)}.alert--info{background:var(--c-primary-soft);border-color:var(--c-primary-border);border-left-color:var(--c-primary);color:var(--c-text)}.alert--warning{background:var(--c-accent-soft);border-color:var(--c-accent);border-left-color:var(--c-accent-strong);color:var(--c-text)}.alert--warning .alert__icon{color:var(--c-accent-strong)}.offline-banner{display:block}.offline-banner:empty{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.offline-banner .alert{font-size:var(--fs-400);font-weight:var(--fw-semibold)}.alert:focus-visible{outline:3px solid var(--c-focus-ring);outline-offset:2px}.badge{align-self:center;display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);font-size:var(--fs-300);font-weight:var(--fw-semibold)}.badge--soon{background:var(--c-accent-soft);color:var(--c-accent-strong)}.badge--soon:before{content:"";width:.5rem;height:.5rem;border-radius:var(--r-full);background:var(--c-accent)}.spinner{display:inline-block;width:1.25rem;height:1.25rem;flex:none;border:3px solid currentcolor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.spinner--lg{width:2rem;height:2rem;border-width:4px;color:var(--c-primary)}@keyframes spin{to{rotate:360deg}}html:has(dialog[open]){overflow:hidden}.modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.modal__close{display:grid;place-items:center;flex:none;width:var(--tap-min);height:var(--tap-min);margin:calc(var(--sp-2) * -1) calc(var(--sp-2) * -1) 0 0;background:none;border:0;border-radius:var(--r-sm);color:var(--c-text-muted);cursor:pointer}.modal__close svg{width:1.25rem;height:1.25rem}.modal__actions{display:flex;flex-direction:column-reverse;gap:var(--sp-3)}.modal__actions .btn{width:100%}@media(hover:hover){.modal__close:hover{color:var(--c-text);background:var(--c-surface-sunken)}}.amount{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:var(--fw-bold)}.amount--credit{color:var(--c-success)}.amount--debit{color:var(--c-danger)}.skeleton{display:block;border-radius:var(--r-md);background:linear-gradient(90deg,var(--c-skeleton) 0%,var(--c-skeleton-hi) 50%,var(--c-skeleton) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(min-width:30rem){.modal__actions{flex-direction:row;justify-content:flex-end}.modal__actions .btn{width:auto}}@media(min-width:48rem){.card{padding:var(--sp-6)}}@media(min-width:64rem){body{background:radial-gradient(60rem 40rem at 50% -10%,#fff,var(--c-bg))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner{animation:spin 2.4s linear infinite!important}}
