:root{--green:#326a94;--pale:#eaf3f9;--ink:#233d51;--line:#e2eaf0;--muted:#728593;--blue:#275f8b;--soft:#f4f8fb;--radius:20px}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:#f6f9fc;color:var(--ink);font:15px/1.6 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--blue);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border:1px solid transparent;border-radius:12px;background:var(--green);color:white;padding:11px 19px;font-weight:600;text-decoration:none;cursor:pointer;transition:background .18s,box-shadow .18s}button:hover,.button:hover{background:#285f87}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #89bedf;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}.quiet{background:#edf4f9;color:var(--blue)}.quiet:hover,.quiet.button:hover{background:#dfeef8;color:var(--blue)}.small{min-height:36px;padding:6px 12px;font-size:12px}.danger{background:#ab5554}.danger:hover{background:#944443}.link{background:none;color:var(--blue);padding:8px}.app-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{max-width:1192px;margin:auto;min-height:98px;padding:16px 28px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);min-width:0}.brand img{width:56px;height:56px;object-fit:contain;flex-shrink:0}.brand strong{font-size:17px;font-weight:650}.brand small{margin-top:0;font-size:12px;color:var(--muted)}.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:8px}.desktop-nav a{padding:10px 15px;color:var(--muted);text-decoration:none;border-radius:12px;font-weight:550}.desktop-nav a:hover,.desktop-nav a[aria-current]{background:var(--pale);color:var(--blue)}.menu-toggle{padding:10px 14px}.menu-toggle svg,.mobile-nav svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.language-switch{display:flex;gap:6px;margin-left:auto}.language-switch .quiet{min-width:44px}.language-switch .selected{background:#dfeef8;color:#22557e}.menu-dialog{inset:0 0 0 auto;margin:0;width:min(370px,92vw);height:100dvh;max-height:none;max-width:none;border:0;background:white;padding:28px;box-shadow:-15px 0 80px #223d5125;color:var(--ink)}dialog::backdrop{background:#20364b55;backdrop-filter:blur(3px)}.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:23px}.drawer-heading h2{margin:0}.drawer-heading .eyebrow{margin:0 0 4px}.icon-button{font-size:27px;min-width:44px;padding:0 12px}.drawer-nav{display:grid;gap:6px}.drawer-nav a{display:flex;justify-content:space-between;padding:13px 15px;min-height:50px;border-radius:12px;text-decoration:none;color:var(--ink);font-weight:550}.drawer-nav a span{color:#a9bbc8}.drawer-nav a:hover{background:var(--pale);color:var(--blue)}.drawer-divider{border-top:1px solid var(--line);margin:10px 0}.drawer-bottom{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.drawer-bottom .language-switch{margin:0}.about-button,.logout-button{margin-top:14px;width:100%;justify-content:flex-start;background:transparent;padding-left:12px}.logout-button{color:#906b6b}.info-dialog{border:1px solid var(--line);border-radius:24px;padding:28px;width:min(560px,92vw);max-height:85dvh;color:var(--ink)}body.dialog-open{overflow:hidden}.mobile-nav{display:none}main{max-width:1192px;margin:38px auto 60px;padding:0 28px;min-height:68vh}h1{font-size:32px;font-weight:650;line-height:1.2;letter-spacing:-.9px;margin:8px 0 22px}h2{font-size:19px;font-weight:630;margin:0 0 16px}h3{font-size:16px}p{margin:8px 0 16px}.muted,small{color:var(--muted)}small{display:block;font-size:12px;margin-top:4px}.eyebrow{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 10px}.heading,.row,.balance-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.heading{margin-bottom:20px}.heading h1,.heading h2{margin-bottom:0}.page-heading{margin-bottom:34px}.page-description{margin:8px 0 0;font-size:14px}.balance-heading{margin-bottom:14px}.balance-heading h2{font-size:14px;color:var(--muted);font-weight:550;margin:0}.balance-heading>span{font-size:12px}.row{padding:13px 0;border-bottom:1px solid var(--line)}.row:last-child{border:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:18px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);padding:26px;border-radius:var(--radius);margin-bottom:24px;box-shadow:0 5px 22px #325b7614}.cards .card{margin:0}.balance-card{padding:24px 26px;min-width:0}.balance-card p{font-size:13px;color:var(--muted);margin:0 0 12px}.amount{display:block;font-size:30px;letter-spacing:-.8px;line-height:1.3;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.total{background:#eaf3fa;border-color:#d8e8f4;box-shadow:none}.total p{color:#6c8da6}.total .amount{color:#255e8a}.income{color:#43816f}.expense{color:#b06b62}.period-card{padding:26px 28px}.period-form,.period-controls{display:flex;align-items:center;gap:8px}.period-form{flex-wrap:wrap;justify-content:flex-end}.period-form select,.period-form input{width:auto;margin:0;background:#f8fafc;border-color:#e4edf3;font-size:13px;min-height:42px;padding:8px 11px}.period-form>select{font-weight:600}.period-form button{min-height:42px;font-size:13px}.period-caption{font-size:12px;margin:3px 0 24px}.period-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.period-totals p{color:var(--muted);font-size:13px;margin:0 0 10px}.period-totals .amount{font-size:29px}.footnote{font-size:11px;color:#90a1ad;margin:24px 0 0}.attention-strip{display:flex;flex-wrap:wrap;gap:12px;margin:-2px 0 22px}.attention-strip a{display:flex;align-items:center;gap:9px;min-height:40px;text-decoration:none;font-size:12px;color:#758b9c;padding:0 4px}.count{border-radius:7px;background:#e8eff5;color:#5f7d93;padding:2px 7px;font-size:11px;font-weight:650}.recent-card .heading{margin-bottom:10px}.text-link{font-size:12px;text-decoration:none;min-height:40px;display:inline-flex;align-items:center;white-space:nowrap}.category-details summary{font-size:14px;color:var(--muted)}label{display:block;font-size:13px;font-weight:550;margin-bottom:18px}input,select,textarea{display:block;width:100%;min-width:0;min-height:46px;margin-top:7px;border:1px solid #d8e4ed;border-radius:11px;background:#fcfdfe;padding:11px 13px;color:var(--ink);font-size:15px}input:focus,select:focus,textarea:focus{outline:3px solid #d8ebf8;border-color:#7aa8c6}textarea{resize:vertical;min-height:82px}.check{display:flex;align-items:flex-start;gap:11px;font-weight:450}.check input{width:19px;height:19px;min-height:19px;margin:3px 0 0;flex-shrink:0;accent-color:var(--blue)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:0 20px}.inline{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.inline label{margin:0}.inline input,.inline select{width:auto}.inline button{margin-top:7px}.entry-page{max-width:730px;margin:0 auto}.entry-page .page-heading{margin:0 0 26px}.entry-page h1{margin-top:12px}.back-link{text-decoration:none;color:var(--muted);font-size:12px;display:inline-flex;align-items:center;min-height:38px}.entry-form{padding:30px 34px}.kind-picker{border:0;padding:5px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:0 0 28px;background:#edf3f7;border-radius:14px}.kind-picker label{position:relative;margin:0;cursor:pointer}.kind-picker input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.kind-picker span{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;color:#7b909f;font-weight:550;font-size:14px}.kind-picker input:checked+span{background:white;color:var(--blue);box-shadow:0 2px 8px #38678112}.kind-picker input:focus-visible+span{outline:3px solid #98c3df}.amount-field{margin-bottom:26px}.amount-input{display:flex;align-items:center;position:relative}.amount-input input{padding:15px 48px 15px 15px;font-size:30px;letter-spacing:-.7px;font-weight:600;min-height:76px;background:#f6fafd;border-color:#e0ecf5}.amount-input>span{position:absolute;right:19px;top:50%;transform:translateY(-40%);font-size:23px;font-weight:450;color:#7d9aaf}.amount-input input::placeholder{color:#a9bfce;font-weight:400}.field-hint{font-size:12px;color:var(--muted);margin:-9px 0 20px}.inline-details{border:0;padding:0 0 18px;margin-top:-4px}.inline-details summary{font-size:12px;font-weight:500;color:var(--blue);min-height:34px;list-style:none}.inline-details[open] summary{margin-bottom:10px}.optional{font-weight:400;color:#9aabb7}.extra-details{border-top:1px solid var(--line);border-bottom:0;padding:16px 0;margin:4px 0 20px}.extra-details summary{font-size:13px;font-weight:500}.extra-details summary .muted{font-size:11px;margin-left:12px;font-weight:400}.extra-details[open] .form-grid{padding-top:12px}.form-actions{display:flex;align-items:center;gap:12px;padding-top:6px}.form-actions button{min-width:145px}.form-actions .quiet{background:transparent}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{color:#91a3af;font-size:11px;font-weight:500;background:#f7fafc;padding:12px 10px;border-radius:5px}td{padding:18px 10px;border-bottom:1px solid #edf2f6;vertical-align:top}tbody tr:last-child td{border-bottom:0}.ledger-table .entry-date>a{font-size:12px;text-decoration:none}.entry-description{font-weight:550;max-width:360px}.entry-description small{font-weight:400;font-size:11px}.entry-account{font-size:12px}.entry-account small{font-size:11px;margin-top:3px}.entry-amount{font-weight:600}.type-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#88a7bd;margin:0 7px 2px 0}.type-dot.income{background:#88b7a5}.type-dot.expense{background:#d3a096}.badge{font-size:10px;border-radius:6px;padding:3px 7px;background:#f2eeee;color:#9d8282}.badge.active{background:#edf4f1;color:#8ca59b}.empty{text-align:center;padding:38px 20px;color:var(--muted);font-size:13px;max-width:none}.nowrap{white-space:nowrap}.alert{padding:14px 18px;border:1px solid #d5e5ef;background:#edf6fc;border-radius:13px;margin-bottom:20px;font-size:13px}.alert.error,.alert.warning{background:#fff5ef;border-color:#ecd9c9}.errorlist{color:#ac534d;font-size:12px;padding-left:18px}.danger-zone{border-color:#ecd9d6;background:#fffcfb}.danger-zone h2{color:#a45d57}.danger-zone code{font-size:11px;overflow-wrap:anywhere}.demo-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;background:#f3f8fc;border-radius:13px;padding:18px;margin:20px 0}.demo-preview span{color:var(--muted);font-size:12px}.demo-preview strong{display:block;color:var(--blue);font-size:18px;font-weight:600}.logo-preview{width:76px;height:76px;object-fit:contain;margin-bottom:12px}.settings-links{display:flex;gap:12px;flex-wrap:wrap}.settings-links a{text-decoration:none;padding:12px 16px;background:var(--pale);border-radius:12px;font-size:13px}details{padding:15px 0;border-bottom:1px solid var(--line)}details.card{padding:23px 26px}summary{cursor:pointer;font-weight:550;min-height:36px}details[open]>summary{margin-bottom:16px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.6 ui-monospace,monospace;background:#f4f8fb;border-radius:10px;padding:14px}.login{max-width:450px;margin:55px auto}.login button{width:100%}.login .check{font-size:12px}.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}[hidden]{display:none!important}
@media(max-width:900px){.desktop-nav{gap:0}.desktop-nav a{padding:9px 11px}.header-inner{gap:12px}.period-card>.heading{align-items:flex-start;flex-direction:column;gap:13px}.period-form{justify-content:flex-start}.balance-card{padding:21px}.amount{font-size:27px}}
@media(max-width:640px){body{font-size:14px}.header-inner{min-height:77px;padding:10px 18px;gap:10px}.brand{gap:9px}.brand img{width:45px;height:45px}.brand strong{font-size:14px}.brand small{font-size:10px}.desktop-nav{display:none}.menu-toggle{margin-left:auto;min-width:44px;padding:10px 12px;background:#f2f7fb}.menu-toggle>span{display:none}.header-inner>.language-switch button{padding:7px 9px;min-width:36px;min-height:38px}.mobile-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--line);backdrop-filter:blur(12px)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:49px;text-decoration:none;color:#8a9dab;font-size:10px;font-weight:500;border-radius:12px}.mobile-nav a[aria-current]{color:var(--blue);background:#edf5fa}.mobile-nav svg{width:21px;height:21px}main{margin:25px auto 0;padding:0 16px 100px;min-height:70vh}h1{font-size:27px;letter-spacing:-.8px}h2{font-size:16px}.page-heading{margin-bottom:26px;align-items:center;gap:12px}.page-heading .eyebrow{font-size:9px;margin-bottom:5px}.page-heading .page-description{font-size:11px;max-width:205px}.page-heading .button{min-height:42px;padding:10px 12px;gap:5px;font-size:12px;border-radius:10px;white-space:nowrap}.cards{gap:12px}.balance-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.balance-card{padding:17px 16px;border-radius:17px}.balance-card p{font-size:11px;line-height:1.45;margin-bottom:11px;min-height:16px}.balance-card .amount{font-size:23px;letter-spacing:-.7px}.balance-card.total{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px}.balance-card.total p{margin:0;font-size:12px}.balance-card.total .amount{font-size:25px}.balance-heading{margin-bottom:10px}.balance-heading h2,.balance-heading>span{font-size:11px}.card{padding:20px;border-radius:18px;box-shadow:0 4px 17px #3b64850a;margin-bottom:20px}.period-card{padding:20px 18px}.period-card>.heading{gap:14px;margin-bottom:12px}.period-form{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px;width:100%}.period-controls{gap:5px;min-width:0}.period-form select,.period-form input{font-size:12px;min-height:42px;padding:8px 7px;min-width:0;width:100%}.period-form>select{width:auto;min-width:57px}.period-form button{min-height:42px;padding:9px;font-size:11px}.period-controls select:first-of-type{flex:1}.period-controls select:last-of-type:not(:first-of-type){flex:0 0 62px;width:62px}.period-caption{margin:0 0 21px;font-size:10px}.period-totals{gap:11px}.period-totals .amount{font-size:20px;letter-spacing:-.7px}.period-totals p{font-size:11px;margin-bottom:8px}.footnote{font-size:9px;margin-top:21px}.attention-strip{gap:6px;margin:-5px 0 16px}.attention-strip a{font-size:10px;gap:6px;min-height:33px}.attention-strip .count{font-size:10px}.recent-card{padding:20px 16px 8px}.recent-card .heading{margin-bottom:0}.text-link{font-size:11px}.table-wrap{overflow:visible}.ledger-table{display:block}.ledger-table thead{display:none}.ledger-table tbody{display:block}.ledger-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:17px 0;border-bottom:1px solid var(--line)}.ledger-table td{display:block;border:0;padding:0;min-width:0}.ledger-table .entry-description{grid-column:1;grid-row:1;font-size:13px;overflow-wrap:anywhere;max-width:none}.entry-description small{font-size:10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ledger-table .entry-amount{grid-column:2;grid-row:1;font-size:14px;text-align:right;align-self:start}.ledger-table .entry-account{grid-column:1;grid-row:2;font-size:10px;color:var(--muted);display:flex;align-items:baseline;flex-wrap:wrap;gap:4px}.ledger-table .entry-account small{display:inline;font-size:10px;margin:0}.type-dot{margin-right:1px;width:4px;height:4px}.ledger-table .entry-date{grid-column:1;grid-row:3}.ledger-table .entry-date a{display:inline-flex;align-items:center;min-height:30px;font-size:10px;color:#95a5b2}.ledger-table .record-time{display:none}.ledger-table .entry-status{grid-column:2;grid-row:3;text-align:right;align-self:center}.badge{font-size:9px}.ledger-table .empty-row{display:block}.ledger-table .empty{padding:22px 8px;font-size:12px}.category-details summary{font-size:12px}.entry-page{max-width:none}.entry-page .page-heading{margin-bottom:18px}.entry-page h1{margin-top:8px}.entry-form{padding:21px 20px}.kind-picker{margin-bottom:23px}.kind-picker span{min-height:43px;font-size:13px}.amount-input input{font-size:29px;min-height:72px}.form-grid{grid-template-columns:1fr;gap:0}label{font-size:12px;margin-bottom:17px}input,select,textarea{font-size:16px;min-height:48px;padding:11px 12px}.entry-form textarea{min-height:76px}.entry-form .form-actions{position:sticky;bottom:75px;background:#ffffffed;backdrop-filter:blur(8px);padding:11px 0 0;margin-top:10px}.form-actions button{flex:1;min-width:0}.form-actions .quiet{padding:10px 14px;font-size:13px}.extra-details summary .muted{display:block;margin:4px 0 0}.extra-details{margin-bottom:12px}.inline{align-items:stretch}.inline input,.inline select{width:100%}.inline label{flex:1 1 100%}.menu-dialog{padding:24px;max-height:100dvh}.drawer-heading{margin-bottom:18px}.drawer-nav a{min-height:47px;padding:11px 13px}.drawer-bottom{margin-top:21px}.drawer-bottom .language-switch button{font-size:12px}.info-dialog{padding:22px}.demo-preview{padding:15px;gap:10px}.demo-preview strong{font-size:16px}details.card{padding:20px}.login{margin:30px auto}.danger-zone code{font-size:10px}.row{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:640px){.focused-form .mobile-nav{display:none}.focused-form main{padding-bottom:30px}.entry-form .form-actions{position:static;background:none;backdrop-filter:none;padding-top:14px}.ledger-table tbody tr{position:relative}.ledger-table .entry-date a::after{content:"";position:absolute;inset:0}.menu-dialog .drawer-bottom{padding-bottom:env(safe-area-inset-bottom)}}

.kind-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.planning-overview{margin:24px 0}.planning-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.planning-cards>a{display:block;background:#eef4f9;border:1px solid #e2ecf4;border-radius:15px;padding:17px 20px;text-decoration:none;min-width:0}.planning-cards span{font-size:12px;color:var(--muted)}.planning-cards strong{display:block;font-size:23px;letter-spacing:-.5px;font-weight:600;margin-top:6px;overflow-wrap:anywhere}.planning-cards small{font-size:10px}.planning-overview>.footnote{margin-top:10px}.upcoming-list{margin-top:13px}.upcoming-list>a{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 5px;border-bottom:1px solid var(--line);text-decoration:none;font-size:12px}.upcoming-list strong{font-size:13px;white-space:nowrap}.upcoming-list small{font-size:10px}.overdue-links{display:flex;gap:9px;flex-wrap:wrap}.overdue-link{font-size:10px;color:#af7164;text-decoration:none}.plan-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:-9px 0 24px}.plan-tabs a{border-radius:10px;padding:9px 14px;text-decoration:none;color:var(--muted);font-size:12px}.plan-tabs a[aria-current]{color:var(--blue);background:#e4f0f8}.plan-filter{display:grid;grid-template-columns:1fr 1fr 1.3fr auto;gap:12px;align-items:end}.plan-filter label{margin:0}.plan-list-summary{display:flex;align-items:baseline;gap:13px;padding:23px 0 12px;color:var(--muted);font-size:12px}.plan-list-summary strong{font-size:23px;color:var(--blue)}.obligation-row{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:20px 3px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.obligation-row:last-child{border:0}.obligation-row strong{font-weight:600;font-size:14px}.obligation-row small{font-size:11px}.obligation-amount{text-align:right;min-width:130px}.obligation-amount>strong{font-size:19px}.plan-status{display:inline-block;padding:2px 8px;background:#eef3f7;color:#7893a7;border-radius:7px;font-size:10px;margin-top:6px}.plan-status.partial{background:#f9f0e3;color:#aa8657}.plan-status.complete{background:#eaf5ee;color:#598a70}.plan-status.waived{background:#f3eeee;color:#a48888}.plan-metadata{display:flex;flex-wrap:wrap;gap:7px 23px;margin:22px 0 0;color:var(--muted);font-size:12px}.settlement-row,.rule-row{padding:18px 0;border-bottom:1px solid var(--line)}.settlement-row:last-child,.rule-row:last-child{border:0}.settlement-row a,.rule-row a{text-decoration:none}.settlement-row details summary{font-size:11px;color:var(--muted)}.rule-actions{display:flex;gap:9px}.pagination{display:flex;justify-content:space-between;gap:15px;padding-top:22px;font-size:12px}.drawer-more{margin-top:8px;padding:13px 0 0;border-bottom:0;border-top:1px solid var(--line)}.drawer-more summary{padding:0 13px;font-size:13px;color:var(--muted)}.drawer-more[open]>summary{margin-bottom:5px}.entry-amount.loan_out{color:#b06b62}.entry-amount.loan_in{color:#43816f}.type-dot.loan_out{background:#bba4cc}.type-dot.loan_in{background:#a4bbce}
@media(max-width:640px){.kind-picker span{font-size:12px}.kind-picker{gap:3px}.planning-cards{gap:8px}.planning-cards>a{padding:13px 10px;border-radius:13px}.planning-cards span{font-size:10px}.planning-cards strong{font-size:17px}.planning-cards small{font-size:9px}.planning-overview{margin:21px 0}.upcoming-list>a{font-size:11px;gap:9px}.upcoming-list strong{font-size:12px}.plan-tabs{gap:3px;margin:0 0 20px}.plan-tabs a{padding:8px 10px;font-size:10px}.plan-filter{grid-template-columns:1fr 1fr;gap:11px}.plan-filter input,.plan-filter select{font-size:13px}.plan-list-summary{flex-wrap:wrap;gap:6px 12px}.obligation-row{gap:12px;padding:18px 0;align-items:start}.obligation-row strong{font-size:12px;overflow-wrap:anywhere}.obligation-amount{min-width:95px;max-width:45%}.obligation-amount>strong{font-size:16px}.obligation-row small{font-size:10px}.overdue-link{font-size:9px}.overdue-links{justify-content:flex-end}.rule-row .heading{align-items:flex-start}.rule-row .heading>strong{font-size:14px;white-space:nowrap}.rule-row small{font-size:10px}}

/* Shared readability: secondary text remains legible on white and pale blue. */
:root{--muted:#526575}
.total p{color:#466780}
.income,.entry-amount.loan_in{color:#28705b}
.expense,.entry-amount.loan_out{color:#a3443a}
small,.footnote,.field-hint,.optional,.period-caption{font-size:13px;line-height:1.6}
.footnote,.optional,.attention-strip a,.category-details summary,.back-link{color:var(--muted)}
.balance-card p,.balance-heading h2,.balance-heading>span,.period-totals p,.planning-cards span{font-size:14px;font-weight:500}
.count{color:#466278;font-size:12px}
th{color:#455e70;font-size:12px;font-weight:650}
.entry-description small,.entry-account small,.planning-cards small,.upcoming-list small,.obligation-row small,.rule-row small{font-size:12px}
.kind-picker span,.amount-input>span{color:#50697c}
input::placeholder,textarea::placeholder,.amount-input input::placeholder{color:#607689;opacity:1}
.badge{color:#795050;font-size:12px}
.badge.active{color:#38664f}
.plan-status{color:#49667b;font-size:12px}
.plan-status.partial{color:#80591f}
.plan-status.complete{color:#386b4d}
.plan-status.waived{color:#795050}
.overdue-link{color:#983e30;font-size:12px;font-weight:550}
.drawer-nav a span{color:#597487}
.logout-button{color:#845050}
.plan-tabs a,.pagination,.text-link,.attention-strip a{font-size:13px}
@media(max-width:640px){
 .brand small{font-size:12px}
 .page-heading .eyebrow{font-size:10px}
 .page-heading .page-description{font-size:13px}
 .balance-card p,.balance-card.total p,.balance-heading h2,.balance-heading>span,.period-totals p,.planning-cards span{font-size:13px}
 .footnote,.period-caption,.attention-strip a,.attention-strip .count,.category-details summary,.entry-description small,.ledger-table .entry-account,.ledger-table .entry-account small,.ledger-table .entry-date a,.planning-cards small,.upcoming-list small,.obligation-row small,.rule-row small,.overdue-link,.plan-tabs a,.extra-details summary .muted{font-size:12px}
 .ledger-table .entry-date a{color:var(--muted)}
 .mobile-nav a{color:#50697c;font-size:12px;font-weight:600}
 .planning-cards>a{padding:14px 10px}
 .planning-cards span{display:block;line-height:1.45;min-height:38px}
 .badge{font-size:11px}
 .period-form button{font-size:12px}
 .danger-zone code{font-size:12px}
}

/* Shared readability: secondary text remains legible on white and pale blue. */
:root{--muted:#526575}
.total p{color:#466780}
.income,.entry-amount.loan_in{color:#28705b}
.expense,.entry-amount.loan_out{color:#a3443a}
small,.footnote,.field-hint,.optional,.period-caption{font-size:13px;line-height:1.6}
.footnote,.optional,.attention-strip a,.category-details summary,.back-link{color:var(--muted)}
.balance-card p,.balance-heading h2,.balance-heading>span,.period-totals p,.planning-cards span{font-size:14px;font-weight:500}
.count{color:#466278;font-size:12px}
th{color:#455e70;font-size:12px;font-weight:650}
.entry-description small,.entry-account small,.planning-cards small,.upcoming-list small,.obligation-row small,.rule-row small{font-size:12px}
.kind-picker span,.amount-input>span{color:#50697c}
input::placeholder,textarea::placeholder,.amount-input input::placeholder{color:#607689;opacity:1}
.badge{color:#795050;font-size:12px}
.badge.active{color:#38664f}
.plan-status{color:#49667b;font-size:12px}
.plan-status.partial{color:#80591f}
.plan-status.complete{color:#386b4d}
.plan-status.waived{color:#795050}
.overdue-link{color:#983e30;font-size:12px;font-weight:550}
.drawer-nav a span{color:#597487}
.logout-button{color:#845050}
.plan-tabs a,.pagination,.text-link,.attention-strip a{font-size:13px}
@media(max-width:640px){
 .brand small{font-size:12px}
 .page-heading .eyebrow{font-size:10px}
 .page-heading .page-description{font-size:13px}
 .balance-card p,.balance-card.total p,.balance-heading h2,.balance-heading>span,.period-totals p,.planning-cards span{font-size:13px}
 .footnote,.period-caption,.attention-strip a,.attention-strip .count,.category-details summary,.entry-description small,.ledger-table .entry-account,.ledger-table .entry-account small,.ledger-table .entry-date a,.planning-cards small,.upcoming-list small,.obligation-row small,.rule-row small,.overdue-link,.plan-tabs a,.extra-details summary .muted{font-size:12px}
 .ledger-table .entry-date a{color:var(--muted)}
 .mobile-nav a{color:#50697c;font-size:12px;font-weight:600}
 .planning-cards>a{padding:14px 10px}
 .planning-cards span{display:block;line-height:1.45;min-height:38px}
 .badge{font-size:11px}
 .period-form button{font-size:12px}
 .danger-zone code{font-size:12px}
}

.quick-search{display:flex;gap:10px;align-items:center;margin:0 0 27px}.search-input{position:relative;flex:1;min-width:0}.search-input svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:21px;height:21px;fill:none;stroke:var(--muted);stroke-width:1.8;pointer-events:none}.search-input input{margin:0;padding-left:46px;background:#fff;min-height:50px}.quick-search button{min-height:50px}.search-hint{margin-top:-13px}.search-result{display:flex;align-items:center;justify-content:space-between;gap:18px;text-decoration:none;padding:17px 0;border-bottom:1px solid var(--line);color:var(--ink)}.search-result:last-child{border:0}.search-result>span:last-child{font-size:13px;color:var(--blue);flex-shrink:0}.search-result strong{font-size:14px;overflow-wrap:anywhere}.search-result>span:first-child{min-width:0}.search-result:hover strong{text-decoration:underline}
@media(max-width:640px){.quick-search{gap:8px;margin-bottom:23px}.quick-search button{padding:10px 15px}.search-input input{font-size:14px;padding-left:40px}.search-input svg{left:12px;width:19px}.search-result{gap:12px}.search-result strong{font-size:13px}.search-result>span:last-child{font-size:12px}}
