:root{--navy:#142c49;--navy2:#0e233d;--blue:#2361b0;--blue-pale:#e9f0fa;--red:#c74654;--red-pale:#fff0f1;--green:#199775;--green-pale:#e9f7f2;--ink:#14233b;--muted:#728096;--border:#dce4ec;--canvas:#f4f7fb;--white:#fff;--shadow:0 8px 26px rgba(31,48,77,.04)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.sidebar{position:fixed;left:0;top:0;bottom:0;background:linear-gradient(150deg,var(--navy2),var(--navy));width:244px;color:#d9e6f6;display:flex;flex-direction:column;z-index:5;padding:26px 15px 20px}.brand{display:flex;align-items:center;gap:12px;color:#fff;font-size:13px;font-weight:800;letter-spacing:.08em;line-height:1.2;padding:0 12px 25px}.brand:hover{text-decoration:none}.brand small{font-size:11px;font-weight:400;letter-spacing:0;color:#b9cce5}.mark{display:grid;place-items:center;width:40px;height:40px;background:#e44d5c;color:#fff;border-radius:11px;font-weight:850;letter-spacing:-.05em;font-size:19px;flex-shrink:0}.sidebar nav{display:flex;flex-direction:column;gap:4px;padding-top:15px;border-top:1px solid rgba(255,255,255,.11)}.sidebar nav a{color:#bbcee6;padding:11px 14px;border-radius:9px;display:flex;gap:13px;align-items:center;font-size:13px;font-weight:550}.sidebar nav a:hover{background:rgba(255,255,255,.06);color:#fff;text-decoration:none}.sidebar nav a.active{background:#28507c;color:#fff;box-shadow:inset 3px 0 #eb5964}.nav-dot{height:9px;width:9px;border:1.5px solid currentColor;border-radius:3px;opacity:.65}.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding:17px 10px 0;display:flex;flex-direction:column;gap:12px}.side-foot small{display:block;font-size:11px;color:#9fb4cf}.side-foot a{font-size:12px;color:#dbeaff}.main{margin-left:244px;min-height:100vh}.topbar{height:70px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;padding:0 34px}.topbar-right{display:flex;align-items:center;gap:20px}.secure-label{font-size:12px;color:var(--muted)}.mobile-brand{display:none}.content{max-width:1600px;margin:auto;padding:34px 37px 80px}.titlebar{margin-bottom:25px}.eyebrow{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:7px;text-transform:uppercase}h1{font-size:30px;line-height:1.24;letter-spacing:-.036em;margin:0 0 8px;font-weight:740}h2{font-size:17px;letter-spacing:-.016em;margin:0 0 5px;font-weight:720}h3{margin:20px 0 12px;font-size:15px}.titlebar p,.section-head p,.auth-card p{color:var(--muted);margin:4px 0 0}.titlebar p{font-size:14px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.section-head p{font-size:12px}.text-link{white-space:nowrap;font-size:12px;font-weight:700}.panel{background:#fff;border:1px solid #e4eaf1;border-radius:13px;box-shadow:var(--shadow);padding:25px;margin:0 0 22px}.panel p{max-width:720px}.panel>p:not(.fine){color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}.metrics-three{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{border-radius:12px;border:1px solid var(--border);background:#fff;padding:23px 22px;min-width:0;box-shadow:var(--shadow)}.metric-label{font-size:12px;font-weight:700;color:#708098;margin-bottom:13px}.metric-amount{font-size:clamp(19px,2vw,28px);font-weight:760;letter-spacing:-.043em;line-height:1.15;white-space:nowrap}.metric small{font-size:11px;color:#8d9aab;display:block;margin-top:12px}.metric.green .metric-amount,.positive{color:var(--green)!important}.metric.red .metric-amount,.negative{color:var(--red)!important}.two-col{display:grid;grid-template-columns:1.15fr 1fr;gap:22px}.two-col .panel{min-width:0}.compare-line{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding:12px 0;font-size:13px}.compare-line span{color:var(--muted)}.compare-line.important{border:0;background:#f2f6fb;border-radius:8px;margin-top:11px;padding:13px 12px;font-weight:750}.compare-line.important span{color:var(--ink)}.big-count{font-size:56px;color:var(--navy);font-weight:800;letter-spacing:-.055em;line-height:1.2}.fine{font-size:12px;color:var(--muted);line-height:1.6;margin:14px 0 0}.notice{background:#f1f6fe;border-left:3px solid var(--blue);padding:14px 16px;font-size:12px;color:#4a6486;border-radius:6px;margin:18px 0}.filters{display:flex;gap:11px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px;padding:16px;background:white;border:1px solid var(--border);border-radius:12px}.filters label{min-width:115px;flex:1 1 135px;max-width:240px;font-weight:650;font-size:11px;color:#6e7f96}.filters label:first-of-type{flex:1 1 180px}.filters input,.filters select{margin-top:5px}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}label{display:block;font-size:12px;color:#53647b;font-weight:650}input:not([type=checkbox]):not([type=file]),select,textarea{width:100%;display:block;min-width:0;background:#fff;border:1px solid #d5deea;border-radius:7px;color:#26394f;padding:10px 11px;font:inherit;font-size:13px;outline:0;min-height:40px}input:focus,select:focus,textarea:focus{border-color:#6190d3;box-shadow:0 0 0 3px rgba(73,132,209,.13)}input[type=file]{display:block;padding:13px;margin-top:9px;border:1px dashed #aabbd0;background:#f7f9fc;border-radius:9px;width:100%;max-width:100%}.stack-form{display:flex;flex-direction:column;gap:17px}.stack-form label input,.stack-form label select{margin-top:6px}.btn{cursor:pointer;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid transparent;min-height:40px;padding:10px 17px;font:inherit;font-size:12px;font-weight:750;text-decoration:none;white-space:nowrap}.btn:hover{text-decoration:none;filter:brightness(.97)}.btn-primary{background:#1f5faa;color:#fff}.btn-outline{background:white;border-color:#ccd8e6;color:#255485}.btn-light{background:#edf3fb;color:#204f87;border-color:#d5e1ee}.btn-danger{background:#fff2f1;color:#bb3b42;border:1px solid #f2d9da}.btn-small{font-size:11px;padding:7px 11px;min-height:33px}.responsive-table{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;min-width:580px}th{background:#f6f8fb;color:#77869b;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.07em;padding:12px 11px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:13px 11px;border-bottom:1px solid #edf1f5;vertical-align:middle}tbody tr:hover{background:#fafcff}td small{display:block;font-size:10px;color:#8592a4;margin-top:3px;max-width:400px;overflow-wrap:anywhere}.right{text-align:right}.muted{color:#b3bcc8}.empty{text-align:center;color:#99a3b0;padding:30px}.total-row{background:#eff4fa;font-weight:800}.category{min-width:250px;max-width:320px;font-weight:670}.budget-table{min-width:1100px}.budget-table th:nth-child(1){width:25%}.budget-edit-fields{display:grid;grid-template-columns:1.1fr 1fr 1.1fr 1fr 1fr 86px 65px;gap:11px;align-items:center;min-width:750px}.budget-edit-fields input{max-width:130px}.budget-edit-row{margin:0}.budget-edit-fields .numeric{font-size:12px;white-space:nowrap}.pill{display:inline-block;text-align:center;border-radius:100px;padding:5px 9px;font-size:10px;font-weight:750;white-space:nowrap}.pill-muted{background:#eef1f5;color:#7f8b9c}.pill-green{background:#e0f5ec;color:#168467}.pill-amber{background:#fff3dc;color:#91660a}.transactions-table{min-width:1190px}.tx-desc{min-width:240px;max-width:340px;overflow-wrap:anywhere}.tx-edit{display:grid;grid-template-columns:110px 230px 86px 130px 58px;gap:8px;align-items:center;min-width:650px}.tx-edit select{padding:8px 6px;font-size:11px}.tx-edit .small-notes{min-height:36px;font-size:11px}.category-edit{display:flex;gap:10px;align-items:center}.rule-edit{display:grid;grid-template-columns:minmax(130px,1fr) 124px 92px minmax(170px,1.8fr) 78px 78px;gap:9px;align-items:center;min-width:750px}.rule-edit input,.rule-edit select{min-height:36px;font-size:12px}.checkline{display:flex;align-items:center;gap:10px;margin:16px 0}.checkline input{width:17px;height:17px}.form-actions{display:flex;align-items:center;gap:10px;margin-top:18px}.steps{display:flex;flex-direction:column;gap:19px;margin:19px 0}.steps>div{display:flex;align-items:flex-start;gap:13px;color:#536880;font-size:13px}.steps b{background:#e9f1fb;color:var(--blue);width:28px;height:28px;display:grid;place-items:center;border-radius:50%;flex-shrink:0}.bars{height:210px;display:flex;gap:5px;align-items:stretch;overflow-x:auto;padding:8px 0 2px;border-top:1px solid #edf0f5}.bar-group{display:flex;flex-direction:column;flex:1 0 13px;min-width:13px;max-width:80px;align-items:center}.bar-track{height:178px;width:100%;display:flex;align-items:end;justify-content:center;gap:2px;border-bottom:1px solid #d7e1eb}.bar-track span{max-width:18px;min-width:2px;flex:1;border-radius:3px 3px 0 0;display:block;transition:height .2s ease}.bar-income{background:#29a482}.bar-expense{background:#e8797e}.bar-group small{font-size:9px;white-space:nowrap;color:#8291a5;transform:rotate(-35deg);transform-origin:top center;margin-top:5px}.chart-legend{display:flex;align-items:center;gap:18px;color:#788ca4;font-size:11px}.chart-legend span:before{content:'';height:9px;width:9px;display:inline-block;margin-right:6px;border-radius:3px;background:#2ba686}.chart-legend .legend-red:before{background:#e8797e}.pagination{display:flex;justify-content:center;gap:22px;padding:20px 0;font-size:12px}.alert{padding:13px 18px;margin:0 0 20px;border-radius:8px;font-weight:650;font-size:13px}.alert-good{background:#e5f7ed;color:#22774c;border:1px solid #c3e8d2}.alert-bad{background:#ffeced;color:#a93845;border:1px solid #f7ccd0}.auth-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px 15px;background:radial-gradient(circle at top left,#ddeaf9,transparent 36%),#edf2f8}.auth-card{max-width:560px;width:100%;padding:36px 38px;background:#fff;border:1px solid #dde7f2;border-radius:16px;box-shadow:0 19px 60px rgba(17,41,72,.1)}.auth-card h1{margin:5px 0 12px}.auth-card p{margin-bottom:27px}.auth-logo{display:flex;align-items:center;gap:11px;font-weight:780;color:var(--navy);letter-spacing:.06em;margin-bottom:24px}.auth-logo .mark{width:37px;height:37px}.auth-card .stack-form{margin-top:21px}.auth-card .btn{width:100%}.max-600{max-width:600px}form{margin:0}button{font-family:inherit}a:focus-visible,button:focus-visible{outline:3px solid #90b7f0;outline-offset:2px}
@media(max-width:1250px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:28px 26px 60px}.topbar{padding:0 25px}.sidebar{width:215px}.main{margin-left:215px}.two-col{grid-template-columns:1fr}}@media(max-width:800px){.sidebar{position:relative;width:100%;height:auto;padding:12px 14px}.brand{padding:6px 4px 11px}.sidebar nav{display:flex;flex-direction:row;overflow-x:auto;gap:5px;padding:8px 0 1px}.sidebar nav a{padding:9px 12px;white-space:nowrap;font-size:11px}.side-foot{display:none}.main{margin:0}.topbar{height:56px;padding:0 16px}.secure-label{display:none}.mobile-brand{display:block;margin-right:auto;font-size:12px;font-weight:730}.content{padding:25px 16px 50px}h1{font-size:26px}.panel{padding:18px}.filters label{max-width:none}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:19px 16px}.metric-amount{font-size:clamp(18px,4vw,23px)}.section-head{flex-wrap:wrap}.field-grid{grid-template-columns:1fr}}@media(max-width:480px){.metrics{grid-template-columns:1fr}.metric{padding:16px}.metric-label{margin-bottom:7px}.metric small{margin-top:7px}.filters{padding:12px}.filters label{flex:1 1 100%}.two-col{display:block}.auth-card{padding:27px 20px}.topbar .btn{font-size:10px;padding:7px 10px}}

