:root{--background:#f4f7fb;--card:#ffffff;--text:#172033;--muted:#6b7280;--line:#e5e7eb;--blue:#2457ff;--blue-dark:#183cc3;--blue-soft:#edf2ff;--green:#087a46;--red:#c62828;--red-soft:#fff1f1;--warning:#8a5a00;--warning-soft:#fff8e8}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--background);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}a{color:var(--blue)}.shell{width:min(100% - 32px,560px);margin:0 auto;padding:40px 0 56px}.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 10px 30px rgba(20,30,55,.06)}.auth-shell{min-height:100vh;display:grid;place-items:center}.auth-card{width:100%}.eyebrow,.step-badge{margin:0 0 8px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.auth-title,.onboarding-title{margin:0;line-height:1.08}.auth-title{font-size:34px}.onboarding-title{font-size:clamp(30px,8vw,42px)}.auth-copy,.onboarding-copy{margin:12px 0 24px;line-height:1.55}.muted{color:var(--muted)}.form-stack{grid-gap:18px;gap:18px}.field,.form-stack{display:grid;min-width:0}.field{grid-gap:8px;gap:8px;font-size:14px;font-weight:700}.field input,.field select,.month-selectors select{width:100%;min-height:48px;border:1px solid #cfd5df;border-radius:12px;background:#fff;color:var(--text);padding:0 13px;outline:none}.date-input{width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;display:block;cursor:pointer}.field input:focus,.field select:focus,.month-selectors select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,87,255,.12)}.choice,.compact-button,.danger-button,.primary-button,.secondary-button{min-height:48px;border-radius:12px;font-weight:800;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease}.primary-button{border:0;background:var(--blue);color:#fff;padding:0 18px}.primary-button:not(:disabled):hover{background:var(--blue-dark)}.primary-button:disabled{cursor:wait;opacity:.65}.choice:not(:disabled):hover,.compact-button:not(:disabled):hover,.secondary-button:not(:disabled):hover{border-color:#aeb7c5;background:#f7f9fc}.danger-button:not(:disabled):hover,.danger-compact:not(:disabled):hover{border-color:#d98f8f;background:var(--red-soft)}.choice:not(:disabled):active,.compact-button:not(:disabled):active,.danger-button:not(:disabled):active,.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active{transform:translateY(1px)}.secondary-button{border:1px solid #cfd5df;background:#fff;color:var(--text);padding:0 18px}.danger-button{border:1px solid #e8b5b5;background:#fff;color:var(--red);padding:0 18px}.compact-button{min-height:38px;border:1px solid #cfd5df;background:#fff;color:var(--text);padding:0 12px;font-size:13px}.compact-button:disabled{cursor:not-allowed;opacity:.45}.button-link,.link-button{display:grid;place-items:center;text-decoration:none}.full-width{width:100%}a:focus-visible,button:focus-visible,input[type=checkbox]:focus-visible,select:focus-visible{outline:3px solid rgba(36,87,255,.28);outline-offset:2px}.checkbox-row,.checkbox-row input{cursor:pointer}a:not(.transaction-row):not(.button-link):not(.link-button):hover{color:var(--blue-dark)}.auth-footer{margin:22px 0 0;text-align:center;color:var(--muted);font-size:14px}.auth-field-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-field-heading a{font-size:12px;font-weight:700;text-decoration:none}.auth-inline-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:10px}.alert{border-radius:12px;padding:12px 14px;margin:0 0 18px;font-size:14px;line-height:1.45}.error-alert{background:var(--red-soft);border:1px solid #f0c2c2;color:#8e1f1f}.notice-alert{display:grid;grid-gap:6px;gap:6px;background:var(--blue-soft);border:1px solid #cbd7ff;color:#233d8f}.warning-alert{display:grid;grid-gap:7px;gap:7px;background:var(--warning-soft);border:1px solid #ecd8a5;color:#674500}.warning-actions{display:flex;gap:8px;margin-top:4px}.small-button{min-height:38px}.onboarding-shell{width:min(100% - 28px,680px)}.onboarding-card{display:grid;grid-gap:24px;gap:24px}.money-input{display:flex;align-items:center;min-height:48px;border:1px solid #cfd5df;border-radius:12px;background:#fff;overflow:hidden}.money-input:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,87,255,.12)}.money-input.money-input-invalid{border-color:var(--red)}.money-input.money-input-invalid:focus-within{border-color:var(--red);box-shadow:0 0 0 3px rgba(198,40,40,.1)}.field-error{color:var(--red);font-size:12px;font-weight:700;line-height:1.35}.money-input>span{padding-left:14px;color:var(--muted)}.money-input input{border:0;box-shadow:none!important}.question-block{border:0;padding:0;margin:0}.question-block legend{margin-bottom:12px;font-weight:800;line-height:1.4}.choice-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.choice{border:1px solid #cfd5df;background:#fff;color:var(--text)}.choice.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-dark)}.setup-items{display:grid;grid-gap:14px;gap:14px}.setup-items-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.setup-items-heading h2{margin:0 0 5px;font-size:18px}.setup-items-heading p{margin:0;font-size:13px;line-height:1.45}.danger-text-button,.text-button{border:0;background:transparent;padding:0;font-weight:800;cursor:pointer;transition:color .15s ease,-webkit-text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}.text-button{color:var(--blue);white-space:nowrap}.danger-text-button{color:var(--red)}.danger-text-button:hover,.text-button:hover{text-decoration:underline}.setup-item{display:grid;grid-gap:14px;gap:14px;border:1px solid var(--line);border-radius:16px;padding:16px}.setup-item-number{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.two-column{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.fine-print{margin:-6px 0 0;color:var(--muted);font-size:12px;line-height:1.45;text-align:center}.dashboard-shell{width:min(100% - 28px,680px);display:grid;grid-gap:16px;gap:16px}.dashboard-account-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px}.dashboard-account-bar form{margin:0}.dashboard-account-bar .balance-card{min-width:0}.balance-card{text-align:center;padding:2px 8px}.balance-label{display:inline-flex;align-items:center;justify-content:center;gap:4px;color:#3f4a5f;font-size:14px;font-weight:800;line-height:1.2}.icon-button{width:32px;height:32px;border:0;border-radius:999px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .08s ease}.icon-button:hover{background:#e9edf5;color:var(--text)}.icon-button:active{transform:translateY(1px)}.balance{margin-top:1px;font-size:clamp(30px,7vw,44px);font-weight:900;letter-spacing:-.04em;line-height:1}.balance.negative{color:var(--red)}.add-transaction-button{width:100%;min-height:52px}.dashboard-tools{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.month-controls{display:grid;grid-gap:10px;gap:10px}.month-nav-buttons{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.month-selectors{display:grid;grid-template-columns:1fr 120px;grid-gap:8px;gap:8px}.month-selectors select{cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.month-selectors select:hover{border-color:#aeb7c5;background:#fafbfe}.transaction-section{display:grid;grid-gap:10px;gap:10px}.dashboard-search{display:grid;grid-gap:8px;gap:8px}.dashboard-search>input{width:100%;min-height:46px;border:1px solid #cfd5df;border-radius:12px;background:#fff;color:var(--text);padding:0 13px;outline:none}.dashboard-search>input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,87,255,.12)}.search-results{overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:16px}.search-hint{color:var(--muted);font-size:12px;padding:0 2px}.save-description-later{display:grid}.saved-confirmation{padding:12px 14px;border-radius:12px;background:#eef8f3;color:var(--green);text-align:center;font-size:13px;font-weight:800}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{margin:0;font-size:20px}.search-status{margin-top:3px;color:var(--muted);font-size:12px;font-weight:600}.transaction-list{overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:16px}.transaction-row{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;color:var(--text);text-decoration:none;border-bottom:1px solid var(--line);cursor:pointer;transition:background-color .15s ease}.transaction-row:last-child{border-bottom:0}.transaction-row:hover{background:#f7f9fc}.transaction-row:active{background:#f0f3f8}.transaction-main{min-width:0}.transaction-description{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:800}.transaction-note{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-count{color:var(--muted);font-size:12px;text-align:right}.transaction-date{margin-top:5px;color:var(--muted);font-size:12px}.transaction-amount{flex:0 0 auto;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-positive,.transaction-amount.deposit{color:var(--green)}.summary-negative,.transaction-amount.expense{color:var(--red)}.adjustment-tag,.setup-tag{border-radius:999px;padding:2px 6px;font-size:10px;font-weight:800}.setup-tag{background:#f0f2f6;color:#596273}.adjustment-tag{background:#fff6df;color:#7a5100}.empty-state{padding:26px 14px;text-align:center;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px}.summary-card{display:grid;grid-gap:7px;gap:7px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.summary-card span{color:var(--muted);font-size:13px;font-weight:700}.summary-card strong{font-size:21px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-net{grid-column:1/-1}.transaction-form-shell{width:min(100% - 28px,620px)}.transaction-form-card{display:grid;grid-gap:22px;gap:22px}.account-shell{width:min(100% - 28px,620px);display:grid;grid-gap:16px;gap:16px}.account-card{display:grid;grid-gap:20px;gap:20px}.account-card h2{margin:0;font-size:20px}.account-copy{margin:6px 0 0;line-height:1.45;overflow-wrap:anywhere}.password-requirements{margin:-6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.mfa-settings{display:grid;grid-gap:16px;gap:16px}.mfa-status{display:flex;align-items:start;justify-content:space-between;gap:14px;padding:14px;border:1px solid #cfe8db;border-radius:14px;background:#f3fbf7}.security-badge{flex:0 0 auto;border-radius:999px;background:#dff4e9;color:var(--green);padding:4px 8px;font-size:12px;font-weight:900}.mfa-qr-wrap{display:grid;place-items:center;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.mfa-qr{width:min(220px,100%);height:auto}.mfa-secret{border:1px solid var(--line);border-radius:12px;padding:12px 14px}.mfa-secret summary{cursor:pointer;font-weight:800}.mfa-secret code{display:block;margin-top:8px;overflow-wrap:anywhere;font-size:12px}.mfa-actions{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px}.form-header{display:flex;justify-content:space-between;align-items:start;gap:14px}.form-header h1{margin:0;font-size:30px}.checkbox-row{display:flex;align-items:start;gap:10px;color:var(--text);font-size:14px;line-height:1.4}.checkbox-row input{margin-top:2px}.selected-description{display:grid;grid-gap:5px;gap:5px;padding:13px;border-radius:12px;background:#f7f8fb}.selected-description span{color:var(--muted);font-size:12px}.detail-list{margin:0;display:grid;border-top:1px solid var(--line)}.detail-list>div{display:grid;grid-template-columns:140px 1fr;grid-gap:12px;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted);font-size:13px;font-weight:700}.detail-list dd{margin:0;font-weight:800}.detail-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.info-box{padding:14px;border-radius:12px;background:#f7f8fb;color:var(--muted);font-size:13px;line-height:1.45}.search-form{display:grid;grid-template-columns:1fr auto;align-items:end;grid-gap:10px;gap:10px}.current-balance-box{display:grid;grid-gap:6px;gap:6px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8f9fc}.current-balance-box span{color:var(--muted);font-size:13px;font-weight:700}.current-balance-box strong{font-size:28px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.adjustment-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#f8f9fc;font-size:14px}.saved-description-list{display:grid;grid-gap:10px;gap:10px}.saved-description-row{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:14px;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.saved-description-actions{display:flex;gap:8px}.saved-description-edit{display:grid;grid-template-columns:1fr 150px;grid-gap:10px;gap:10px;grid-column:1/-1}.danger-compact{color:var(--red);border-color:#e8b5b5}.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}@media (max-width:520px){.shell{padding-top:22px}.card{border-radius:16px;padding:20px}.choice,.compact-button,.danger-button,.primary-button,.secondary-button{min-height:44px}.icon-button{width:40px;height:40px}.dashboard-account-bar{gap:6px}.dashboard-account-bar .compact-button{min-height:38px;padding:0 8px;font-size:12px}.dashboard-account-bar .balance-label{font-size:13px}.dashboard-account-bar .balance{font-size:clamp(28px,8vw,38px)}.two-column{grid-template-columns:1fr}.setup-items-heading{display:grid}.month-nav-buttons{grid-template-columns:1fr 1.35fr 1fr}.month-nav-buttons .compact-button{min-height:48px;padding:4px;font-size:12px;line-height:1.15;white-space:normal}.dashboard-tools .compact-button{min-height:48px}.section-heading{gap:10px}.section-heading>div{min-width:0}.section-heading h2{font-size:18px;overflow-wrap:anywhere}.transaction-section .section-heading .compact-button{min-height:38px;padding:0 10px;font-size:12px}.transaction-row{min-height:72px;padding:12px}.transaction-description{overflow-wrap:anywhere}.summary-card strong{font-size:18px}.detail-list>div{grid-template-columns:110px 1fr}.saved-description-edit,.saved-description-row,.search-form{grid-template-columns:1fr}.saved-description-actions{justify-content:flex-start;flex-wrap:wrap}.auth-inline-actions,.mfa-actions{grid-template-columns:1fr}.account-shell>.form-header{align-items:center}.account-shell>.form-header .eyebrow{display:none}.account-shell>.form-header h1{font-size:26px;line-height:1.1}.account-shell>.form-header .compact-button{min-height:38px;padding:0 12px;font-size:13px}.account-email strong{display:block;margin-top:3px}.add-transaction-card{gap:16px;padding:18px}.transaction-form-card .eyebrow{display:none}.saved-descriptions-card{gap:14px}.saved-descriptions-copy{margin:0;line-height:1.45}.saved-descriptions-copy+.saved-description-list{margin-top:-2px}.adjust-balance-card .current-balance-box{gap:3px;padding:11px 14px}.adjust-balance-card .current-balance-box strong{font-size:25px}.account-card{gap:18px}.account-card .mfa-settings{gap:12px}.add-transaction-card .form-header{align-items:center}.add-transaction-card .form-header h1{font-size:26px;line-height:1.1}.add-transaction-card .form-header .compact-button{min-height:38px;padding:0 12px;font-size:13px}.add-transaction-form{gap:13px}.add-transaction-form .field{gap:6px}.add-transaction-form .field input,.add-transaction-form .field select,.add-transaction-form .money-input,.date-input{min-height:44px}.date-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;max-width:100%;min-width:0;height:44px;padding-top:0;padding-bottom:0;line-height:44px}.date-input::-webkit-date-and-time-value{height:44px;line-height:44px;padding:0;margin:0;text-align:center}.add-transaction-form .new-description-label{display:none}.add-transaction-form .checkbox-row{margin-top:-2px;gap:8px;font-size:13px}.add-transaction-form>.primary-button{margin-top:2px}}