*,:before,:after{box-sizing:border-box}html,body{-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;height:100%;margin:0;padding:0}#root{height:100%}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root{--font-display:"Syne", sans-serif;--font-body:"Figtree", sans-serif;--font-mono:"IBM Plex Mono", monospace;--navy-950:#f4f6fb;--navy-900:#f0f3f9;--navy-800:#fff;--navy-700:#fff;--navy-600:#f4f6fb;--navy-500:#e2e8f2;--navy-400:#c8d3e4;--navy-300:#94a3b8;--gold-500:#b8860b;--gold-400:#c49727;--gold-300:#d4a843;--gold-glow:#b8860b1a;--gold-ring:#b8860b47;--text-primary:#0d1625;--text-secondary:#4a5a72;--text-tertiary:#8a9ab8;--credit-color:#047857;--debit-color:#dc2626;--pending-color:#b45309;--pending-bg:#b453090d;--pending-border:#b4530933;--type-chequing:#b8860b;--type-savings:#047857;--type-credit:#be185d;--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-8:3rem;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--shadow-card:0 1px 3px #0d162512, 0 4px 16px #0d16250d;--shadow-card-hover:0 2px 8px #0d162517, 0 8px 32px #0d162512, 0 0 0 1px var(--navy-400);--shadow-dropdown:0 4px 24px #0d16251c, 0 0 0 1px var(--navy-400);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.1s;--dur-base:.22s}html{font-family:var(--font-body)}body{background-color:var(--navy-900);color:var(--text-primary);background-image:radial-gradient(circle,#94a3b847 1px,#0000 1px);background-size:28px 28px;background-attachment:fixed;font-size:.9375rem;line-height:1.6}.teller-shell{flex-direction:column;min-height:100dvh;display:flex}.teller-header{padding:0 var(--s-6);background:var(--navy-800);border-bottom:1px solid var(--navy-500);justify-content:space-between;align-items:center;gap:var(--s-4);z-index:100;height:56px;box-shadow:0 1px 0 var(--navy-500), 0 4px 16px #0d16250f;flex-shrink:0;display:flex;position:sticky;top:0}.teller-header__brand{align-items:center;gap:var(--s-3);display:flex}.teller-header__logo{background:var(--gold-500);border-radius:var(--r-sm);width:28px;height:28px;font-family:var(--font-display);color:#fff;letter-spacing:0;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.6875rem;font-weight:800;display:flex}.teller-header__title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.14em;text-transform:uppercase;font-size:.8125rem;font-weight:700}.teller-header__divider{background:var(--navy-400);flex-shrink:0;width:1px;height:18px}.teller-header__subtitle{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.1em;text-transform:uppercase;font-size:.625rem}.teller-header__controls{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.teller-header__avatar{background:var(--navy-600);border:1px solid var(--navy-400);width:28px;height:28px;font-family:var(--font-display);color:var(--text-secondary);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.6875rem;font-weight:700;display:inline-flex}.teller-header__user{color:var(--text-secondary);white-space:nowrap;font-size:.8125rem;font-family:var(--font-body)}.teller-header__reset-confirm{gap:var(--s-2);display:flex}.teller-main{padding:var(--s-6);gap:var(--s-6);flex-direction:column;flex:1;width:100%;max-width:1200px;margin:0 auto;display:flex}.teller-section-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary);margin:0 0 var(--s-4);align-items:center;gap:var(--s-3);font-size:.6875rem;font-weight:700;display:flex}.teller-section-title:before{content:"";background:var(--gold-500);border-radius:2px;flex-shrink:0;width:3px;height:12px;display:block}.teller-customer-header{padding:0}.teller-customer-name{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700}.teller-search-section{background:var(--navy-700);border:1px solid var(--navy-500);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-card)}.teller-selected-customer{margin:var(--s-3) 0 0;color:var(--text-secondary);font-size:.875rem}.teller-selected-customer strong{color:var(--gold-500);font-weight:600}.teller-no-customer{text-align:center;color:var(--text-tertiary);padding:var(--s-8) 0;font-family:var(--font-mono);letter-spacing:.04em;font-size:.875rem}.teller-loading{height:200px;color:var(--text-tertiary);font-family:var(--font-mono);letter-spacing:.06em;justify-content:center;align-items:center;font-size:.875rem;display:flex}.teller-empty-history{color:var(--text-tertiary);font-size:.875rem;font-family:var(--font-mono);padding:var(--s-5) 0;letter-spacing:.02em;margin:0}.btn{justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-md);font-size:.8125rem;font-family:var(--font-body);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);white-space:nowrap;border:1px solid #0000;padding:6px 14px;font-weight:500;line-height:1.4;display:inline-flex}.btn--primary{background:var(--gold-500);color:#fff;font-weight:600}.btn--primary:hover{background:var(--gold-400)}.btn--secondary{background:var(--navy-600);border-color:var(--navy-500);color:var(--text-secondary)}.btn--secondary:hover{border-color:var(--navy-400);color:var(--text-primary);background:var(--navy-500)}.btn--danger{color:var(--debit-color);background:#dc26260f;border-color:#dc26264d}.btn--danger:hover{background:#dc26261f}.btn--ghost{border-color:var(--navy-500);color:var(--text-secondary);background:0 0}.btn--ghost:hover{border-color:var(--navy-400);color:var(--text-primary)}.connection-status{font-family:var(--font-mono);letter-spacing:.06em;border-radius:var(--r-pill);border:1px solid var(--navy-400);background:var(--navy-600);align-items:center;gap:6px;padding:4px 10px;font-size:.6875rem;display:inline-flex}.connection-status__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;position:relative}.connection-status--live .connection-status__dot{background:var(--credit-color);box-shadow:0 0 5px #04785780}.connection-status--live .connection-status__dot:after{content:"";border:1px solid var(--credit-color);border-radius:50%;animation:2.4s ease-out infinite live-ring;position:absolute;inset:-3px}@keyframes live-ring{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.connection-status--live .connection-status__label{color:var(--credit-color)}.connection-status--reconnecting .connection-status__dot{background:var(--pending-color);animation:1s ease-in-out infinite pulse}.connection-status--reconnecting .connection-status__label{color:var(--pending-color)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.connection-status--live .connection-status__dot:after,.connection-status--reconnecting .connection-status__dot{animation:none}}.customer-search{gap:var(--s-2);flex-direction:column;display:flex}.customer-search__label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);font-size:.625rem;font-weight:700}.customer-search__input-wrap{position:relative}.customer-search__input-wrap:before{content:"";pointer-events:none;width:14px;height:14px;transition:background var(--dur-fast);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='6.5' cy='6.5' r='4.5' stroke='%238a9ab8' stroke-width='1.5'/%3E%3Cpath d='m10.5 10.5 3 3' stroke='%238a9ab8' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") 50%/contain no-repeat;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.customer-search__input-wrap:focus-within:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='6.5' cy='6.5' r='4.5' stroke='%23b8860b' stroke-width='1.5'/%3E%3Cpath d='m10.5 10.5 3 3' stroke='%23b8860b' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}.customer-search__input{background:var(--navy-900);border:1px solid var(--navy-500);border-radius:var(--r-md);width:100%;color:var(--text-primary);font-family:var(--font-body);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);-webkit-appearance:none;outline:none;padding:10px 14px 10px 36px;font-size:.9375rem}.customer-search__input::placeholder{color:var(--text-tertiary)}.customer-search__input:focus{border-color:var(--gold-500);box-shadow:0 0 0 3px var(--gold-glow);background:var(--navy-800)}.customer-search__hint,.customer-search__no-results{font-family:var(--font-mono);color:var(--text-tertiary);margin:var(--s-2) 0 0;letter-spacing:.03em;font-size:.75rem}.customer-search__error{font-family:var(--font-mono);color:var(--debit-color);margin:var(--s-2) 0 0;font-size:.75rem}.customer-search__results{margin:var(--s-2) 0 0;background:var(--navy-800);border:1px solid var(--navy-400);border-radius:var(--r-md);box-shadow:var(--shadow-dropdown);animation:dropdown-appear var(--dur-base) var(--ease-out) both;padding:0;list-style:none;overflow:hidden}@keyframes dropdown-appear{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.customer-search__results{animation:none}}.customer-search__result{justify-content:space-between;align-items:center;gap:var(--s-4);padding:12px var(--s-4);cursor:pointer;border-bottom:1px solid var(--navy-500);transition:background var(--dur-fast);display:flex}.customer-search__result:last-child{border-bottom:none}.customer-search__result:hover{background:var(--navy-600)}.customer-search__result:hover .customer-search__result-name{color:var(--gold-500)}.customer-search__result-name{color:var(--text-primary);transition:color var(--dur-fast);font-size:.9375rem;font-weight:500}.customer-search__result-email{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:.6875rem}.account-selector{align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.account-selector__label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary);white-space:nowrap;font-size:.625rem;font-weight:700}.account-selector__wrap{display:inline-flex;position:relative}.account-selector__wrap:after{content:"";pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%234a5a72' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;width:10px;height:6px;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.account-selector__select{appearance:none;background:var(--navy-800);border:1px solid var(--navy-500);border-radius:var(--r-md);color:var(--text-primary);font-family:var(--font-body);cursor:pointer;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);outline:none;min-width:180px;padding:8px 32px 8px 12px;font-size:.875rem}.account-selector__select:focus{border-color:var(--gold-500);box-shadow:0 0 0 3px var(--gold-glow)}.teller-accounts__grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.account-card{background:var(--navy-700);border:1px solid var(--navy-500);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-card);transition:box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base);position:relative;overflow:hidden}.account-card:before{content:"";background:var(--type-chequing);border-radius:var(--r-lg) var(--r-lg) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.account-card[data-type=savings]:before{background:var(--type-savings)}.account-card[data-type=credit]:before{background:var(--type-credit)}.account-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.account-card__header{margin-bottom:var(--s-4);justify-content:space-between;align-items:flex-start;gap:var(--s-2);display:flex}.account-card__name-group{flex-direction:column;gap:2px;display:flex}.account-card__name{font-family:var(--font-display);color:var(--text-primary);letter-spacing:.01em;font-size:.9375rem;font-weight:700}.account-card__id{font-family:var(--font-mono);color:var(--text-tertiary);letter-spacing:.06em;font-size:.625rem}.account-card__type-badge{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--r-pill);flex-shrink:0;padding:3px 8px;font-size:.5625rem;font-weight:600}.account-card[data-type=chequing] .account-card__type-badge{color:var(--type-chequing);background:#b8860b14;border:1px solid #b8860b38}.account-card[data-type=savings] .account-card__type-badge{color:var(--type-savings);background:#04785712;border:1px solid #04785733}.account-card[data-type=credit] .account-card__type-badge{color:var(--type-credit);background:#be185d12;border:1px solid #be185d33}.account-card__balance{font-family:var(--font-mono);color:var(--text-primary);letter-spacing:-.02em;margin-bottom:var(--s-2);font-variant-numeric:tabular-nums;font-size:1.875rem;font-weight:600;line-height:1}.account-card__balance--negative{color:var(--debit-color)}.account-card__credit-info{gap:var(--s-2) 0;margin-top:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--navy-500);grid-template-columns:1fr 1fr;display:grid}.account-card__credit-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;color:var(--text-tertiary);align-self:center;font-size:.625rem;font-weight:700}.account-card__credit-value,.account-card__credit-available{font-family:var(--font-mono);color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;font-size:.875rem;font-weight:500}@keyframes card-flash{0%{background:var(--navy-700)}30%{background:#b8860b12}to{background:var(--navy-700)}}.account-card--updated{animation:card-flash 1.2s var(--ease-out)}@media (prefers-reduced-motion:reduce){.account-card--updated{animation:none}}.pending-etransfers{background:var(--pending-bg);border:1px solid var(--pending-border);border-radius:var(--r-lg);padding:var(--s-5);position:relative;overflow:hidden}.pending-etransfers:before{content:"";background:var(--pending-color);border-radius:var(--r-lg) 0 0 var(--r-lg);width:3px;position:absolute;top:0;bottom:0;left:0}.pending-etransfers__header{margin-bottom:var(--s-4)}.pending-etransfers__title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--pending-color);align-items:center;gap:var(--s-2);margin:0;font-size:.6875rem;font-weight:700;display:flex}.pending-etransfers__badge{background:var(--pending-color);color:#fff;border-radius:var(--r-pill);min-width:18px;height:18px;font-family:var(--font-mono);justify-content:center;align-items:center;padding:0 5px;font-size:.625rem;font-weight:700;display:inline-flex}.pending-etransfers__empty{font-family:var(--font-mono);color:#b4530973;letter-spacing:.03em;margin:0;font-size:.8125rem}.pending-etransfers__list{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.pending-etransfers__item{align-items:center;gap:var(--s-4);padding:10px var(--s-4);border-radius:var(--r-md);transition:background var(--dur-fast);background:#b4530908;border:1px solid #b453091a;grid-template-columns:1fr auto auto;display:grid}.pending-etransfers__item:hover{background:#b4530912}.pending-etransfers__recipient{color:var(--text-primary);font-size:.875rem;font-weight:500}.pending-etransfers__amount{font-family:var(--font-mono);color:var(--debit-color);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:600}.pending-etransfers__source{font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap;font-size:.6875rem}.transaction-table-section{background:var(--navy-700);border:1px solid var(--navy-500);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}.transaction-table-section__title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary);padding:14px var(--s-5);border-bottom:1px solid var(--navy-500);align-items:center;gap:var(--s-3);background:var(--navy-900);margin:0;font-size:.6875rem;font-weight:700;display:flex}.transaction-table-section__title:before{content:"";background:var(--gold-500);border-radius:2px;flex-shrink:0;width:3px;height:10px;display:block}.transaction-table-section__empty{color:var(--text-tertiary);font-family:var(--font-mono);padding:var(--s-5);margin:0;font-size:.8125rem}.transaction-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.transaction-table{border-collapse:collapse;width:100%;font-size:.875rem}.transaction-table thead th{text-align:left;padding:10px var(--s-5);color:var(--text-tertiary);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--navy-500);background:var(--navy-900);white-space:nowrap;font-size:.5625rem;font-weight:700}.transaction-table tbody td{padding:11px var(--s-5);border-bottom:1px solid var(--navy-500);color:var(--text-primary);vertical-align:middle}.transaction-table tbody tr:last-child td{border-bottom:none}.transaction-table tbody tr:hover td{background:var(--navy-600)}.transaction-table tbody tr[data-sign=debit] td:first-child{padding-left:calc(var(--s-5) - 2px);border-left:2px solid #dc262659}.transaction-table tbody tr[data-sign=credit] td:first-child{padding-left:calc(var(--s-5) - 2px);border-left:2px solid #04785759}.transaction-table__amount-col{text-align:right!important}.transaction-table__date{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:.75rem}.transaction-table__merchant{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:500;overflow:hidden}.transaction-table__category-cell{white-space:nowrap}.transaction-table__category-badge{font-family:var(--font-mono);letter-spacing:.05em;border-radius:var(--r-pill);background:var(--navy-600);border:1px solid var(--navy-500);color:var(--text-secondary);white-space:nowrap;padding:2px 8px;font-size:.625rem;display:inline-block}.transaction-table__debit,.transaction-table__credit{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.875rem;font-weight:600}.transaction-table__debit{color:var(--debit-color)}.transaction-table__credit{color:var(--credit-color)}.login-scene{background:var(--navy-900);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.login-scene__aurora{filter:blur(80px);pointer-events:none;will-change:transform;background:radial-gradient(at 60% 40%,#b8860b17 0%,#0000 55%),radial-gradient(at 30% 70%,#0478570d 0%,#0000 55%);width:200%;height:200%;animation:18s ease-in-out infinite alternate aurora-float;position:absolute;inset:-50%}.login-scene__aurora--2{background:radial-gradient(at 75% 60%,#b8860b0f 0%,#0000 50%),radial-gradient(at 20% 35%,#c8d3e466 0%,#0000 60%);animation-duration:24s;animation-delay:-10s}@keyframes aurora-float{0%{transform:translate(-4%,-3%)scale(1)}to{transform:translate(4%,3%)scale(1.04)}}@media (prefers-reduced-motion:reduce){.login-scene__aurora{opacity:.5;animation:none}}.login-scene__content{z-index:1;align-items:center;gap:var(--s-5);animation:scene-enter var(--dur-base) var(--ease-out) both;flex-direction:column;display:flex;position:relative}@keyframes scene-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.login-scene__content{animation:none}}.login-scene__mark{align-items:center;gap:var(--s-3);flex-direction:column;display:flex}.login-scene__wordmark{font-family:var(--font-display);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-500);text-align:center;margin:0;font-size:1.375rem;font-weight:800}.login-scene__sub{font-family:var(--font-mono);letter-spacing:.18em;color:var(--text-tertiary);text-transform:uppercase;text-align:center;margin:0;font-size:.625rem}.login-scene__denied{color:var(--debit-color);border-radius:var(--r-md);padding:10px var(--s-5);font-family:var(--font-mono);text-align:center;background:#dc26260f;border:1px solid #dc262638;max-width:320px;margin:0;font-size:.8125rem}.login-scene__gsi{justify-content:center;display:flex}@media (width<=768px){.teller-header{padding:0 var(--s-4)}.teller-header__divider,.teller-header__subtitle{display:none}.teller-main{padding:var(--s-4);gap:var(--s-4)}.teller-accounts__grid{grid-template-columns:1fr}.pending-etransfers__item{grid-template-rows:auto auto;grid-template-columns:1fr auto}.pending-etransfers__source{grid-column:1/-1}.account-selector{flex-direction:column;align-items:flex-start}.account-selector__select{min-width:100%}.teller-customer-name{font-size:1.375rem}}