/* v1.1: expense estimate / paid / deduction breakdown */
.budget-table{min-width:1360px}.budget-edit-fields.v110{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr 82px 68px;min-width:1010px;gap:9px}.budget-edit-fields.v110 input{max-width:118px}.budget-edit-fields.v110 .numeric{font-size:11px}.checkline{font-weight:500}.checkline input{flex:0 0 18px}.notice b{color:var(--navy)}

/* v1.2 - bulk CSV preview, duplicate reconciliation, multi-user controls */
.import-file{background:#fbfcff;border:1px solid var(--border);border-radius:12px;padding:19px;margin:16px 0}.import-file h3{margin:0 0 4px}.csv-preview{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.csv-preview summary{cursor:pointer;font-size:12px;font-weight:750;color:var(--blue)}.csv-preview .responsive-table{margin-top:12px}.duplicate-actions{display:flex;flex-wrap:wrap;gap:7px;min-width:150px}.duplicate-actions form{margin:0}.user-record{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.user-row{display:grid;grid-template-columns:minmax(200px,2fr) minmax(130px,1fr) 100px 75px 70px;align-items:center;gap:9px}.user-row>div{display:grid;gap:5px}.user-row .checkline{margin:0}.user-row input,.user-row select{min-width:0}.form-label{display:flex;flex-direction:column;justify-content:end}.top-signout{font-size:11px;color:#6b788b;white-space:nowrap}
@media(max-width:1150px){.user-record{grid-template-columns:1fr}.user-row{grid-template-columns:repeat(2,minmax(0,1fr))}.user-row>div{grid-column:span 2}}
@media(max-width:650px){.import-file{padding:12px}.user-row{grid-template-columns:1fr}.user-row>div{grid-column:auto}.top-signout{font-size:11px}}

/* v1.3 allocation refresh controls */
.allocation-refresh-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}
.allocation-refresh-form form{margin:0}
@media (max-width:640px){.allocation-refresh-form .btn{width:100%}}

