*{box-sizing:border-box}img,svg{max-width:100%}button,input,select{font:inherit}button,select{cursor:pointer}button:disabled{cursor:wait;opacity:.58}.transactions-page{width:min(1480px,100% - 40px);margin:0 auto;padding-bottom:64px}.page-content,.page-content>*,.page-intro>*,.year-planning-header>*,.profile-settings-grid>*,.management-grid>*,.budget-kpis>*,.contribution-grid>*{min-width:0}.app-header{border-bottom:1px solid var(--line);align-items:center;gap:44px;min-height:76px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand>span{color:#fffdf7;background:var(--ink);border-radius:10px;place-items:center;width:34px;height:34px;font-weight:850;display:grid}.brand strong{letter-spacing:-.03em}.app-header nav{flex:1;align-items:center;gap:26px;display:flex}.app-header nav a,.app-header nav span{color:var(--muted);padding:28px 0 25px;font-size:14px;text-decoration:none;position:relative}.app-header nav .active{color:var(--ink);font-weight:750}.app-header nav .active:after{content:"";background:var(--clay);height:2px;position:absolute;bottom:-1px;left:0;right:0}.environment-badge{color:#795b2d;font:700 10px/1 var(--mono);letter-spacing:.07em;background:#fff3cd;border:1px solid #9d7b45;border-radius:999px;padding:7px 10px}.session-controls{align-items:center;gap:7px;display:flex}.session-controls select,.session-controls button{border:1px solid var(--line);min-height:34px;color:var(--muted);background:var(--paper);border-radius:9px;padding:0 9px;font-size:10px}.app-loader{min-height:100vh;color:var(--muted);align-content:center;place-items:center;gap:14px;display:grid}.page-intro{justify-content:space-between;align-items:end;gap:32px;padding:58px 0 34px;display:flex}.eyebrow{color:var(--green);letter-spacing:.15em;margin:0 0 14px;font-size:11px;font-weight:800}h1{color:var(--ink);letter-spacing:-.055em;margin:0;font-size:clamp(42px,5vw,70px);line-height:.94}.lede{color:var(--muted);margin:18px 0 0;font-size:16px}.period-picker{border:1px solid var(--line);background:var(--paper);border-radius:18px;align-items:center;gap:16px;padding:8px;display:flex;box-shadow:0 8px 24px #17291f0a}.period-picker button{width:42px;height:42px;color:var(--ink);background:#ece8dd;border:0;border-radius:12px;font-size:19px}.period-picker div{text-align:center;min-width:130px}.period-picker strong,.period-picker span{display:block}.period-picker span{color:var(--muted);margin-top:3px;font-size:12px}.summary-strip{border:1px solid var(--line);background:var(--ink);color:#fffdf7;border-radius:20px;grid-template-columns:minmax(170px,.45fr) minmax(230px,.75fr) 1.6fr;align-items:stretch;display:grid;overflow:hidden}.summary-strip>div{border-right:1px solid #ffffff1d;flex-direction:column;justify-content:center;gap:8px;min-height:92px;padding:20px 24px;display:flex}.summary-strip span{color:#ffffffa8;font-size:12px}.summary-strip strong{letter-spacing:-.025em;font-size:21px}.summary-strip .summary-actions{border:0;flex-direction:row;justify-content:flex-end;align-items:center}.primary-action,.secondary-action{border-radius:12px;min-height:44px;padding:0 17px;font-weight:750}.primary-action{border:1px solid var(--clay);color:#fff;background:var(--clay)}.secondary-action{color:#fff;background:0 0;border:1px solid #ffffff3a}.notice,.error-banner{border-radius:12px;align-items:center;gap:10px;margin:18px 0;padding:14px 16px;display:flex}.notice{color:#24492d;background:#dbead9}.notice button{background:0 0;border:0;margin-left:auto;font-size:20px}.error-banner{color:#7f211b;background:#f7d8d4;flex-direction:column;align-items:flex-start}.error-banner span{font-size:13px}.manual-form{background:#fff9e8;border:1px solid #b7a473;border-radius:18px;grid-template-columns:150px 2fr 150px minmax(160px,1fr) minmax(140px,.8fr) minmax(140px,.8fr) auto;align-items:end;gap:12px;margin:18px 0;padding:22px;display:grid}.form-heading{grid-column:1/-1;justify-content:space-between;align-items:center;display:flex}.form-heading h2{letter-spacing:-.035em;margin:4px 0 8px;font-size:25px}.number{color:var(--clay);font:700 10px/1 var(--mono);letter-spacing:.1em}.text-button{color:var(--muted);background:0 0;border:0}.manual-form label,.transaction-fields label{gap:6px;display:grid}.manual-form label>span,.transaction-fields label>span{color:var(--muted);letter-spacing:.035em;text-transform:uppercase;font-size:10px;font-weight:750}.manual-form input,.manual-form select,.filters input,.filters select,.transaction-fields select{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:var(--paper);border-radius:10px;outline:none;padding:0 11px}.manual-form input:focus,.manual-form select:focus,.filters input:focus,.filters select:focus,.transaction-fields select:focus{border-color:var(--green);box-shadow:0 0 0 3px #48694b18}.filters{grid-template-columns:minmax(260px,1fr) auto 190px;align-items:center;gap:12px;margin:22px 0 14px;display:grid}.segmented{border:1px solid var(--line);background:#e9e4d9;border-radius:12px;padding:4px;display:flex}.segmented button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:8px;padding:0 13px;font-size:13px}.segmented button.active{color:var(--ink);background:var(--paper);font-weight:700;box-shadow:0 2px 7px #17291f18}.transaction-list{gap:8px;display:grid}.transaction{border:1px solid var(--line);background:var(--paper);border-radius:16px;grid-template-columns:104px minmax(220px,1fr) minmax(350px,1.35fr) 205px;align-items:center;gap:18px;min-height:118px;padding:18px;transition:border-color .16s,box-shadow .16s;display:grid}.transaction:hover{border-color:#bdb4a2;box-shadow:0 8px 25px #17291f09}.transaction-dirty{border-color:#c89b58;box-shadow:inset 3px 0 #c89b58}.transaction-excluded{opacity:.62;background:#eeebe2}.transaction-date{align-self:start;gap:7px;padding-top:4px;display:grid}.transaction-date span{font-weight:750}.transaction-date small{color:var(--muted);line-height:1.35}.transaction-main{gap:6px;min-width:0;display:grid}.transaction-main>strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.transaction-main>span{color:var(--muted);font-size:12px}.tag-list{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.tag{border:1px solid var(--line);min-height:24px;color:var(--muted);background:0 0;border-radius:999px;padding:0 8px;font-size:10px}.tag-active{color:#24492d;background:#dbead9;border-color:#789278}.transaction-fields{grid-template-columns:repeat(3,minmax(100px,1fr));gap:8px;display:grid}.transaction-amount{flex-direction:column;align-items:flex-end;gap:8px;min-height:78px;display:flex}.transaction-amount>strong{white-space:nowrap;font-size:18px}.transaction-original-amount{color:var(--muted);text-align:right;max-width:230px;line-height:1.25}.expense{color:var(--ink)}.income{color:#327043}.transaction-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.icon-action,.save-row{border-radius:8px;min-height:29px;padding:0 9px;font-size:10px}.icon-action{border:1px solid var(--line);color:var(--muted);background:0 0}.icon-action.active{color:#6d4f22;background:#fff0cc;border-color:#9f865c}.danger-action{color:#8b3730;border-color:#d7aaa5}.save-row{border:1px solid var(--green);color:#fff;background:var(--green);font-weight:750}.empty-state{min-height:240px;color:var(--muted);background:#fffdf780;border:1px dashed #bdb4a2;border-radius:18px;align-content:center;place-items:center;gap:10px;display:grid}.read-only-banner{color:#654f23;background:#fff5cf;border:1px solid #c7b988;border-radius:12px;align-items:center;gap:12px;margin:-12px 0 20px;padding:11px 14px;font-size:12px;display:flex}.read-only-banner strong{color:#fff;letter-spacing:.05em;text-transform:uppercase;background:#80662d;border-radius:6px;padding:4px 7px;font-size:10px}.read-only-banner a{color:inherit;font-weight:800}.budget-kpis{border:1px solid var(--line);background:var(--paper);border-radius:18px;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.budget-kpis>div{border-right:1px solid var(--line);flex-direction:column;justify-content:center;gap:8px;min-height:108px;padding:20px;display:flex}.budget-kpis>div:last-child{border:0}.budget-kpis span,.budget-kpis small{color:var(--muted);font-size:11px}.budget-kpis strong{letter-spacing:-.035em;font-size:22px}.contribution-grid{grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 28px;display:grid}.contribution-grid article{color:#f9f5ea;background:var(--ink);border-radius:16px;grid-template-columns:1fr 1.4fr;align-items:center;gap:20px;padding:20px;display:grid}.contribution-grid article>div{gap:8px;display:grid}.contribution-grid article span{color:#ffffffa5;font-size:11px}.contribution-grid article strong{font-size:22px}.contribution-grid article>div small{color:#ffffff75;font-size:9px}.contribution-grid dl{grid-template-columns:1fr 1fr;gap:12px;margin:0;display:grid}.contribution-grid dl div{border-left:1px solid #ffffff24;padding-left:12px}.contribution-grid dt{color:#ffffff8f;font-size:10px}.contribution-grid dd{margin:6px 0 0;font-size:13px;font-weight:750}.budget-section{border:1px solid var(--line);background:var(--paper);border-radius:17px;margin-top:16px;overflow:hidden}.budget-section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:20px;display:flex}.budget-section-heading h2{letter-spacing:-.03em;margin:0;font-size:20px}.budget-section-heading p{color:var(--muted);margin:5px 0 0;font-size:11px}.budget-section-total{justify-items:end;gap:4px;display:grid}.budget-section-total span{color:var(--muted);text-transform:uppercase;font-size:10px}.budget-section-total strong{font-size:13px}.budget-table-wrap{overflow-x:auto}.budget-table{border-collapse:collapse;width:100%}.budget-table th,.budget-table td{text-align:right;border-bottom:1px solid #e8e3d8;padding:13px 18px;font-size:12px}.budget-table th{color:var(--muted);letter-spacing:.055em;text-transform:uppercase;background:#f5f1e7;font-size:9px}.budget-table th:first-child,.budget-table td:first-child{text-align:left;width:35%}.budget-table tbody tr:last-child td{border-bottom:0}.budget-table td strong{font-size:13px}.budget-category-toggle{color:var(--ink);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.budget-category-toggle>span{border:1px solid var(--line);width:18px;height:18px;color:var(--muted);background:#f5f1e7;border-radius:6px;place-items:center;font-size:17px;line-height:1;transition:transform .16s,color .16s,border-color .16s;display:grid}.budget-category-toggle:hover>span{border-color:var(--green);color:var(--green)}.budget-category-toggle[aria-expanded=true]>span{color:#fff;border-color:var(--green);background:var(--green);transform:rotate(90deg)}.budget-category-open td{background:#eef3e9}.budget-drilldown-row>td{background:#f4f7f0;text-align:left!important;padding:0!important}.budget-drilldown-state{min-height:90px;color:var(--muted);justify-content:center;align-items:center;gap:10px;display:flex}.budget-drilldown-state .loader{width:20px;height:20px}.budget-drilldown-state.error{color:#8a342d;flex-direction:column;align-items:flex-start;padding:18px 24px}.budget-ledger{background:var(--paper);box-shadow:inset 4px 0 var(--green);border:1px solid #cfd9ca;border-radius:12px;margin:0 18px 18px 44px;overflow:hidden}.budget-ledger-heading{min-height:38px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;background:#e5ecdf;justify-content:space-between;align-items:center;padding:0 14px 0 17px;font-size:10px;font-weight:750;display:flex}.budget-ledger-heading strong{color:#fff;background:var(--green);text-align:center;border-radius:999px;min-width:25px;padding:3px 6px}.budget-ledger article{border-top:1px solid #e4e9df;grid-template-columns:68px minmax(180px,1fr) 130px;align-items:center;gap:12px;min-height:54px;padding:8px 14px 8px 17px;display:grid}.budget-ledger time{color:var(--muted);font:10px var(--mono)}.budget-ledger article>div{gap:3px;min-width:0;display:grid}.budget-ledger article>div strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.budget-ledger article>div span{color:var(--muted);font-size:10px}.budget-ledger-amount{color:var(--ink);text-align:right;white-space:nowrap;font:750 12px var(--mono)}.budget-load-more{width:100%;min-height:38px;color:var(--green);background:#f1f6ed;border:0;border-top:1px solid #dbe3d7;font-size:11px;font-weight:750}.actual-only{color:#785422;text-transform:uppercase;background:#fff0c8;border-radius:5px;margin-left:7px;padding:3px 5px;font-size:8px;display:inline-block}.budget-ok{color:#397245!important}.budget-over{color:#a23d34!important}.budget-progress{vertical-align:middle;background:#ded9ce;border-radius:999px;width:90px;height:6px;display:inline-block;overflow:hidden}.budget-progress span{border-radius:inherit;background:var(--green);height:100%;display:block}.budget-progress span.over{background:var(--clay)}.budget-table small{min-width:42px;color:var(--muted);text-align:right;display:inline-block}.budget-empty{height:100px;color:var(--muted);text-align:center!important}.year-planning-header{justify-content:space-between;align-items:flex-end;gap:24px;padding:48px 0 28px;display:flex}.year-planning-header h1{font-size:clamp(40px,5vw,68px)}.year-actions{align-items:center;gap:8px;display:flex}.year-picker{border:1px solid var(--line);background:var(--paper);border-radius:12px;align-items:center;gap:13px;padding:5px;display:flex}.year-picker button{width:34px;height:34px;color:var(--ink);background:#ece8dd;border:0;border-radius:8px}.secondary-light{border:1px solid var(--line);min-height:44px;color:var(--ink);background:var(--paper);border-radius:11px;padding:0 13px;font-weight:700}.local-write-banner{color:#315235;background:#e4efe1;border:1px solid #9fb39d;border-radius:11px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 13px;font-size:11px;display:flex}.local-write-banner strong{font:750 10px var(--mono);letter-spacing:.05em}.planning-settings{border:1px solid var(--line);background:var(--paper);border-radius:15px;grid-template-columns:repeat(6,1fr) auto;align-items:end;gap:10px;margin:12px 0;padding:18px;display:grid}.planning-settings .form-heading{grid-column:1/-1}.planning-settings label{gap:5px;display:grid}.planning-settings label span{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:750}.planning-settings input{border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;min-height:40px;padding:0 9px}.planning-table-wrap{border:1px solid var(--line);background:var(--paper);border-radius:16px;max-height:calc(100vh - 235px);overflow:auto;box-shadow:0 8px 30px #17291f0a}.planning-table{border-collapse:separate;border-spacing:0;width:max(1320px,100%)}.planning-table th,.planning-table td{text-align:center;border-bottom:1px solid #e6e0d4;border-right:1px solid #e6e0d4;min-width:82px;height:48px;padding:5px;font-size:11px}.planning-table thead th{z-index:4;color:#fff;background:var(--ink);text-transform:uppercase;height:42px;font-size:10px;position:sticky;top:0}.planning-table th:first-child{z-index:3;text-align:left;min-width:190px;max-width:190px;color:var(--ink);background:#f8f5ed;padding-left:13px;position:sticky;left:0}.planning-table thead th:first-child{z-index:5;color:#fff;background:var(--ink)}.planning-table tbody tr:hover td,.planning-table tbody tr:hover th:first-child{background-color:#f5f3eb}.planning-table th:first-child span{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:145px;display:inline-block;overflow:hidden}.planning-section-row th,.planning-section-row td{height:38px;font-weight:800;color:#fff!important;background:var(--green)!important}.planning-section-row button{float:right;color:#fff;background:0 0;border:1px solid #ffffff4a;border-radius:7px;width:25px;height:25px}.planning-system-row th,.planning-system-row td{color:#70521d;background:#fff5d7}.allocation-cell{width:100%;min-height:34px;color:inherit;background:0 0;border:1px solid #0000;border-radius:7px;padding:0 4px;font-size:10px}.allocation-cell:hover,.allocation-cell.active{background:#fff9e8;border-color:#b49a63}.allocation-cell.active{font-weight:800;box-shadow:inset 0 0 0 1px #b49a63}.planning-cell-value{width:100%;min-height:34px;color:inherit;background:0 0;border:0;border-radius:7px;font-size:11px}.planning-cell-value:hover{background:#48694b12}.planning-cell-editor{border:1px solid var(--green);background:#fff;border-radius:8px;min-width:108px;padding:4px;box-shadow:0 5px 18px #17291f18}.planning-cell-editor input{text-align:right;border:0;outline:none;width:100%;height:27px;padding:0 5px}.planning-cell-editor>div{justify-content:flex-end;gap:3px;display:flex}.planning-cell-editor button{width:23px;height:22px;color:var(--ink);background:#e8eee5;border:0;border-radius:5px;padding:0;font-size:10px}.planning-cell-editor button.danger{color:#8d2f28;background:#f6dfdc}.delete-row{float:right;color:#a65a52;opacity:.25;background:0 0;border:0}.planning-table tr:hover .delete-row{opacity:1}.planning-add-row td{background:#f3f7f1;height:50px}.planning-add-row form{align-items:center;gap:7px;display:flex}.planning-add-row input{border:1px solid var(--line);border-radius:8px;flex:1;min-height:34px;padding:0 9px}.planning-add-row select{border:1px solid var(--line);min-height:34px;color:var(--ink);background:var(--paper);border-radius:8px;padding:0 9px}.planning-add-row button{border:1px solid var(--line);background:var(--paper);border-radius:8px;min-height:34px;padding:0 10px}.planning-role-badge{color:#76591c;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;background:#f8df9e;border-radius:5px;margin-left:6px;padding:3px 5px;font-size:7px;font-weight:800;display:inline-block}.planning-projection-section th,.planning-projection-section td{background:var(--ink)!important}.planning-projection-row th,.planning-projection-row td{background:#f1f5ed;font-weight:720}.planning-projection-row.family th,.planning-projection-row.family td{background:#e7efe2}.planning-projection-row.emphasis th,.planning-projection-row.emphasis td{font-weight:820;box-shadow:inset 0 -2px #b8c8af}.planning-projection-row th:first-child{color:#29442d;background:#edf3e9}.planning-projection-row.family th:first-child{background:#e1ebdc}.projection-positive{color:#26733b}.projection-negative{color:#b13e35}.projection-missing{color:#8a6230;max-width:74px;font-size:8px;line-height:1.2;display:inline-block}.transaction-rule-form{box-shadow:inset 4px 0 var(--green);background:#eef4eb;border:1px solid #a8b9a7;border-radius:0 0 16px 16px;margin:-1px 12px 8px;padding:22px}.rule-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.rule-heading h3{letter-spacing:-.035em;margin:5px 0 18px;font-size:22px}.rule-grid{grid-template-columns:150px 150px minmax(240px,1.7fr) repeat(4,minmax(130px,1fr));gap:10px;display:grid}.rule-grid label{gap:6px;display:grid}.rule-grid label>span{color:var(--muted);letter-spacing:.035em;text-transform:uppercase;font-size:10px;font-weight:750}.rule-grid input,.rule-grid select{width:100%;min-height:40px;color:var(--ink);background:var(--paper);border:1px solid #bdcab9;border-radius:9px;outline:none;padding:0 10px}.rule-grid input:focus,.rule-grid select:focus{border-color:var(--green);box-shadow:0 0 0 3px #48694b18}.rule-preview{color:#315235;background:#dbe8d7;border-radius:10px;gap:8px;margin-top:14px;padding:11px 13px;font-size:12px;line-height:1.45;display:flex}.rule-warning{color:#71501f;background:#fff1cd;border:1px solid #d4aa65;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:12px}.rule-footer{align-items:center;gap:18px;margin-top:14px;display:flex}.check-control{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:flex}.check-control input{accent-color:var(--green)}.rule-footer-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.loader{border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.management-tabs{border:1px solid var(--line);background:#e8e3d8;border-radius:14px;padding:5px;display:flex}.management-tabs button{min-height:40px;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:0 15px;font-size:12px}.management-tabs button.active{color:#fff;background:var(--ink);font-weight:750}.management-grid{grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr);align-items:start;gap:16px;display:grid}.management-grid.reference-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr)}.management-card{border:1px solid var(--line);background:var(--paper);border-radius:18px;overflow:hidden;box-shadow:0 8px 25px #17291f08}.management-card.wide{min-width:0}.integration-connections-card{grid-column:1/-1}.management-card-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:76px;padding:18px 20px;display:flex}.management-card-heading>div:first-child{align-items:center;gap:12px;display:flex}.management-card-heading h2{letter-spacing:-.03em;margin:0;font-size:20px}.management-card-heading small{color:var(--muted);font-size:11px}.management-form,.rule-management-form{border-bottom:1px solid var(--line);background:#f7f3e9;gap:9px;padding:14px;display:grid}.management-form{grid-template-columns:minmax(180px,1fr) 48px 170px auto}.management-form.category-form{grid-template-columns:minmax(150px,1fr) 48px minmax(150px,.9fr) minmax(190px,1.2fr) auto}.management-form.compact{grid-template-columns:1fr auto}.management-form input,.management-form select,.rule-management-form input,.rule-management-form select,.management-row input,.management-row select,.rule-table input,.rule-table select,.account-form input,.account-form select{border:1px solid var(--line);min-height:40px;color:var(--ink);background:#fff;border-radius:9px;outline:none;padding:0 10px}.management-form>input,.management-form>select,.management-row>input,.management-row>select{width:100%;min-width:0}.management-form input[type=color]{padding:5px}.management-list{display:grid}.management-row{border-bottom:1px solid #ebe6da;grid-template-columns:22px minmax(170px,1fr) minmax(150px,.85fr) minmax(190px,1.15fr) auto;align-items:center;gap:10px;min-height:58px;padding:9px 14px;display:grid}.management-row:last-child{border:0}.color-dot{border-radius:50%;width:13px;height:13px}.row-actions,.toolbar{justify-content:flex-end;align-items:center;gap:6px;display:flex}.row-actions button,.toolbar button{border:1px solid var(--line);min-height:32px;color:var(--muted);background:#fff;border-radius:8px;padding:0 9px;font-size:10px}.danger-soft{color:#933d34!important;background:#fff8f7!important;border-color:#d8aaa5!important}.tag-cloud{flex-wrap:wrap;align-content:flex-start;gap:7px;min-height:130px;padding:18px;display:flex}.tag-cloud span{color:#315235;background:#eef4eb;border:1px solid #b8c6b5;border-radius:999px;padding:7px 10px;font-size:11px}.rules-card{grid-column:1/-1}.rule-management-form{grid-template-columns:75px 135px 110px minmax(180px,1fr) minmax(150px,.8fr) 140px auto;align-items:center}.rule-table-wrap{max-height:620px;overflow:auto}.rule-table{border-collapse:collapse;width:100%;min-width:1050px}.rule-table th,.rule-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e8e2d6;padding:9px 10px;font-size:11px}.rule-table th{z-index:1;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;background:#f5f1e7;font-size:9px;position:sticky;top:0}.rule-table td:first-child input{width:65px}.rule-table td:nth-child(2){gap:3px;display:grid}.rule-table td:nth-child(2) small{color:var(--muted)}.rule-table td:nth-child(4){min-width:240px}.rule-table td:nth-child(4) select{width:49%;margin-right:1%}.security-note{color:#684f26;background:#fff4d5;border-left:3px solid #9a7940;margin:16px;padding:12px;font-size:11px;line-height:1.55}.account-form{gap:12px;padding:18px;display:grid}.account-form label{gap:6px;display:grid}.account-form label span{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:750}.verification{border-radius:8px;padding:10px;font-size:11px}.success{color:#2d6638}.failure{color:#983d34}.verification.success{background:#e1eedf}.verification.failure{background:#f6ddda}.account-list{display:grid}.account-list article{border-bottom:1px solid #e8e2d6;justify-content:space-between;align-items:center;gap:20px;min-height:92px;padding:16px 20px;display:flex}.account-list article.disabled{opacity:.55;background:#eeeae1}.account-list article>div:first-child{gap:5px;display:grid}.account-list article span{color:var(--muted);font:10px var(--mono)}.account-list article small{color:var(--muted);font-size:10px}.account-list article em{font-size:10px;font-style:normal}.dashboard-kpis{border:1px solid var(--line);background:var(--ink);color:#fff;border-radius:18px;grid-template-columns:repeat(4,1fr);margin-bottom:16px;display:grid;overflow:hidden}.dashboard-kpis article{border-right:1px solid #ffffff21;align-content:center;gap:8px;min-height:118px;padding:20px;display:grid}.dashboard-kpis article:last-child{border:0}.dashboard-kpis span,.dashboard-kpis small{color:#ffffff9c;font-size:10px}.dashboard-kpis strong{letter-spacing:-.03em;font-size:20px}.dashboard-kpis .negative{color:#f3aaa2}.dashboard-card{border:1px solid var(--line);background:var(--paper);border-radius:18px;margin-top:16px;overflow:hidden}.dashboard-card-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:72px;padding:18px 20px;display:flex}.dashboard-card-heading>div{align-items:center;gap:12px;display:flex}.dashboard-card-heading h2{letter-spacing:-.03em;margin:0;font-size:20px}.dashboard-card-heading small{color:var(--muted);font-size:10px}.savings-chart{padding:18px 22px 14px}.savings-chart svg{width:100%;min-height:240px;overflow:visible}.savings-chart line{stroke:#d8d2c6;stroke-width:1px}.savings-chart text{fill:var(--muted);font-size:11px}.chart-legend{color:var(--muted);justify-content:center;gap:20px;font-size:11px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend i{border-radius:50%;width:9px;height:9px}.dashboard-month-grid{grid-template-columns:repeat(4,1fr);display:grid}.dashboard-month-grid article{border-bottom:1px solid #e6e0d4;border-right:1px solid #e6e0d4;min-height:150px;padding:17px}.dashboard-month-grid article>strong{color:var(--clay);margin-bottom:13px;font-size:17px;display:block}.dashboard-month-grid dl{gap:7px;margin:0;display:grid}.dashboard-month-grid dl div{justify-content:space-between;gap:10px;display:flex}.dashboard-month-grid dt{color:var(--muted);font-size:9px}.dashboard-month-grid dd{margin:0;font-size:10px;font-weight:750}.ok{color:#347342!important}.over{color:#a23d34!important}.breakdown-section{border-bottom:1px solid var(--line)}.breakdown-section:last-child{border:0}.breakdown-toggle{width:100%;min-height:55px;color:var(--ink);text-align:left;background:#f6f2e8;border:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.breakdown-toggle span{color:var(--muted);font-size:10px}.breakdown-table-wrap{overflow-x:auto}.breakdown-table{border-collapse:collapse;width:100%;min-width:1000px}.breakdown-table th,.breakdown-table td{text-align:right;border-bottom:1px solid #e8e2d6;border-right:1px solid #e8e2d6;min-width:76px;padding:9px;font-size:10px}.breakdown-table th{color:var(--muted);text-transform:uppercase;background:#fcfaf4;font-size:8px}.breakdown-table th:first-child,.breakdown-table td:first-child{z-index:1;text-align:left;background:var(--paper);min-width:180px;position:sticky;left:0}.breakdown-table td small,.breakdown-table td strong{display:block}.breakdown-table td small{color:var(--muted);margin-bottom:3px}.login-shell{grid-template-columns:minmax(420px,1.1fr) minmax(480px,.9fr);min-height:100vh;display:grid}.login-story{color:#fbf7ed;background:radial-gradient(circle at 75% 25%,#668263 0,#314b35 34%,#17291f 72%);flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(34px,5vw,76px);display:flex}.login-story .brand{color:#fff}.login-story .brand>span{color:var(--ink);background:#fff}.login-story h1{color:#fff;font-size:clamp(54px,6vw,88px)}.login-story p:not(.eyebrow){color:#ffffffb7;max-width:570px;font-size:18px;line-height:1.65}.login-story small{color:#ffffff6d;font:10px var(--mono);letter-spacing:.1em}.login-panel{background:var(--paper);flex-direction:column;justify-content:center;gap:25px;padding:clamp(38px,6vw,90px);display:flex}.login-panel h2{letter-spacing:-.04em;margin:10px 0;font-size:34px}.login-panel p{color:var(--muted);line-height:1.6}.onboarding-back{min-height:40px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:10px;align-self:flex-start;align-items:center;gap:9px;padding:0 12px;font-size:12px;font-weight:740;display:inline-flex}.onboarding-back span{color:var(--green);font-size:18px;line-height:1;transition:transform .16s}.onboarding-back:hover{border-color:var(--line);color:var(--ink);background:#f3f0e8}.onboarding-back:hover span{transform:translate(-2px)}.onboarding-back:focus-visible{outline-offset:2px;outline:3px solid #48694b2b}.onboarding-back:disabled{cursor:wait;opacity:.55}.auth-mode-tabs{border:1px solid var(--line);background:#ebe7dd;border-radius:12px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.auth-mode-tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:8px;font-weight:760}.auth-mode-tabs button.active{color:var(--ink);background:var(--paper);box-shadow:0 3px 12px #17291f12}.credential-form{gap:14px;display:grid}.credential-form label{gap:6px;display:grid}.credential-form label>span{color:var(--ink);font-size:11px;font-weight:760}.credential-form label>small{color:var(--muted);font-size:9px}.credential-form input{min-height:48px;color:var(--ink);background:#fff;border:1px solid #bfc6ba;border-radius:10px;outline:none;padding:0 13px;font-size:16px}.credential-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #48694b18}.credential-form .primary-action{min-height:50px}.development-login{border-top:1px solid var(--line);padding-top:2px}.development-login summary{color:var(--muted);cursor:pointer;padding:12px 0;font-size:10px;font-weight:700}.profile-login-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.profile-login-grid button{min-height:82px;color:var(--ink);background:#eef4eb;border:1px solid #aebda9;border-radius:14px;align-content:center;justify-items:start;gap:7px;padding:15px;display:grid}.profile-login-grid button:hover{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.profile-login-grid button strong{font-size:18px}.profile-login-grid button span{color:var(--muted);font-size:10px}.provider-divider{color:var(--muted);text-transform:uppercase;align-items:center;gap:12px;font-size:9px;display:flex}.provider-divider:before,.provider-divider:after{content:"";background:var(--line);flex:1;height:1px}.provider-buttons{gap:8px;display:grid}.provider-buttons .button{border:1px solid var(--line);min-height:50px;color:var(--ink);background:#f3f0e8;border-radius:11px;place-items:center;text-decoration:none;display:grid}.provider-buttons .button:hover{border-color:var(--green);background:#eef4eb}.login-panel .security-note{margin:0}.access-version{color:#315235;font:700 10px var(--mono);background:#e4efe1;border:1px solid #9fb39d;border-radius:10px;padding:10px 13px}.planning-allocation-card{margin:0 0 16px;scroll-margin-top:20px}.allocation-heading{align-items:center}.allocation-heading>div:nth-child(2){flex:1;min-width:0}.allocation-month-picker{border:1px solid var(--line);background:#f2eee4;border-radius:12px;flex:none;align-items:center;gap:9px;padding:5px;display:flex}.allocation-month-picker button{width:34px;height:34px;color:var(--ink);background:var(--paper);border:0;border-radius:8px}.allocation-month-picker>div{text-align:center;gap:2px;min-width:72px;display:grid}.allocation-month-picker strong{font-size:12px}.allocation-month-picker span{color:var(--muted);font-size:9px}.allocation-card-body{min-width:0;padding:18px 20px 20px}.allocation-fields{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:18px 0;display:grid}.allocation-card-body .allocation-fields{margin:0 0 16px}.allocation-fields label{background:var(--paper,#f6f3ec);border:1px solid #2c393024;border-radius:12px;gap:7px;min-width:0;padding:14px;display:grid}.allocation-fields label>span{color:var(--muted);font-size:11px}.allocation-fields label>div{align-items:center;gap:8px;display:flex}.allocation-fields input{width:100%;min-width:0;font:inherit;background:0 0;border:0;border-bottom:1px solid #8d978e;font-size:20px}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.allocation-actions .primary-action{max-width:100%}.invite-token code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;max-width:min(540px,70vw)}.profile-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:18px;padding-bottom:40px;display:grid}.profile-settings-card{min-width:0;margin-top:0}.profile-google-card{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-content:start;display:grid}.profile-google-card .access-heading{grid-column:1/-1}.profile-google-card>.notice,.profile-google-card>.profile-inline-status{min-width:0;margin:18px 0 18px 18px}.profile-google-card>.profile-inline-status{background:#f4f1e8;border-radius:12px;align-items:center;padding:14px 16px;display:flex}.profile-google-card>.row-actions{align-self:center;padding:18px}.profile-google-card>.error-banner{grid-column:1/-1;margin:0 18px 18px}.profile-google-card .row-actions .primary-action{border-color:var(--clay);color:#fff;background:var(--clay);min-height:44px}.profile-form label small{color:var(--muted);font-size:9px}.profile-form .primary-action{min-height:46px}.profile-inline-status{color:var(--muted);padding:0 18px 18px;font-size:11px}.profile-family-list{gap:8px;padding:18px;display:grid}.profile-family-list>div{border:1px solid var(--line);background:#faf8f1;border-radius:11px;justify-content:space-between;align-items:center;gap:16px;padding:12px;display:flex}.profile-family-list>div.active{background:#e8f0e5;border-color:#9fb39d}.profile-family-list strong,.profile-family-list small{display:block}.profile-family-list small{color:var(--muted);text-transform:uppercase;margin-top:4px;font-size:9px}.profile-family-list span{color:var(--green);font-size:10px;font-weight:750}.profile-family-tabs{margin:0 18px}.access-card{border:1px solid var(--line);background:var(--paper);border-radius:18px;margin-top:16px;overflow:hidden}.access-heading{border-bottom:1px solid var(--line);align-items:flex-start;gap:13px;padding:20px;display:flex}.access-heading>*{min-width:0}.access-heading>.number{flex-shrink:0;min-width:max-content}.access-heading h2{margin:0 0 6px;font-size:21px}.access-heading p{color:var(--muted);margin:0;font-size:11px}.visibility-matrix{min-width:max-content;display:grid}.visibility-matrix>*{border-bottom:1px solid #e6e0d4;border-right:1px solid #e6e0d4;place-items:center;min-height:58px;padding:10px;font-size:11px;display:grid}.visibility-matrix>strong{background:#f5f1e7}.visibility-matrix .matrix-corner{color:var(--muted);background:#f5f1e7;place-items:center start;font-size:9px}.visibility-matrix .viewer-name{background:#faf7ef;place-items:center start;padding-left:20px}.matrix-cell{justify-content:center;align-items:center;gap:8px;display:flex}.matrix-cell input,.permission-switch input{width:17px;height:17px;accent-color:var(--green)}.matrix-cell.self{color:var(--muted);background:#f0ede5}.permission-table-wrap{overflow-x:auto}.permission-table{border-collapse:collapse;width:100%}.permission-table th,.permission-table td{text-align:center;border-bottom:1px solid #e8e2d6;padding:12px 18px;font-size:11px}.permission-table th{color:var(--muted);text-transform:uppercase;background:#f5f1e7;font-size:9px}.permission-table th:first-child,.permission-table td:first-child{text-align:left;width:55%}.permission-table td:first-child strong,.permission-table td:first-child small{display:block}.permission-table td:first-child small{color:var(--muted);font:8px var(--mono);margin-top:4px}.permission-switch{color:var(--muted);align-items:center;gap:6px;font-size:9px;display:inline-flex}.module-toggle-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:18px;display:grid}.module-toggle{border:1px solid var(--line);background:#faf7ef;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:14px 16px;display:flex}.module-toggle span,.module-toggle strong,.module-toggle small{min-width:0;display:block}.module-toggle small{color:var(--muted);font:9px var(--mono);margin-top:4px}.module-toggle input{width:19px;height:19px;accent-color:var(--green);flex:none}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1100px){.app-header{flex-wrap:wrap;gap:0 18px;padding-top:10px}.app-header nav{scrollbar-width:thin;flex:0 0 100%;order:3;gap:22px;min-width:0;overflow-x:auto}.app-header nav a,.app-header nav span{flex:none;padding:14px 0 12px}.session-controls{margin-left:auto}.year-planning-header{flex-direction:column;align-items:flex-start}.year-actions{flex-wrap:wrap;width:100%}.transaction{grid-template-columns:90px 1fr 1fr}.transaction-amount{flex-direction:row;grid-column:2/-1;justify-content:flex-end;align-items:center;min-height:auto}.manual-form,.rule-grid{grid-template-columns:repeat(3,1fr)}.rule-value{grid-column:span 2}.budget-kpis{grid-template-columns:1fr 1fr}.login-shell{grid-template-columns:1fr}.login-story{min-height:52vh}.budget-kpis>div:nth-child(2){border-right:0}.budget-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.manual-form .primary-action{min-height:42px}.profile-settings-grid{grid-template-columns:minmax(0,1fr)}.profile-google-card{grid-column:auto}.management-grid.reference-grid{grid-template-columns:1fr}}@media (width<=760px){.transactions-page{width:min(100% - 24px,640px)}.app-header{gap:12px;min-height:64px}.app-header nav{gap:18px;display:flex}.session-controls{margin-left:auto}.session-controls select{max-width:125px}.page-intro{flex-direction:column;align-items:stretch;padding-top:38px}.period-picker{justify-content:space-between}.summary-strip{grid-template-columns:1fr 1fr}.summary-strip>div{min-height:78px}.summary-strip .summary-actions{grid-column:1/-1;justify-content:stretch}.summary-actions button{flex:1}.manual-form{grid-template-columns:1fr}.transaction-rule-form{margin-left:6px;margin-right:6px}.rule-grid{grid-template-columns:1fr}.rule-value{grid-column:auto}.rule-preview,.rule-footer{flex-direction:column;align-items:flex-start}.rule-footer-actions{justify-content:flex-end;width:100%;margin-left:0}.form-heading{grid-column:auto}.filters{grid-template-columns:1fr}.segmented{order:2}.segmented button{flex:1}.transaction{grid-template-columns:74px 1fr;gap:14px}.transaction-fields,.transaction-amount{grid-column:1/-1}.transaction-fields{grid-template-columns:repeat(2,1fr)}.transaction-amount{flex-wrap:wrap;justify-content:space-between}.read-only-banner{flex-direction:column;align-items:flex-start}.budget-kpis,.contribution-grid{grid-template-columns:1fr}.budget-kpis>div{border-right:0;border-bottom:1px solid var(--line)}.budget-kpis>div:nth-child(3){border-bottom:1px solid var(--line)}.contribution-grid article{grid-template-columns:1fr}.budget-section-heading{flex-direction:column;align-items:flex-start}.budget-section-total{justify-items:start}.budget-ledger{margin-left:12px;margin-right:12px}.budget-ledger article{grid-template-columns:52px minmax(130px,1fr)}.budget-ledger-amount{grid-column:2}.year-planning-header{flex-direction:column;align-items:flex-start}.year-actions{flex-wrap:wrap;width:100%}.planning-settings{grid-template-columns:1fr 1fr}.planning-settings .primary-action{min-height:40px}.management-tabs{width:100%}.management-tabs button{flex:1}.profile-settings-grid,.management-grid{grid-template-columns:1fr}.rules-card{grid-column:auto}.management-card-heading{flex-direction:column;align-items:flex-start}.toolbar{flex-wrap:wrap;justify-content:flex-start}.management-form,.rule-management-form{grid-template-columns:1fr}.management-row{grid-template-columns:18px 1fr}.management-row select,.management-row .row-actions{grid-column:2}.account-list article{flex-direction:column;align-items:flex-start}.dashboard-kpis,.dashboard-month-grid{grid-template-columns:1fr 1fr}.dashboard-kpis article:nth-child(2){border-right:0}.dashboard-card-heading,.breakdown-toggle{flex-direction:column;align-items:flex-start;gap:7px}.breakdown-toggle{justify-content:center}.login-story{min-height:46vh;padding:30px 24px}.login-story h1{font-size:48px}.login-panel{padding:38px 24px}.profile-login-grid{grid-template-columns:1fr}.profile-family-tabs{width:auto}.profile-google-card{grid-template-columns:minmax(0,1fr)}.profile-google-card>.notice,.profile-google-card>.profile-inline-status{margin:14px 14px 0}.profile-google-card>.row-actions{padding:14px}.profile-google-card>.row-actions button{width:100%}.visibility-matrix{overflow-x:auto}.allocation-heading{flex-wrap:wrap;align-items:flex-start}.allocation-month-picker{justify-content:space-between;width:100%}.allocation-card-body{padding:14px}.allocation-fields{grid-template-columns:minmax(0,1fr)}.allocation-actions{flex-direction:column;align-items:stretch}.allocation-actions .primary-action{width:100%}}.link-button{color:var(--clay);cursor:pointer;font:inherit;text-underline-offset:.2em;background:0 0;border:0;align-self:flex-start;padding:0;font-weight:700;text-decoration:underline}.profile-recovery{border-top:1px solid var(--line);gap:.75rem;margin-top:1.25rem;padding:1.25rem;display:grid}.profile-recovery h3,.profile-recovery p{margin:0}.profile-recovery pre{white-space:pre-wrap;word-break:break-all;max-width:100%;margin:.75rem 0 0;overflow-x:auto}:root{--ink:#17291f;--green:#48694b;--clay:#b4643f;--muted:#59635c;--paper:#fffdf7;--line:#dad4c7;--display:Inter, ui-sans-serif, system-ui, sans-serif;--mono:"SFMono-Regular", Consolas, monospace;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;background:#f2eee4;font-family:Inter,ui-sans-serif,system-ui,sans-serif}body{min-width:320px;min-height:100vh;margin:0}