/* v1.4: inline rules and transfer reconciliation */
.tx-edit .tx-rule-details{grid-column:1/-1;background:#f3f7fc;border:1px solid #dce7f5;border-radius:9px;padding:8px 12px;font-size:12px;min-width:0}
.tx-rule-details summary{cursor:pointer;font-weight:730;color:var(--blue)}
.tx-rule-details[open]{margin-top:5px}
.tx-rule-fields{display:flex;align-items:flex-end;flex-wrap:wrap;gap:9px;margin-top:11px}
.tx-rule-fields label{display:grid;gap:4px;font-size:11px;font-weight:650;color:var(--navy);flex:1 1 180px;min-width:150px}
.tx-rule-fields label:first-child{flex:2 1 220px}
.tx-rule-fields input,.tx-rule-fields select{min-height:38px;font-size:12px;width:100%}
.tx-rule-fields .btn{min-height:38px;flex:0 0 auto;white-space:nowrap}
.tx-rule-details .fine{font-size:11px;line-height:1.45;margin:10px 0 0}
.transfer-counts{display:flex;gap:22px;flex-wrap:wrap;color:#546a83;margin:16px 0}
.transfer-counts b{font-size:17px;color:var(--navy)}
@media(max-width:800px){.tx-rule-fields{display:grid;grid-template-columns:1fr}.tx-rule-fields label{min-width:0}.tx-rule-fields .btn{width:100%}}

/* v1.5 — compact transaction actions. The rule editor is a viewport dialog,
   never an expanded table cell. */
.transactions-table .tx-edit{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:700px}
.transactions-table .tx-edit select[name="kind"]{width:130px;flex:0 0 130px}
.transactions-table .tx-edit select[data-transaction-category]{width:210px;flex:0 0 210px}
.transactions-table .tx-edit .pill{flex:0 0 auto}
.transactions-table .tx-edit .small-notes{flex:1 1 100px;min-width:90px;width:115px}
.transactions-table .tx-edit .btn{flex:0 0 auto}
.transactions-table .tx-edit .tx-rule-open{color:var(--blue);font-weight:750}
.tx-rule-modal{position:fixed;inset:0;max-width:min(540px,calc(100vw - 32px));width:100%;max-height:min(660px,calc(100dvh - 35px));border:1px solid var(--border);border-radius:15px;padding:0;margin:auto;background:white;box-shadow:0 24px 75px rgba(16,36,64,.25);overflow-y:auto;color:var(--ink)}
.tx-rule-modal::backdrop{background:rgba(9,29,51,.57)}
.tx-rule-modal-form{padding:25px;display:grid;gap:16px}
.tx-rule-modal-heading{display:flex;justify-content:space-between;align-items:start;gap:14px}
.tx-rule-modal-heading h2{font-size:21px;color:var(--navy);margin-bottom:5px}
.tx-rule-modal-heading .eyebrow{margin-bottom:5px}
.tx-rule-modal-heading p{margin:0;color:var(--muted);font-size:12px}
.tx-modal-close{font-size:26px;line-height:1;cursor:pointer;border:0;background:#eef3f8;color:var(--navy);border-radius:50%;width:32px;height:32px;flex-shrink:0}
.tx-modal-context{background:#f4f7fc;border:1px solid var(--border);border-radius:10px;padding:11px 14px}
.tx-modal-description{font-size:13px;font-weight:730;overflow-wrap:anywhere}
.tx-modal-allocation{display:block;font-size:12px;color:#526b89;margin-top:5px}
.tx-modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.tx-modal-fields label{min-width:0}
.tx-modal-fields input,.tx-modal-fields select{margin-top:5px}
.tx-rule-modal .fine{margin:0}
.tx-modal-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:6px;border-top:1px solid var(--border)}
.cleanup-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.cleanup-source{padding:19px;border:1px solid var(--border);border-radius:11px;background:#fbfcff}
.cleanup-total{font-weight:780;font-size:20px;color:var(--navy)}
.cleanup-source p{font-size:12px;color:#60748b;margin:7px 0 14px}
.cleanup-form{display:grid;gap:9px}
.cleanup-form input{margin-top:5px}
.cleanup-form button{justify-self:start}
@media(max-width:800px){.cleanup-sources{grid-template-columns:1fr}}
@media(max-width:560px){.tx-modal-fields{grid-template-columns:1fr}.tx-rule-modal-form{padding:20px}.tx-modal-actions{flex-direction:column-reverse}.tx-modal-actions .btn{width:100%}}

/* v1.6.1 — search/filter Budget Account in Transactions without widening rows. */
.transactions-table .tx-edit .tx-account-picker{display:block;position:relative;flex:0 0 210px;width:210px;min-width:0}
.transactions-table .tx-edit .tx-account-trigger{font:inherit;color:var(--ink);font-size:12px;width:100%;height:40px;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 10px;border:1px solid #d5deea;border-radius:7px;background:white;text-align:left;cursor:pointer}
.transactions-table .tx-edit .tx-account-trigger:hover{border-color:#9eb5d6}
.transactions-table .tx-edit .tx-account-trigger:focus-visible{border-color:#6190d3;outline:3px solid rgba(73,132,209,.17);outline-offset:1px}
.transactions-table .tx-edit .tx-account-trigger:disabled{cursor:not-allowed;opacity:.55;background:#f5f7fa}
.tx-account-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.tx-account-chevron{color:#47627f;font-size:16px;flex:0 0 auto;line-height:1}
.tx-account-menu{position:fixed;z-index:250;display:flex;flex-direction:column;overflow:hidden;max-width:calc(100vw - 16px);background:#fff;border:1px solid #b7c9df;border-radius:10px;box-shadow:0 14px 34px rgba(20,44,73,.2);padding:8px}
.tx-account-menu[hidden]{display:none}
.tx-account-search-wrap{padding:1px 2px 8px;flex:0 0 auto}
.tx-account-menu .tx-account-search{min-height:38px;margin:0;width:100%;background:#f8fbff;border:1px solid #b9cce6;border-radius:7px;font-size:12px}
.tx-account-results{min-height:0;overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto;max-height:265px}
.tx-account-option{display:block;width:100%;text-align:left;padding:9px 11px;min-height:35px;background:transparent;color:#22384f;border:0;border-radius:5px;font:inherit;font-size:12px;cursor:pointer;white-space:normal;overflow-wrap:anywhere}
.tx-account-option:hover,.tx-account-option.is-active{background:#eaf1fb;color:#164980}
.tx-account-option.is-selected{font-weight:750}
.tx-account-option.is-selected::before{content:'✓ ';color:#157c62}
.tx-account-empty{padding:15px 10px;color:var(--muted);font-size:12px}
.tx-account-count{flex:0 0 auto;border-top:1px solid #ecf1f6;padding:6px 8px 2px;text-align:right;color:#7a8aa0;font-size:10px}
@media(max-width:540px){.tx-account-menu{padding:6px}.tx-account-option{padding:10px 8px}}
/* Sage integration: keep all bank and review controls responsive. */
.sage-actions{display:flex;flex-direction:column;gap:6px;margin-top:8px;min-width:225px}
.sage-actions form{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.sage-actions input{min-width:110px;max-width:220px;padding:7px;font-size:12px}
.sage-actions button{white-space:nowrap}
