:root{--sans: "Public Sans", system-ui, -apple-system, sans-serif;--mono: "Spline Sans Mono", ui-monospace, "SF Mono", monospace;--serif: "Newsreader", Georgia, serif;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--s8:44px;--r1:3px;--r2:5px;--r3:8px;--row-h: 44px;--pad-x: 20px;--t-fast:.12s;--t:.18s;--t-slow:.26s;--ease: cubic-bezier(.2,.6,.3,1);--paper: #f4f1ea;--paper-2: #ece7dc;--sheet: #fcfbf7;--sheet-2: #f1ede4;--ink: #1a1712;--ink-2: #423b31;--ink-3: #6b6357;--ink-4: #968c7d;--ink-5: #c1b8a8;--rule: #dcd4c5;--rule-2: #e7e0d2;--accent: #ad4127;--accent-2:#8f3420;--accent-ink:#fcfbf7;--accent-soft:#e9d4ca;--accent-wash:#f2e2db;--shadow: 0 1px 2px rgba(40,30,16,.06);--shadow-pop: 0 16px 44px -18px rgba(40,30,16,.28);--real:#2f7d52;--proj:#4f5fb0;--avail:#1f8a6d;--comm:#b07d22;--over:#b0432b;--risk:#97376a;--unrec:#7a7264;--real-w:#e2ece6;--proj-w:#e3e5f1;--over-w:#f1ddd5;--surface: var(--sheet);--surface-2: var(--sheet-2);--surface-card: var(--sheet);--border: var(--rule);--text-2: var(--ink-3);--text-muted: var(--ink-3);--positive: var(--real);--negative: var(--over);--warning: var(--comm);--comm-w: #efe6d2;--accent-subtle: var(--accent-wash);--color-background: var(--paper);--color-surface: var(--sheet);--color-surface-raised: var(--sheet-2);--color-border: var(--rule);--color-text-secondary: var(--ink-3);--color-text-muted: var(--ink-4);--color-error: var(--over);--color-success: var(--real);--color-positive: var(--real);--shadow-lg: var(--shadow-pop)}.notification-bell{position:relative;display:inline-grid;place-items:center;min-width:42px;min-height:42px;color:var(--ink);border:1px solid var(--rule);border-radius:999px;background:var(--surface)}.notification-count{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:999px;background:var(--danger, #b83b2a);color:#fff;font-size:.68rem;font-weight:700}.notification-toolbar,.notification-card-heading,.notification-card-actions,.push-preference{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.notification-toolbar{margin-bottom:var(--s4)}.segmented-control{display:inline-flex;padding:3px;border:1px solid var(--rule);border-radius:10px;background:var(--surface-subtle, var(--surface))}.segmented-control button{padding:8px 14px;border:0;border-radius:7px;color:var(--muted);background:transparent;cursor:pointer}.segmented-control button.is-active{color:var(--ink);background:var(--surface);box-shadow:0 1px 4px #0000001a}.notification-list{display:grid;gap:var(--s3)}.notification-card,.notification-preferences{border:1px solid var(--rule);border-radius:14px;background:var(--surface)}.notification-card{position:relative;padding:var(--s4)}.notification-card.is-unread{border-left:4px solid var(--accent)}.notification-card h2{margin:var(--s2) 0;font-size:1.05rem}.notification-card p{margin:0 0 var(--s3);color:var(--muted)}.notification-card time,.push-preference small{color:var(--muted);font-size:.78rem}.notification-category{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.notification-more{justify-self:center}.notification-preferences{display:grid;gap:var(--s3);margin-top:var(--s6);padding:var(--s4)}.notification-preferences h2{margin:0}.notification-preferences label{display:flex;align-items:center;gap:var(--s2)}.push-preference{padding-top:var(--s3);border-top:1px solid var(--rule)}.push-preference span{display:grid;gap:3px}@media(max-width:640px){.notification-toolbar,.notification-card-heading,.push-preference{align-items:stretch;flex-direction:column}.notification-toolbar .button,.push-preference .button{width:100%;justify-content:center}.notification-card-actions{align-items:stretch;flex-direction:column}}@media(prefers-color-scheme:dark){:root{--paper: #16140f;--paper-2: #1d1a14;--sheet: #211d16;--sheet-2: #262219;--ink: #f3efe6;--ink-2: #cfc7b8;--ink-3: #9c9384;--ink-4: #756d60;--ink-5: #4a443a;--rule: #353026;--rule-2: #2a261d;--accent: #d4623f;--accent-2:#e0764f;--accent-ink:#1a1712;--accent-soft:#48342a;--accent-wash:#2e2118;--shadow: 0 1px 2px rgba(0,0,0,.4);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--sans);font-size:14px;line-height:1.5;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0}h1{font-size:1.625rem}h2{font-size:1.0625rem;margin:var(--s7) 0 var(--s3)}h3{font-size:.9375rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.amt{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}.label-mono{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-4);font-weight:500}.app-shell{display:grid;grid-template-columns:240px 1fr;grid-template-rows:auto 1fr;grid-template-areas:"topbar topbar" "nav    main";min-height:100vh}.app-topbar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad-x);height:52px;background:var(--sheet);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:20}.app-brand{font-weight:700;font-size:15px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}.brand-mark{width:30px;height:30px;border-radius:var(--r2);background:var(--ink);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:14px;flex-shrink:0}.brand-mark span{color:var(--accent)}.brand-mark img{display:block;width:24px;height:24px}.portal-brand{text-align:center}.portal-brand-mark{display:block;width:72px;height:72px;margin:0 auto var(--s3)}.portal-shell{min-height:100vh;padding:clamp(20px,5vw,64px) var(--s4);background:linear-gradient(125deg,rgba(173,65,39,.08),transparent 42%),var(--paper)}.portal-login-card,.portal-account{width:min(100%,1080px);margin:0 auto}.portal-login-card{max-width:460px;padding:clamp(24px,6vw,44px);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r3);box-shadow:var(--shadow-pop)}.portal-brand-name,.portal-account-kicker{margin:0;color:var(--accent);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em}.portal-brand h1{margin:var(--s3) 0 var(--s1);font-family:var(--serif);font-size:clamp(30px,7vw,40px);line-height:1.05}.portal-brand-subtitle,.portal-auth-copy{color:var(--ink-3)}.portal-auth-form{display:grid;gap:var(--s3);margin-top:var(--s6)}.portal-auth-copy{margin:0 0 var(--s2);line-height:1.55}.portal-code-input{font-family:var(--mono);font-size:24px;font-weight:700;letter-spacing:.3em;text-align:center}.portal-primary-action,.portal-secondary-action{width:100%;justify-content:center}.portal-primary-action{margin-top:var(--s2)}.portal-privacy-note{margin:var(--s5) 0 0;color:var(--ink-4);font-size:12px;text-align:center}.portal-renewal{margin-top:var(--s5);padding-top:var(--s5);border-top:1px solid var(--rule)}.portal-renewal-title{margin:0 0 var(--s2);font-family:var(--serif);font-size:18px}.portal-renewal-form{display:grid;gap:var(--s3)}.portal-renewal .hint-text{margin-top:var(--s3)}.portal-account{padding:clamp(20px,4vw,40px);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r3);box-shadow:var(--shadow)}.portal-account-header,.portal-loan-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.portal-account-name{margin:var(--s1) 0}.portal-loans-list{display:grid;gap:var(--s4)}.portal-account-quotes{display:grid;gap:var(--s3);margin-bottom:var(--s5)}.portal-loan-card{padding:var(--s5);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r2)}.portal-quote{margin:var(--s4) 0;overflow:hidden;background:var(--sheet-2);border:1px solid var(--rule);border-radius:var(--r2)}.portal-account-quotes .portal-quote{margin:0;border-color:color-mix(in srgb,var(--accent) 32%,var(--rule));box-shadow:inset 4px 0 0 var(--accent)}.portal-install-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3);margin:var(--s4) 0;padding:var(--s3) var(--s4);background:var(--sheet-2);border:1px solid color-mix(in srgb,var(--accent) 32%,var(--rule));border-radius:var(--r2)}.portal-install-card p{margin:2px 0 0}.portal-install-card-actions{display:flex;gap:var(--s2);flex-shrink:0}.portal-quote-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4);border-bottom:1px solid var(--rule)}.portal-quote-kicker,.portal-quote-as-of{margin:0}.portal-quote-kicker{color:var(--ink-1);font-weight:700}.portal-quote-as-of{margin-top:var(--s1);color:var(--ink-4);font-size:12px}.portal-quote-total{flex-shrink:0;text-align:right}.portal-quote-total span{display:block;color:var(--ink-3);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.portal-quote-total strong{display:block;margin-top:var(--s1);color:var(--accent);font-size:clamp(22px,3vw,30px);font-variant-numeric:tabular-nums;letter-spacing:-.025em}.portal-quote-formula{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;margin:0}.portal-quote-formula>div{min-width:0;padding:var(--s3)}.portal-quote-formula>span{align-self:center;color:var(--ink-4);font:700 18px var(--mono)}.portal-quote-formula dt{color:var(--ink-3);font-size:11px}.portal-quote-formula dd{margin:var(--s1) 0 0;overflow-wrap:anywhere;font-weight:700;font-variant-numeric:tabular-nums}.portal-quote-formula-total{background:color-mix(in srgb,var(--accent) 8%,var(--sheet))}.portal-quote-formula-total dd{color:var(--accent)}.portal-loan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:var(--s4) 0;padding:1px;background:var(--rule)}.portal-loan-grid>div{min-width:0;padding:var(--s3);background:var(--sheet-2)}.portal-loan-grid dt{color:var(--ink-3);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.portal-loan-grid dd{margin:var(--s1) 0 0;font-weight:650;font-variant-numeric:tabular-nums}.portal-footer{margin-top:var(--s7);color:var(--ink-4);font-size:12px;text-align:center}@media(max-width:640px){.portal-shell{padding:0}.portal-login-card,.portal-account{min-height:100vh;border:0;border-radius:0;box-shadow:none}.portal-account-header,.portal-loan-header{align-items:flex-start;flex-direction:column}.portal-loan-header>div:last-child{align-items:flex-start!important;flex-wrap:wrap}.portal-loan-grid{grid-template-columns:1fr 1fr}.portal-loan-card{padding:var(--s4)}.portal-quote-heading{align-items:flex-start;flex-direction:column;gap:var(--s2)}.portal-quote-total{text-align:left}.portal-quote-formula{grid-template-columns:1fr;padding:var(--s2) var(--s3)}.portal-quote-formula>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--rule)}.portal-quote-formula>span{display:none}.portal-quote-formula>div:last-child{border-bottom:0}.portal-quote-formula dd{text-align:right}.portal-quote-formula-total{margin-top:var(--s1);background:transparent}}.app-nav{grid-area:nav;background:var(--sheet);border-right:1px solid var(--rule);padding:var(--s3) var(--s3) var(--s4);display:flex;flex-direction:column;justify-content:space-between;position:sticky;top:52px;height:calc(100vh - 52px);overflow-y:auto}.app-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.nav-group-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-4);padding:14px var(--s3) 6px}.nav-link{display:flex;align-items:center;gap:10px;padding:8px var(--s3);border-radius:var(--r1);color:var(--ink-2);text-decoration:none;font-size:13.5px;transition:background var(--t-fast);border-left:2px solid transparent}.nav-link:hover{background:var(--sheet-2);color:var(--ink);text-decoration:none}.nav-link.is-active{background:var(--accent-wash);color:var(--ink);border-left-color:var(--accent);font-weight:600}.app-session{border-top:1px solid var(--rule);padding-top:var(--s4);font-size:12px;color:var(--ink-3)}.staff-install-card{display:flex;flex-direction:column;gap:var(--s2);margin:var(--s4) 0 0;padding:var(--s3);background:var(--sheet-2);border:1px solid color-mix(in srgb,var(--accent) 32%,var(--rule));border-radius:var(--r2);font-size:12px}.staff-install-card p{margin:2px 0 0}.staff-install-card-actions{display:flex;gap:var(--s2)}.staff-install-card-actions .button{flex:1;padding:6px 10px;font-size:12px}.nav-toggle{display:none}.app-main{grid-area:main;padding:var(--s7) var(--pad-x) 80px;max-width:1360px;width:100%}.page-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--s4);margin-bottom:var(--s6);padding-bottom:var(--s5);border-bottom:1px solid var(--rule)}.page-description{font-size:13px;color:var(--ink-3);margin-top:var(--s2);max-width:60ch}.page-actions{display:flex;gap:var(--s2);flex-wrap:wrap}.section-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3)}.section-header h2{margin:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:8px 14px;border-radius:var(--r1);border:1px solid var(--rule);background:var(--sheet);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;transition:background var(--t-fast);white-space:nowrap}.button:hover{background:var(--sheet-2);text-decoration:none}.button:disabled{opacity:.45;cursor:not-allowed}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.button-secondary{background:var(--sheet);color:var(--ink-2);border-color:var(--rule)}.action-buttons{display:flex;flex-wrap:wrap;gap:var(--s2)}.form,.auth-form{display:flex;flex-direction:column;gap:var(--s2);max-width:520px;margin-top:var(--s4)}.form-row{display:flex;flex-direction:column;gap:var(--s1);margin-top:var(--s3)}.form-label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.form-input{padding:9px 11px;border:1px solid var(--rule);border-radius:var(--r1);background:var(--sheet);color:var(--ink);font:inherit;font-size:14px;transition:border-color var(--t-fast);width:100%}.form-input:focus{border-color:var(--accent);outline:none}.form-hint{font-size:11.5px;color:var(--ink-4);margin-top:2px}.form-error{font-size:13px;color:var(--over);font-weight:600;margin-top:var(--s2)}.form-success{font-size:13px;color:var(--real);font-weight:600;margin-top:var(--s2)}.form label,.field label{font-size:12.5px;font-weight:600;display:block;margin-top:var(--s3);margin-bottom:var(--s1);color:var(--ink-2)}.form input,.form select,.form textarea,.field select,.form-inline input,.form-inline select{padding:9px 11px;border:1px solid var(--rule);border-radius:var(--r1);font:inherit;font-size:14px;background:var(--sheet);color:var(--ink);width:100%;transition:border-color var(--t-fast)}.form input:focus,.form select:focus,.form textarea:focus,.form-input:focus{border-color:var(--accent);outline:none}.form fieldset{border:1px solid var(--rule);border-radius:var(--r2);padding:var(--s4);margin-top:var(--s4)}.form fieldset legend{font-size:12px;font-weight:600;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:0 var(--s2)}.field{margin-bottom:var(--s4);max-width:420px}.form-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s3);margin:var(--s4) 0}.modal-backdrop,.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a171273;display:flex;align-items:center;justify-content:center;padding:var(--s4);z-index:100}.modal{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r3);box-shadow:var(--shadow-pop);max-width:480px;width:100%;max-height:90vh;overflow-y:auto;padding:var(--s6)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--s3);margin-top:var(--s5)}.table-wrapper{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet)}table{width:100%;border-collapse:collapse;min-width:600px}thead th{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4);font-weight:500;text-align:left;padding:10px var(--pad-x);background:var(--paper-2);border-bottom:1px solid var(--rule);white-space:nowrap}tbody td{padding:0 var(--pad-x);height:var(--row-h);border-bottom:1px solid var(--rule-2);font-size:13px;vertical-align:middle;color:var(--ink)}tbody td:has(code),tbody td code{font-family:var(--mono);font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--sheet-2)}.cell-text,.cell-text strong{color:#1a1712}.cell-subtext{color:#6b6357}@media(prefers-color-scheme:dark){.cell-text,.cell-text strong{color:#f3efe6}.cell-subtext{color:#9c9384}}tfoot td{padding:11px var(--pad-x);font-weight:700;border-top:1px solid var(--rule)}.toolbar,.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s3);margin-bottom:var(--s4)}.toolbar label,.filters label{font-size:11.5px;font-weight:600;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);display:block;margin-bottom:var(--s1)}.toolbar select,.toolbar input,.filters select,.filters input{padding:8px 10px;border:1px solid var(--rule);border-radius:var(--r1);font:inherit;font-size:13px;background:var(--sheet);color:var(--ink)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:2px;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.badge-neutral{background:var(--paper-2);color:var(--ink-3)}.badge-positive{background:var(--real-w);color:var(--real)}.badge-warning{background:var(--comm-w, #efe6d2);color:var(--comm, #b07d22)}.badge-negative{background:var(--over-w);color:var(--over)}.badge-info{background:var(--proj-w);color:var(--proj)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-card{flex:1 1 140px;background:var(--surface-card, #fff);border:1px solid var(--border, var(--rule));border-radius:8px;padding:12px 16px}.state{padding:var(--s8) var(--s6);text-align:center;border:1px dashed var(--rule);border-radius:var(--r2);margin:var(--s4) 0;color:var(--ink-3);font-size:13px}.state-error{border-color:var(--over);color:var(--over)}.state-spinner{display:inline-block;width:22px;height:22px;border:2px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.state-spinner{animation:none}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet);overflow:hidden;margin-bottom:var(--s5)}.detail-grid>div{padding:var(--s4) var(--pad-x);border-right:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2)}.detail-grid>div:nth-child(2n){border-right:none}.detail-grid>div:nth-last-child(-n+2){border-bottom:none}.detail-grid dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}.detail-grid dd{margin:3px 0 0;font-variant-numeric:tabular-nums;font-size:14px}.balance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet);overflow:hidden;margin:var(--s4) 0}.balance-summary>div{padding:var(--s4) var(--pad-x);border-right:1px solid var(--rule)}.balance-summary>div:last-child{border-right:none}.balance-summary dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}.balance-summary dd{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(18px,2.5vw,26px);font-weight:600;letter-spacing:-.02em;margin:4px 0 0}.fund-balances,.cash-balances{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:var(--r2);overflow:hidden}.fund-balances li,.cash-balances li{background:var(--sheet);padding:var(--s4) var(--pad-x);display:flex;flex-direction:column;gap:var(--s1)}.fund-balance-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}.fund-balance-amount{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:18px;font-weight:600;letter-spacing:-.02em}.fund-balances-goals{grid-template-columns:repeat(3,minmax(0,1fr))}.fund-balance-goal-header{display:flex;flex-direction:column;gap:var(--s1)}.fund-goal-progress{display:grid;gap:4px;margin-top:var(--s2)}.fund-goal-progress-track{height:6px;border-radius:999px;background:var(--rule);overflow:hidden}.fund-goal-progress-fill{height:100%;background:var(--accent);border-radius:999px}.fund-goal-form{display:grid;gap:var(--s2);margin-top:var(--s2)}.fund-goal-form label{display:grid;gap:4px;font-size:12px}.fund-goal-edit-button{margin-top:var(--s2);align-self:flex-start}.net-worth-goal-progress{display:grid;gap:4px;margin-top:var(--s2)}.net-worth-goal-progress-track{height:6px;border-radius:999px;background:var(--rule);overflow:hidden}.net-worth-goal-progress-fill{height:100%;background:var(--accent);border-radius:999px}.net-worth-goal-form{display:grid;gap:var(--s2);margin-top:var(--s2)}.net-worth-goal-form label{display:grid;gap:4px;font-size:12px}.net-worth-goal-edit-button{margin-top:var(--s2);align-self:flex-start}.net-worth-projection{display:grid;gap:var(--s2);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--rule)}.net-worth-projection h3{margin:0;font-size:14px}.net-worth-benchmark{display:grid;gap:var(--s2);margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--rule)}@media(max-width:768px){.fund-balances-goals{grid-template-columns:1fr}}.receipt{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r2);padding:var(--s5) var(--pad-x);max-width:560px;margin:var(--s5) 0}.receipt header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s4);padding-bottom:var(--s4);border-bottom:1px solid var(--rule)}.receipt h2{margin:0;font-size:15px}.balance-explainer,.balance-info{background:var(--accent-wash);color:var(--ink-2);padding:var(--s4);border-radius:var(--r2);border-left:3px solid var(--accent);font-size:13px}.hint-text,.form-hint-text{color:var(--ink-4);font-size:12.5px}.rule-30-list{list-style:none;margin:0;padding:0;font-size:12.5px}.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:var(--s2) var(--s4);z-index:100;border-radius:0 0 var(--r1) 0}.skip-link:focus{left:0}.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--rule);margin:var(--s4) 0}.tab{padding:9px 14px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--ink-3);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:color var(--t-fast),border-color var(--t-fast)}.tab:hover{color:var(--ink)}.tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.widget-container{border:1px solid var(--rule);border-radius:var(--r2);overflow:hidden;background:var(--sheet)}.ticker-suggestions{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s3) 0 var(--s4)}.ticker-suggestions .button{padding:5px 10px;font-size:12px}.news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s4);margin:var(--s4) 0}.news-card{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet);overflow:hidden}.news-card-image{width:100%;height:140px;object-fit:cover;background:var(--paper-2);display:block}.news-card-body{padding:var(--s3) var(--s4);display:flex;flex-direction:column;gap:var(--s1)}.news-card-source{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);margin:0}.news-card-headline{font-size:13.5px;font-weight:600;margin:0;line-height:1.35}.skeleton-block,.skeleton-line{background:linear-gradient(90deg,var(--paper-2) 25%,var(--sheet-2) 37%,var(--paper-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:var(--r1)}.skeleton-line{height:11px;margin:6px 0}.skeleton-line-short{width:60%}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){.skeleton-block,.skeleton-line{animation:none}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--s6);background:var(--paper)}@media(max-width:1440px){.app-main{max-width:100%}}@media(max-width:1024px){.balance-summary,.fund-balances,.cash-balances{grid-template-columns:repeat(2,minmax(0,1fr))}.balance-summary>div{border-bottom:1px solid var(--rule)}.balance-summary>div:nth-child(2n){border-right:none}.balance-summary>div:nth-child(odd){border-right:1px solid var(--rule)}}@media(max-width:768px){.app-shell{grid-template-columns:1fr;grid-template-areas:"topbar" "nav" "main"}.app-nav{position:static;height:auto;border-right:none;border-bottom:1px solid var(--rule);display:none}.app-nav.is-open{display:flex}.nav-toggle{display:inline-flex;padding:6px 10px;border:1px solid var(--rule);border-radius:var(--r1);background:var(--sheet);font:inherit;font-size:13px;cursor:pointer}.detail-grid{grid-template-columns:1fr}.detail-grid>div{border-right:none}.detail-grid>div:nth-last-child(-n+2){border-bottom:1px solid var(--rule-2)}.detail-grid>div:last-child{border-bottom:none}}@media(max-width:390px){.app-main{padding:var(--s4)}.balance-summary,.fund-balances,.cash-balances{grid-template-columns:1fr}.page-header{flex-direction:column}h1{font-size:1.375rem}}.payables-center{display:grid;gap:1.25rem}.payables-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:1rem}.payable-action{display:grid;align-content:start;gap:.85rem}.payable-action label{display:grid;gap:.35rem}.payables-center td small{display:block;color:var(--text-muted);margin-top:.2rem}@media(max-width:768px){.payables-grid{grid-template-columns:1fr}}.patrimony-center{display:grid;gap:1.25rem}.patrimony-integrity{display:flex;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border:1px solid var(--border);background:var(--surface)}.patrimony-integrity.is-ok{border-left:4px solid #21765b}.patrimony-integrity.is-alert{border-left:4px solid var(--danger)}.patrimony-integrity span{color:var(--text-muted)}.patrimony-currency{display:grid;gap:1rem}.patrimony-currency>header{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:.65rem}.patrimony-currency>header div{display:grid}.patrimony-currency>header span,.patrimony-hero span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.patrimony-currency>header strong{font-size:1.35rem}.patrimony-currency>header p{margin:0;color:var(--text-muted)}.patrimony-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}.patrimony-hero>div,.patrimony-hero>dl{margin:0;padding:1.5rem;background:var(--surface)}.patrimony-hero>div{display:grid;align-content:center;gap:.35rem}.patrimony-hero>div>strong{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.8rem);line-height:.95}.patrimony-hero small{color:var(--text-muted)}.patrimony-hero dl{display:grid;gap:1rem}.patrimony-hero dl div{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.patrimony-hero dd{margin:0;font-weight:700}.patrimony-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem}.patrimony-bars{display:grid;gap:.7rem}.patrimony-bars div{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--border)}.patrimony-zero,.patrimony-difference{display:block;font-size:2rem;margin:.75rem 0}.patrimony-zero{color:#21765b}.patrimony-difference{color:var(--danger)}.patrimony-coverage ul{display:grid;gap:.65rem;color:var(--text-muted)}.patrimony-roadmap{display:grid;grid-template-columns:1fr 1.4fr;border-top:1px solid var(--border);margin-top:1rem}.patrimony-roadmap>*{padding:.75rem;border-bottom:1px solid var(--border)}.patrimony-roadmap strong{font-weight:600}@media(max-width:768px){.patrimony-integrity,.patrimony-currency>header{align-items:flex-start;flex-direction:column}.patrimony-hero,.patrimony-grid,.patrimony-roadmap{grid-template-columns:1fr}.patrimony-roadmap strong{padding-top:0}.patrimony-hero>div>strong{font-size:2.25rem}}.patrimony-net-worth-hero{display:grid;gap:1rem;padding:1.5rem;margin-bottom:1.25rem;border:1px solid var(--border);background:var(--surface)}.patrimony-net-worth-hero header{display:grid;gap:.35rem}.patrimony-net-worth-hero header strong{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.8rem);line-height:.95}.patrimony-net-worth-hero header p{margin:0;color:var(--text-muted)}.patrimony-net-worth-hero dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:.5rem}.patrimony-net-worth-hero dl div{display:flex;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.patrimony-net-worth-hero dt{color:var(--text-muted)}.patrimony-net-worth-hero dd{margin:0;font-weight:700}@media(max-width:768px){.patrimony-net-worth-hero header strong{font-size:2.25rem}}.patrimony-net-worth-warning{margin:0;padding:.65rem .85rem;border:1px solid var(--danger);border-left-width:4px;background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger);font-size:.85rem}.movement-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2);margin-bottom:var(--s4)}.movement-actions>a{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:var(--s2);padding:var(--s3);border:1px solid var(--rule);border-radius:12px;background:var(--sheet);color:var(--ink);text-decoration:none}.movement-actions>a:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--rule));background:var(--sheet-2);text-decoration:none}.movement-actions .app-icon{width:38px;height:38px;padding:9px;border-radius:10px;background:var(--accent-wash);color:var(--accent)}.movement-actions strong,.movement-actions small{display:block}.movement-actions small{margin-top:2px;color:var(--ink-4);font-size:11px}.movement-filters{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) minmax(180px,1.4fr);gap:var(--s2);margin-bottom:var(--s4);padding:var(--s4);border:1px solid var(--rule);border-radius:12px;background:var(--sheet)}.movement-filters label{display:grid;gap:5px;color:var(--ink-4);font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase}.movement-filters input,.movement-filters select{width:100%;min-height:40px;padding:8px 10px;border:1px solid var(--rule);border-radius:7px;background:var(--sheet-2);color:var(--ink);font:12px var(--sans)}.movement-summary{display:grid;gap:var(--s2);margin-bottom:var(--s4)}.movement-summary article{display:grid;grid-template-columns:72px repeat(3,minmax(0,1fr));gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);border:1px solid var(--rule);border-radius:10px;background:var(--sheet)}.movement-summary article>span{color:var(--accent);font:700 12px var(--mono)}.movement-summary article div{display:grid;gap:2px}.movement-summary small{color:var(--ink-4);font-size:10px}.movement-summary strong{font-family:var(--mono);font-variant-numeric:tabular-nums}.movement-positive,.movement-inflow{color:var(--real)}.movement-negative,.movement-outflow{color:var(--over)}.movement-transfer{color:var(--proj)}.movement-table td:first-child{white-space:nowrap}.movement-table .cell-text small{display:block;max-width:380px;margin-top:3px;overflow:hidden;color:var(--ink-4);font:10px var(--mono);text-overflow:ellipsis;white-space:nowrap}.movement-amount{font-weight:700;text-align:right;white-space:nowrap}@media(max-width:1024px){.movement-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.movement-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.movement-actions,.movement-filters{grid-template-columns:1fr}.movement-summary article{grid-template-columns:1fr}}.risk-score-card{padding:var(--s5);border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet);margin-bottom:var(--s6)}.risk-score-card.risk-score-positive{border-left:4px solid var(--positive)}.risk-score-card.risk-score-warning{border-left:4px solid var(--warning, #f59e0b)}.risk-score-card.risk-score-negative{border-left:4px solid var(--negative)}.risk-score-bar-track{height:8px;border-radius:4px;background:var(--rule);margin-bottom:var(--s3);overflow:hidden}.risk-score-positive .risk-score-bar-fill{background:var(--positive)}.risk-score-warning .risk-score-bar-fill{background:var(--warning, #f59e0b)}.risk-score-negative .risk-score-bar-fill{background:var(--negative)}.risk-score-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.risk-score-info{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s2)}.risk-score-value{font-size:1.5rem;font-weight:700;line-height:1}.risk-score-max{font-size:.875rem;font-weight:400;color:var(--text-2)}.cashflow-projection{display:flex;flex-direction:column;gap:var(--s4);margin-bottom:var(--s6)}.cashflow-bucket-label{font-size:.8125rem;font-weight:600;color:var(--text-2);margin-bottom:var(--s2);text-transform:uppercase;letter-spacing:.04em}.cashflow-bar-track{height:20px;border-radius:var(--r1);background:var(--rule);overflow:hidden;margin-bottom:var(--s1)}.cashflow-bar-fill{height:100%;border-radius:var(--r1);background:var(--accent, #c8a96e);transition:width .5s ease;min-width:2px}.cashflow-bucket-amount{font-size:.875rem;color:var(--text-2)}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5)}.calendar-month-title{margin:0;font-size:1.25rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:var(--s6)}.calendar-day-name{text-align:center;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);padding:var(--s2) 0}.calendar-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--rule);border-radius:var(--r1);background:var(--surface);cursor:pointer;transition:background .15s;font-family:var(--mono)}.calendar-cell-empty{background:transparent;border-color:transparent;cursor:default}.calendar-cell:not(.calendar-cell-empty):hover{background:var(--surface-2, #f5f5f5)}.calendar-cell-today{border-color:var(--accent, #c8a96e);border-width:2px}.calendar-cell-selected{background:var(--accent, #c8a96e)!important;color:#fff}.calendar-cell-selected .calendar-day-dot{background:#ffffff4d!important;color:#fff!important}.calendar-day-num{font-size:.875rem;font-weight:500}.calendar-day-dot{font-size:.65rem;font-weight:700;border-radius:100px;padding:1px 5px;line-height:1.4}.dot-overdue{background:var(--negative, #b94040);color:#fff}.dot-pending{background:var(--accent, #c8a96e);color:#fff}.dot-paid{background:var(--positive, #2e7d4f);color:#fff}.calendar-detail{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r2);padding:var(--s5) var(--s6);margin-top:var(--s4)}.rentabilidad-table td.cell-positive{color:var(--positive, #2e7d4f);font-weight:600}.rentabilidad-table td.cell-warning{color:var(--accent, #c8a96e);font-weight:600}.rentabilidad-table td.cell-negative{color:var(--negative, #b94040);font-weight:600}@media(max-width:640px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--s4);height:52px;position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--rule)}.nav-toggle{display:flex!important}.app-nav{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--surface);overflow-y:auto;padding:var(--s6) var(--s4) var(--s8)}.app-nav.is-open{display:flex;flex-direction:column}.app-main{padding:var(--s4);overflow-x:hidden}.page-header{flex-direction:column;align-items:flex-start;gap:var(--s3)}.page-header-actions{display:flex;flex-wrap:wrap;gap:var(--s2);width:100%}.page-header-actions .button{flex:1 1 auto;text-align:center;font-size:.78rem;padding:6px 8px}.stat-cards{grid-template-columns:1fr 1fr!important;gap:var(--s3)!important}.stat-card{padding:var(--s4)!important}.stat-value{font-size:1.2rem!important}.loans-ledger-table thead,.data-table thead,.portal-table thead,.rentabilidad-table thead{display:none}.loans-ledger-table,.data-table,.portal-table,.rentabilidad-table{display:block}.loans-ledger-table tbody,.data-table tbody,.portal-table tbody,.rentabilidad-table tbody{display:flex;flex-direction:column;gap:var(--s3)}.loans-ledger-table tr,.data-table tr,.portal-table tr,.rentabilidad-table tr{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r2);padding:var(--s4);position:relative}.loans-ledger-table td,.data-table td,.portal-table td,.rentabilidad-table td{display:flex;flex-direction:column;gap:2px;border:none!important;padding:4px 0!important;font-size:.82rem}.loans-ledger-table td:before,.data-table td:before,.portal-table td:before,.rentabilidad-table td:before{content:attr(data-label);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2, #888)}.loans-ledger-table td:first-child,.data-table td:first-child,.portal-table td:first-child{grid-column:1 / -1;font-size:.95rem;font-weight:600}.loans-ledger-table td:last-child,.data-table td:last-child,.portal-table td:last-child{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;gap:var(--s2);padding-top:var(--s2)!important}.loans-ledger-table td:last-child:before,.data-table td:last-child:before,.portal-table td:last-child:before{display:none}.loan-detail-header{flex-direction:column;gap:var(--s3)}.loan-actions{display:flex;flex-wrap:wrap;gap:var(--s2)}.loan-actions .button{flex:1 1 120px;font-size:.78rem;padding:6px 8px}.loan-info-grid{grid-template-columns:1fr 1fr!important}.form-row{flex-direction:column}.form-row .form-group{width:100%!important}.loans-toolbar,.list-toolbar{flex-direction:column;gap:var(--s3)}.loans-toolbar>*,.list-toolbar>*{width:100%}.modal-panel{width:calc(100vw - 2rem)!important;max-height:90vh;overflow-y:auto}.dashboard-charts,.simulador-grid{grid-template-columns:1fr!important}.button-sm{font-size:.75rem;padding:5px 8px}.portal-loan-card{padding:var(--s4)!important}}[data-theme=dark]{--paper: #16140f;--paper-2: #1d1a14;--sheet: #211d16;--sheet-2: #262219;--ink: #f3efe6;--ink-2: #cfc7b8;--ink-3: #9c9384;--ink-4: #756d60;--ink-5: #4a443a;--rule: #353026;--rule-2: #2a261d;--accent: #d4623f;--accent-2:#e0764f;--accent-ink:#1a1712;--accent-soft:#48342a;--accent-wash:#2e2118;--shadow: 0 1px 2px rgba(0,0,0,.4);color-scheme:dark}[data-theme=light]{--paper: #f4f1ea;--paper-2: #ece7dc;--sheet: #fcfbf7;--sheet-2: #f1ede4;--ink: #1a1712;--ink-2: #423b31;--ink-3: #6b6357;--ink-4: #6f675b;--ink-5: #a79d8d;--rule: #d4cbbb;--rule-2: #e3dccf;--accent: #ad4127;--accent-2:#8f3420;--accent-ink:#fcfbf7;--accent-soft:#e9d4ca;--accent-wash:#f2e2db;--shadow: 0 1px 2px rgba(40,30,16,.06);--shadow-pop: 0 16px 44px -18px rgba(40,30,16,.28);color-scheme:light}[data-theme=dark]{--ink-4: #aaa192;--comm-w: #3a3020}.page-eyebrow{margin:0 0 var(--s2);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.nav-glyph{width:26px;height:26px;display:inline-grid;place-items:center;flex:0 0 26px;border:1px solid var(--rule);border-radius:var(--r1);color:var(--ink-3);font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.04em}.nav-link.is-active .nav-glyph{border-color:color-mix(in srgb,var(--accent) 45%,var(--rule));background:var(--accent-soft);color:var(--accent-2)}.mobile-nav-header,.nav-close{display:none}.session-name,.session-role{margin:0}.session-name{font-size:12px;font-weight:700;color:var(--ink-2)}.session-role{margin-top:2px;font-size:11px;color:var(--ink-3)}.session-action{width:100%;margin-top:var(--s2);padding:7px 10px;font-size:12px}.command-trigger{min-width:190px;min-height:36px;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:6px 8px 6px 12px;border:1px solid var(--rule);border-radius:var(--r1);background:var(--paper);color:var(--ink-3);font:inherit;font-size:12px;cursor:pointer}.command-trigger:hover{background:var(--sheet-2);color:var(--ink)}kbd{min-width:24px;padding:2px 6px;border:1px solid var(--rule);border-bottom-width:2px;border-radius:var(--r1);background:var(--sheet);color:var(--ink-3);font-family:var(--mono);font-size:10px;text-align:center}.command-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:grid;place-items:start center;padding:min(14vh,120px) var(--s4) var(--s4);background:color-mix(in srgb,var(--ink) 30%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.command-dialog{width:min(680px,100%);max-height:min(680px,76vh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--rule);border-radius:var(--r3);background:var(--sheet);box-shadow:var(--shadow-pop)}.command-search-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--rule)}.command-mark{color:var(--accent);font-family:var(--mono);font-weight:700}.command-search-row input{width:100%;padding:var(--s2) 0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:16px}.command-results{overflow-y:auto;padding:var(--s2)}.command-item{width:100%;min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s3);border:1px solid transparent;border-radius:var(--r2);background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.command-item.is-active{border-color:var(--rule);background:var(--accent-wash)}.command-item-copy{display:grid;gap:2px}.command-item-copy strong{font-size:13px}.command-item-copy small{color:var(--ink-3)}.command-group{flex:0 0 auto;color:var(--ink-3);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.command-empty{padding:var(--s7);text-align:center;color:var(--ink-3)}.command-footer{display:flex;justify-content:flex-end;gap:var(--s4);padding:var(--s2) var(--s4);border-top:1px solid var(--rule);color:var(--ink-3);font-size:11px}.command-footer span{display:inline-flex;align-items:center;gap:4px}.state{background:color-mix(in srgb,var(--sheet) 86%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rule) 35%,transparent)}.state h3{margin-bottom:var(--s2);color:var(--ink)}.state p{margin:0}.state .button{margin-top:var(--s4)}.state-mark{width:34px;height:34px;display:inline-grid;place-items:center;margin:0 auto var(--s3);border:1px solid currentColor;border-radius:50%;font-family:var(--mono);font-weight:700}.state-offline{color:var(--unrec);border-color:var(--unrec)}.state-denied{color:var(--comm);border-color:var(--comm)}.route-loading{min-height:220px;display:grid;place-content:center;gap:var(--s3)}.badge{border:1px solid color-mix(in srgb,currentColor 28%,transparent)}.badge-symbol{font-weight:800;line-height:1}.badge-warning{background-image:repeating-linear-gradient(135deg,transparent 0 5px,color-mix(in srgb,currentColor 9%,transparent) 5px 7px)}.badge-negative{background-image:repeating-linear-gradient(45deg,transparent 0 4px,color-mix(in srgb,currentColor 10%,transparent) 4px 6px)}.badge-info{background-image:repeating-linear-gradient(90deg,transparent 0 5px,color-mix(in srgb,currentColor 8%,transparent) 5px 7px)}.form-wide{max-width:760px}.form-fieldset,.form-group{border-color:var(--rule);color:var(--ink)}.form-legend{color:var(--ink-3);font-family:var(--mono)}.logout-label-short{display:none}@media(min-width:641px)and (max-width:1100px){.app-shell{grid-template-columns:76px minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"topbar topbar" "nav main"}.app-nav{display:flex;position:sticky;top:52px;height:calc(100vh - 52px);padding:var(--s3) var(--s2);border-right:1px solid var(--rule);border-bottom:0}.nav-link{justify-content:center;padding:8px;border-left:0;border-bottom:2px solid transparent}.nav-link.is-active{border-left-color:transparent;border-bottom-color:var(--accent)}.nav-link-label,.nav-group-label,.session-name,.session-role,.push-action{display:none}.app-session{padding-top:var(--s3)}.session-action{padding-inline:4px;font-size:10px}.logout-label-full{display:none}.logout-label-short{display:inline}.nav-toggle,.mobile-tabbar{display:none!important}}@media(max-width:640px){body.nav-open{overflow:hidden}.app-brand-label,.command-trigger span,.command-trigger kbd,.theme-label{display:none}.command-trigger{min-width:40px;width:40px;padding:0;justify-content:center}.command-trigger:before{content:"⌕";font-size:20px}.theme-toggle,.nav-toggle,.mobile-tab,.mobile-fab{min-width:44px;min-height:44px}.mobile-nav-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-bottom:var(--s4);margin-bottom:var(--s2);border-bottom:1px solid var(--rule)}.nav-close{width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet);color:var(--ink);font-size:24px;cursor:pointer}.page-actions{width:100%}.page-actions .button{flex:1 1 140px;min-height:44px}.calendar-nav{display:grid;grid-template-columns:auto 1fr auto;gap:var(--s2)}.calendar-month-title{text-align:center;font-size:1rem}.table-wrapper .loans-ledger-table,.table-wrapper .data-table,.table-wrapper .portal-table,.table-wrapper .rentabilidad-table{display:table}.table-wrapper .loans-ledger-table thead,.table-wrapper .data-table thead,.table-wrapper .portal-table thead,.table-wrapper .rentabilidad-table thead{display:table-header-group}.table-wrapper .loans-ledger-table tbody,.table-wrapper .data-table tbody,.table-wrapper .portal-table tbody,.table-wrapper .rentabilidad-table tbody{display:table-row-group}.table-wrapper .loans-ledger-table tr,.table-wrapper .data-table tr,.table-wrapper .portal-table tr,.table-wrapper .rentabilidad-table tr{display:table-row}.table-wrapper .loans-ledger-table td,.table-wrapper .data-table td,.table-wrapper .portal-table td,.table-wrapper .rentabilidad-table td{display:table-cell}.table-wrapper .loans-ledger-table td:before,.table-wrapper .data-table td:before,.table-wrapper .portal-table td:before,.table-wrapper .rentabilidad-table td:before{content:none}.command-footer{display:none}}@media(max-width:390px){.app-main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.balance-summary>div{border-right:0!important}.command-backdrop{padding:var(--s3);place-items:start center}.command-dialog{max-height:calc(100vh - var(--s6))}}.topbar-actions{display:flex;align-items:center;gap:var(--s2)}.theme-toggle,.nav-toggle{min-height:34px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border:1px solid var(--rule);border-radius:var(--r1);background:var(--sheet);color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.theme-toggle:hover{background:var(--sheet-2);color:var(--ink)}.decision-center{margin:0 0 var(--s7);padding-bottom:var(--s5);border-bottom:1px solid var(--rule)}.decision-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s5);margin-bottom:var(--s5)}.decision-hero h1{font-size:clamp(2rem,5vw,4.25rem);max-width:10ch;letter-spacing:-.04em}.decision-hero p:not(.label-mono){max-width:46ch;color:var(--ink-3);margin:var(--s3) 0 0}.decision-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s2)}.decision-alert{display:grid;gap:var(--s1);padding:var(--s4) var(--pad-x);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:var(--r2);background:var(--sheet);margin-bottom:var(--s4)}.decision-alert span{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4)}.decision-alert strong{font-size:clamp(1.35rem,3vw,2.4rem);line-height:1.05}.decision-alert small{color:var(--ink-3)}.decision-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:var(--s4)}.reports-trends-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--s4)}.reports-trends-grid article{padding:var(--s4);border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet)}.reports-trends-grid h2{margin:0 0 var(--s1)}.reports-trends-grid .hint-text{margin:0 0 var(--s3)}.other-net-worth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:var(--s4)}.other-net-worth-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s3);align-items:end;margin:0 0 var(--s5)}.other-net-worth-form label{display:grid;gap:.35rem}.other-net-worth-actions{display:flex;gap:var(--s2);justify-content:flex-end}.other-net-worth-section td form{display:flex;align-items:center;gap:var(--s2);justify-content:flex-end}.other-net-worth-section td form input{width:8rem}.decision-panel{border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet);box-shadow:var(--shadow);overflow:hidden}.decision-panel-primary{background:linear-gradient(180deg,var(--sheet),var(--sheet-2))}.decision-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s4) var(--pad-x);border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4)}.decision-amount{margin:0;padding:var(--s5) var(--pad-x) var(--s2);font-family:var(--mono);font-size:clamp(2rem,5vw,4rem);font-weight:700;letter-spacing:-.05em;line-height:1}.decision-panel .hint-text{padding:0 var(--pad-x)}.money-state{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor}.money-state-real{color:var(--real)}.money-composition{display:flex;height:10px;margin:var(--s4) var(--pad-x);border:1px solid var(--rule);border-radius:99px;overflow:hidden;background:var(--paper-2)}.money-composition span{display:block;min-width:8px}.comp-real{flex:4;background:var(--real)}.comp-committed{flex:2;background:repeating-linear-gradient(45deg,var(--comm),var(--comm) 4px,transparent 4px,transparent 8px)}.comp-projected{flex:2;background:repeating-linear-gradient(90deg,var(--proj),var(--proj) 5px,transparent 5px,transparent 9px)}.comp-unreconciled{flex:1;background:repeating-linear-gradient(135deg,var(--unrec),var(--unrec) 4px,transparent 4px,transparent 8px)}.decision-breakdown{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid var(--rule)}.decision-breakdown div{padding:var(--s3) var(--pad-x);border-right:1px solid var(--rule)}.decision-breakdown div:last-child{border-right:0}.decision-breakdown dt{color:var(--ink-4);font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.decision-breakdown dd{margin:var(--s1) 0 0;font-family:var(--mono);font-weight:700}.decision-queue{list-style:none;display:grid;margin:0;padding:0}.decision-row{border-bottom:1px solid var(--rule);border-left:3px solid var(--unrec)}.decision-row-link{width:100%;display:flex;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--pad-x);color:inherit;text-decoration:none}.decision-row-link:hover{background:var(--sheet-2);text-decoration:none}.decision-row:last-child{border-bottom:0}.decision-row strong{display:block}.decision-row small{color:var(--ink-4)}.decision-row span{font-family:var(--mono);font-weight:700;white-space:nowrap}.decision-row-overdue{border-left-color:var(--over)}.decision-row-committed{border-left-color:var(--comm)}.decision-row-unreconciled{border-left-color:var(--unrec)}.balance-summary-compact{margin-top:calc(var(--s3) * -1)}.dashboard-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:var(--s5);align-items:start}.mini-ledger{display:grid;border:1px solid var(--rule);border-radius:var(--r2);overflow:hidden;background:var(--sheet)}.mini-ledger div{display:grid;grid-template-columns:1fr auto auto;gap:var(--s3);align-items:center;padding:var(--s3) var(--pad-x);border-bottom:1px solid var(--rule)}.mini-ledger div:last-child{border-bottom:0}.mini-ledger span,.mini-ledger small{color:var(--ink-4)}.mini-ledger strong{font-family:var(--mono)}.mobile-tabbar{display:none}@media(max-width:1024px){.decision-grid,.dashboard-split{grid-template-columns:1fr}}@media(max-width:768px){.app-main{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.decision-hero{flex-direction:column}.decision-actions{justify-content:flex-start}.decision-breakdown{grid-template-columns:1fr}.decision-breakdown div{border-right:0;border-bottom:1px solid var(--rule)}.decision-breakdown div:last-child{border-bottom:0}.mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:180;display:grid;grid-template-columns:1fr 1fr 72px 1fr 1fr;align-items:end;gap:0;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:color-mix(in srgb,var(--sheet) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -12px 32px #00000014}.mobile-tab,.mobile-fab{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r2);color:var(--ink-3);text-decoration:none;font-size:11px;font-weight:700}.mobile-tab.is-active{color:var(--accent);background:var(--accent-wash)}.mobile-fab{width:56px;height:56px;margin:0 auto 10px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:30px;line-height:1;box-shadow:var(--shadow-pop)}}@media(max-width:390px){.decision-hero h1{font-size:2.25rem}.decision-row-link{flex-direction:column;gap:var(--s2)}.mobile-tabbar{grid-template-columns:1fr 1fr 64px 1fr 1fr}}.notice{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:var(--r2);background:var(--sheet);color:var(--ink-2)}.notice-success{border-left-color:var(--real)}.notice-error{border-left-color:var(--over)}.owner-loan-notice{display:grid;gap:var(--s2);margin:var(--s3) 0;padding:var(--s4);border:1px solid color-mix(in srgb,var(--proj) 35%,var(--rule));border-left:4px solid var(--proj);border-radius:var(--r2);background:color-mix(in srgb,var(--proj-w) 72%,var(--sheet));color:var(--ink-2)}.owner-loan-notice .badge{width:fit-content}.owner-loan-notice strong{color:var(--ink)}.owner-loan-notice p{margin:0}.client-risk-score{display:flex;align-items:center;gap:var(--s3);margin:var(--s3) 0;padding:var(--s3) var(--s4);border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet-2)}.client-risk-score .badge{flex-shrink:0}.client-risk-score .hint-text{margin:0}.owner-loan-confirmation{padding:var(--s3);border-radius:var(--r2);background:var(--proj-w);color:var(--ink-2)}@media(max-width:390px){.owner-loan-notice{padding:var(--s3)}}.notice-close{min-width:32px;min-height:32px;border:0;border-radius:var(--r1);background:transparent;color:var(--ink-3);font:inherit;font-size:1.2rem;cursor:pointer}.notice-close:hover{background:var(--sheet-2);color:var(--ink)}.is-disabled{opacity:.62}.modal-description{color:var(--ink-3);margin:0 0 var(--s3)}.settings-form,.auth-card{width:min(100%,560px);padding:clamp(var(--s4),4vw,var(--s6));border:1px solid var(--rule);border-radius:var(--r3);background:var(--sheet);box-shadow:var(--shadow)}.settings-form{margin-top:var(--s4)}.auth-card{width:min(100%,440px)}.auth-card h1{margin-bottom:var(--s2)}.auth-card-description{margin:0 0 var(--s4);color:var(--ink-3)}.auth-card .auth-form{max-width:none}.button-block{width:100%;justify-content:center}.button-ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.button-ghost:hover{border-color:var(--rule)}.file-input{padding:var(--s2)}.logo-preview-row{display:flex;align-items:center;gap:var(--s3)}.logo-preview{width:88px;height:88px;object-fit:contain;padding:var(--s2);border:1px solid var(--rule);border-radius:var(--r2);background:var(--paper-2)}.loan-create-form{max-width:760px}.loan-stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin:var(--s4) 0 var(--s2);padding:0;list-style:none}.loan-step{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:var(--s2);min-height:52px;padding:var(--s2) var(--s3);border:1px solid var(--rule);border-radius:var(--r2);color:var(--ink-4);background:var(--sheet)}.loan-step span{display:grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;font-family:var(--mono);font-size:11px}.loan-step strong{font-size:12px}.loan-step.is-current{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}.loan-step.is-complete{color:var(--real)}.loan-step.is-negative{border-color:var(--negative);color:var(--negative)}.loan-form-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);margin-top:var(--s3)}.loan-confirmation-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2);margin:var(--s3) 0}.loan-confirmation-summary div{padding:var(--s3);border:1px solid var(--rule);border-radius:var(--r1);background:var(--sheet-2)}.loan-confirmation-summary dt{color:var(--ink-4);font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em}.loan-confirmation-summary dd{margin:var(--s1) 0 0;font-weight:700}.interest-entry-card{padding:var(--s3);border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet-2)}.input-with-suffix{position:relative}.input-with-suffix .form-input{padding-right:44px}.input-with-suffix>span{position:absolute;right:var(--s3);top:50%;transform:translateY(-50%);color:var(--ink-3);font-weight:700}.payment-modal{max-width:680px;padding:0}.payment-form{max-width:none;margin:0;padding:clamp(var(--s4),4vw,var(--s6))}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4)}.modal-heading h2{margin:0}.payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin:var(--s3) 0 0}.payment-summary div{padding:var(--s3);border:1px solid var(--rule);border-radius:var(--r1);background:var(--sheet-2)}.payment-summary dt{color:var(--ink-4);font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em}.payment-summary dd{margin:var(--s1) 0 0;font-weight:700}.payment-quote-status{margin:var(--s3) 0;color:var(--ink-3)}.payment-quote{margin:var(--s3) 0;border:1px solid var(--rule-strong);border-radius:var(--r2);background:var(--sheet-2);overflow:hidden}.payment-quote-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);padding:var(--s4);border-bottom:1px solid var(--rule)}.payment-quote-heading span{display:block;color:var(--ink-4);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.payment-quote-heading strong{display:block;margin-top:var(--s1);color:var(--ink-1);font-size:clamp(22px,4vw,30px);letter-spacing:-.03em}.payment-quote-heading p{max-width:270px;margin:0;color:var(--ink-3);font-size:12px;text-align:right}.payment-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.payment-breakdown div{padding:var(--s3);border-right:1px solid var(--rule)}.payment-breakdown div:last-child{border-right:0}.payment-breakdown dt{color:var(--ink-4);font-size:11px}.payment-breakdown dd{margin:var(--s1) 0 0;font-weight:700}.payment-breakdown .is-total{background:var(--accent-wash)}.payment-installment-target{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,2fr);gap:var(--s3);align-items:center;padding:var(--s3) var(--s4);border-top:1px solid var(--rule);background:var(--sheet)}.payment-installment-target>div span,.payment-after-summary dt{display:block;color:var(--ink-4);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.payment-installment-target>div strong{display:block;margin-top:var(--s1)}.payment-installment-target dl,.payment-after-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2);margin:0}.payment-installment-target dl{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-installment-target dl div,.payment-after-summary div{min-width:0}.payment-installment-target dt{color:var(--ink-4);font-size:11px}.payment-installment-target dd,.payment-after-summary dd{margin:var(--s1) 0 0;font-weight:700}.payment-after-summary{margin:var(--s3) 0;padding:var(--s3);border:1px solid var(--rule);border-radius:var(--r1);background:var(--sheet-2)}.due-badge{display:inline-flex;gap:6px;margin-top:4px;white-space:nowrap}.due-badge-positive{color:var(--real)}.due-badge-warning{color:var(--warning, #8a5a00)}.due-badge-negative{color:var(--danger)}.due-badge-neutral{color:var(--ink-4)}@media(max-width:640px){.loan-stepper{grid-template-columns:1fr}.loan-step{min-height:44px}.loan-confirmation-summary,.payment-summary{grid-template-columns:1fr}.payment-quote-heading{align-items:flex-start;flex-direction:column}.payment-quote-heading p{text-align:left}.payment-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-breakdown div{border-bottom:1px solid var(--rule)}.payment-installment-target{grid-template-columns:1fr}.payment-installment-target dl{grid-template-columns:repeat(3,minmax(0,1fr))}.payment-after-summary{grid-template-columns:1fr}.payment-modal{max-height:100dvh;height:100dvh;border-radius:0}.payment-form{padding-bottom:calc(var(--s6) + env(safe-area-inset-bottom))}.settings-form,.auth-card{padding:var(--s4)}}.app-icon{display:inline-block;flex:0 0 auto;vertical-align:middle}.nav-link .nav-glyph{width:18px;height:18px;padding:0;border:0;border-radius:0;background:transparent;color:currentColor}.command-trigger,.theme-toggle,.nav-toggle{align-items:center;gap:.5rem}.mobile-fab .app-icon{width:20px;height:20px}.decision-hero h1{max-width:18ch;font-size:clamp(2rem,4vw,3.25rem);line-height:.98;letter-spacing:-.045em}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:1.5rem 0;padding:1px;border:1px solid var(--rule);border-radius:10px;background:var(--rule);overflow:hidden}.metric-card{min-width:0;padding:1.15rem;background:var(--sheet)}.metric-card dt,.metric-card small{color:var(--ink-3)}.metric-card dt{margin-bottom:.65rem;font-family:var(--mono);font-size:.68rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase}.metric-card dd{margin:0 0 .3rem;font-family:var(--mono);font-size:clamp(1.25rem,2vw,1.8rem);font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}.metric-card small{font-size:.75rem}.metric-card-primary{box-shadow:inset 0 3px 0 var(--accent)}.metric-card-alert{box-shadow:inset 0 3px 0 var(--over)}.monthly-center-cash-tile{display:grid;gap:.3rem;margin:0 0 1.5rem;padding:1.15rem 1.4rem;border:1px solid var(--rule);border-radius:10px;background:var(--sheet)}.monthly-center-cash-tile span{font-family:var(--mono);font-size:.7rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.monthly-center-cash-tile strong{font-family:var(--mono);font-size:clamp(1.5rem,3vw,2.1rem);font-variant-numeric:tabular-nums;letter-spacing:-.04em}.monthly-center-cash-tile small{color:var(--ink-3)}.monthly-center-currency{margin:0 0 1.5rem}.monthly-center-currency h2{margin:0 0 .5rem;font-family:var(--mono);font-size:.8rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.monthly-center-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;padding:1px;border:1px solid var(--rule);border-radius:10px;background:var(--rule);overflow:hidden}.loan-summary-quote{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;padding:1px;border:1px solid var(--rule);border-radius:10px;background:var(--rule);overflow:hidden;margin-bottom:1.5rem}.monthly-center-obligations-note,.monthly-center-partial-failure{margin:0 0 1.5rem}.monthly-center-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin:1.5rem 0 0;padding-top:1.25rem;border-top:1px solid var(--rule)}@media(max-width:1100px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.dashboard-metrics{grid-template-columns:1fr}.metric-card{padding:1rem}}.rpm-dashboard-overview{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:var(--s4);margin:0 0 var(--s4)}.rpm-dashboard-overview-card,.rpm-dashboard-trend-card{min-width:0;padding:clamp(1.15rem,2vw,1.65rem);border:1px solid var(--rule);border-radius:14px;background:var(--sheet);box-shadow:var(--shadow)}.rpm-dashboard-overview-card{background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 10%,transparent),transparent 42%),var(--sheet)}.rpm-dashboard-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3)}.rpm-dashboard-card-heading h2{margin:.25rem 0 0;font-size:clamp(1.15rem,2vw,1.55rem);letter-spacing:-.025em}.rpm-dashboard-card-heading>a{white-space:nowrap;font-size:.78rem;font-weight:700}.rpm-dashboard-main-value{margin:clamp(1.5rem,4vw,2.7rem) 0 .55rem;font-family:var(--mono);font-size:clamp(2rem,5vw,4rem);font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.055em;line-height:1}.rpm-dashboard-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin:var(--s5) 0 0}.rpm-dashboard-breakdown div{min-width:0;padding-top:var(--s3);border-top:1px solid var(--rule)}.rpm-dashboard-breakdown dt{color:var(--ink-4);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.rpm-dashboard-breakdown dd{margin:var(--s1) 0 0;overflow:hidden;font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;text-overflow:ellipsis}.rpm-dashboard-trend-card{display:flex;flex-direction:column}.rpm-dashboard-trend{display:grid;grid-template-columns:repeat(6,minmax(32px,1fr));gap:clamp(5px,1vw,12px);min-height:210px;margin-top:var(--s4)}.rpm-dashboard-trend-item{display:grid;grid-template-rows:minmax(130px,1fr) auto auto;gap:5px;min-width:0;text-align:center}.rpm-dashboard-trend-track{display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-bottom:1px solid var(--rule-strong)}.rpm-dashboard-trend-track>span{display:block;width:min(75%,34px);min-height:8px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 72%,white),var(--accent))}.rpm-dashboard-trend-item strong{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.rpm-dashboard-trend-item small{overflow:hidden;color:var(--ink-4);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.rpm-dashboard-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s2);margin:0 0 var(--s4)}.rpm-dashboard-quick-actions>a{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:var(--s2);min-width:0;padding:var(--s3);border:1px solid var(--rule);border-radius:12px;background:var(--sheet);color:var(--ink);text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease}.rpm-dashboard-quick-actions>a:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 42%,var(--rule));background:var(--sheet-2);text-decoration:none}.rpm-dashboard-quick-actions .app-icon{width:38px;height:38px;padding:9px;border-radius:10px;background:var(--accent-wash);color:var(--accent)}.rpm-dashboard-quick-actions strong,.rpm-dashboard-quick-actions small{display:block}.rpm-dashboard-quick-actions strong{font-size:.82rem}.rpm-dashboard-quick-actions small{margin-top:2px;overflow:hidden;color:var(--ink-4);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1024px){.rpm-dashboard-overview{grid-template-columns:1fr}.rpm-dashboard-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.rpm-dashboard-overview-card,.rpm-dashboard-trend-card{padding:1rem;border-radius:11px}.rpm-dashboard-card-heading{align-items:flex-start}.rpm-dashboard-breakdown{grid-template-columns:1fr}.rpm-dashboard-trend{min-height:180px;gap:4px}.rpm-dashboard-trend-item{grid-template-rows:minmax(110px,1fr) auto}.rpm-dashboard-trend-item small{display:none}.rpm-dashboard-quick-actions{grid-template-columns:1fr}}.client-registration-mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:48rem;margin-bottom:var(--s4);padding:3px;border:1px solid var(--rule-2);background:var(--surface-2)}.client-registration-mode button{display:grid;gap:.2rem;padding:var(--s3) var(--s4);border:0;background:transparent;color:var(--ink-2);text-align:left;cursor:pointer}.client-registration-mode button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #1f180f1a}.client-registration-mode span{color:var(--ink-3);font-size:.78rem}.client-provisional-explainer,.client-operation-block{max-width:48rem;margin-bottom:var(--s4);padding:var(--s4);border-left:3px solid var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.client-provisional-explainer p,.client-operation-block p{margin:.3rem 0 0;color:var(--ink-2)}.client-create-form{max-width:48rem}.client-provisional-security{margin-top:var(--s3);padding:var(--s4)}.client-document-alert{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);gap:var(--s5);margin-bottom:var(--s5);padding:var(--s5);border-top:3px solid var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.client-document-alert.is-expired{border-color:var(--negative);background:color-mix(in srgb,var(--negative) 9%,var(--surface))}.client-document-alert h2,.client-document-alert p{margin:.25rem 0 0}.client-document-alert dl{margin:0}.client-document-alert dl>div+div{margin-top:var(--s3)}.client-document-alert dt{color:var(--ink-3);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.client-document-alert dd{margin:.3rem 0 0}.client-verification-panel{display:grid;grid-template-columns:1fr auto;align-items:start;gap:var(--s4);margin:var(--s5) 0;padding:var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.client-verification-panel h2,.client-verification-panel p{margin:.25rem 0 0}.client-verification-form{grid-column:1 / -1;width:100%}.client-verification-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}.client-verification-fields label{display:grid;gap:.4rem}@media(max-width:680px){.client-registration-mode,.client-document-alert,.client-verification-panel,.client-verification-fields{grid-template-columns:1fr}.client-verification-panel>.button{width:100%}}.loan-header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--s2)}.loan-header-actions .button,.receipt-actions .button{display:inline-flex;align-items:center;gap:var(--s2)}.payment-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:var(--s4) 0;border:1px solid var(--rule);border-radius:var(--r2);background:var(--sheet)}.payment-context>div{min-width:0;padding:var(--s3)}.payment-context>div+div{border-left:1px solid var(--rule)}.payment-context span,.payment-context strong{display:block}.payment-context span{margin-bottom:var(--s1);color:var(--ink-4);font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.payment-context strong{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.payment-modal .notice-close{display:inline-grid;width:44px;height:44px;place-items:center}.payment-modal .modal-actions{position:sticky;bottom:calc(-1*clamp(var(--s4),4vw,var(--s6)));z-index:2;margin:var(--s5) calc(-1*clamp(var(--s4),4vw,var(--s6))) calc(-1*clamp(var(--s4),4vw,var(--s6)));padding:var(--s3) clamp(var(--s4),4vw,var(--s6));border-top:1px solid var(--rule);background:color-mix(in srgb,var(--sheet) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media(max-width:640px){.loan-header-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.loan-header-actions .button{justify-content:center;min-height:44px}.loan-header-actions .button-primary{grid-column:1 / -1}.payment-context{grid-template-columns:1fr}.payment-context>div+div{border-top:1px solid var(--rule);border-left:0}.payment-modal{overflow-y:auto;overscroll-behavior:contain}.payment-modal .modal-actions{padding-bottom:calc(var(--s3) + env(safe-area-inset-bottom))}}.lifecycle-panel{margin-block:1.5rem;padding:clamp(1rem,2vw,1.5rem);border:1px solid var(--border, #d9d4ca);border-radius:.75rem;background:var(--surface-card, #fff)}.lifecycle-panel-heading,.action-menu{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.lifecycle-panel-heading h2,.sensitive-action-card h3{margin:0}.lifecycle-panel-heading p{margin:.25rem 0 0;color:var(--text-muted, #625d55)}.sensitive-action-card{display:grid;gap:.65rem;margin-top:1rem;padding:1rem;border:1px solid var(--border, #d9d4ca);border-radius:.5rem}.button-danger{border-color:#a93624;background:#a93624;color:#fff}.loan-correction-modal{max-width:560px}.loan-correction-modal fieldset{border:0;margin:0;padding:0}.loan-correction-modal textarea{min-height:5.5rem;resize:vertical}.loan-void-confirmation{align-items:flex-start;display:flex;gap:.65rem;margin-top:1rem}.loan-void-confirmation input{flex:0 0 auto;margin-top:.2rem}@media(max-width:600px){.loan-correction-modal .modal-actions{align-items:stretch;flex-direction:column-reverse}.loan-correction-modal .modal-actions .button{width:100%}}.lifecycle-form textarea,.sensitive-action-card textarea{min-height:5rem;resize:vertical}@media(max-width:600px){.lifecycle-panel-heading,.action-menu{align-items:stretch;flex-direction:column}.lifecycle-panel-heading .button,.action-menu .button{width:100%}}.vehicle-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 var(--s6);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-section-nav{display:flex;gap:.25rem;margin:calc(var(--s4) * -1) 0 var(--s6);padding-bottom:.6rem;overflow-x:auto;border-bottom:1px solid var(--rule-2);scrollbar-width:thin}.vehicle-section-nav a{flex:0 0 auto;padding:.65rem .8rem;border-bottom:2px solid transparent;color:var(--ink-3);font-size:.82rem;font-weight:700;text-decoration:none}.vehicle-section-nav a:hover,.vehicle-section-nav a.is-active{color:var(--ink)}.vehicle-section-nav a.is-active{border-bottom-color:var(--accent)}.vehicle-metrics>div{min-width:0;padding:var(--s5);border-right:1px solid var(--rule-2)}.vehicle-metrics>div:last-child{border-right:0}.vehicle-metrics dt{color:var(--ink-3);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.vehicle-metrics dd{margin:.35rem 0 .15rem;color:var(--ink);font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.5rem);line-height:1}.vehicle-metrics small{color:var(--ink-3)}.vehicle-metrics .needs-attention{box-shadow:inset 0 3px 0 var(--negative)}.vehicle-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s5)}.vehicle-filters{display:flex;flex-wrap:wrap;gap:.5rem}.filter-chip{border:1px solid var(--rule-2);border-radius:999px;padding:.55rem .85rem;background:var(--surface);color:var(--ink-2);cursor:pointer}.filter-chip:hover,.filter-chip.is-active{border-color:var(--accent);color:var(--accent)}.filter-chip.is-active{background:var(--accent-soft)}.vehicle-search{width:min(100%,21rem)}.vehicle-search input{width:100%}.vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}.vehicle-card{display:flex;min-width:0;min-height:15rem;flex-direction:column;padding:var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3)}.vehicle-card h2{margin:.2rem 0;font-size:1.2rem}.vehicle-card p{margin:0;color:var(--ink-3)}.vehicle-card .vehicle-plate{color:var(--accent);font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.12em}.vehicle-card dl{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3);margin:auto 0 var(--s4);padding-top:var(--s5)}.vehicle-card dt{color:var(--ink-3);font-size:.72rem}.vehicle-card dd{margin:.25rem 0 0;font-weight:700}.vehicle-card-link{display:flex;justify-content:space-between;padding-top:var(--s3);border-top:1px solid var(--rule-2);font-weight:700;text-decoration:none}.vehicle-form{max-width:62rem}.vehicle-form fieldset{margin:0 0 var(--s5);padding:var(--s5)}.vehicle-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}.vehicle-form-grid label{display:grid;gap:.45rem;align-content:start}.vehicle-form-wide{grid-column:1 / -1}.vehicle-form textarea{resize:vertical}.vehicle-form-actions{display:flex;justify-content:flex-end;gap:var(--s3)}.vehicle-header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2)}.vehicle-command-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 var(--s7);border-block:1px solid var(--rule-2)}.vehicle-command-strip>div{display:grid;gap:.35rem;padding:var(--s4) var(--s5);border-right:1px solid var(--rule-2)}.vehicle-command-strip>div:first-child{padding-left:0}.vehicle-command-strip>div:last-child{border-right:0}.vehicle-command-strip span,.vehicle-operation-value span{color:var(--ink-3);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.vehicle-command-strip strong{font-family:var(--serif);font-size:1.35rem;font-weight:500}.vehicle-valuation-field{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin:0 0 var(--s7);padding:var(--s4) var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-valuation-field span{color:var(--ink-3);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.vehicle-valuation-field strong{display:block;margin-top:.2rem;font-family:var(--serif);font-size:1.35rem;font-weight:500}.vehicle-valuation-field small{color:var(--ink-3)}.vehicle-valuation-form{display:flex;align-items:flex-end;gap:var(--s4);margin:0 0 var(--s7);padding:var(--s4) var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-valuation-form label{display:grid;gap:.35rem;flex:1}.vehicle-workboard{margin-bottom:var(--s7)}.vehicle-clear-state{display:flex;align-items:center;gap:var(--s4);padding:var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-clear-state h3,.vehicle-clear-state p{margin:0}.vehicle-clear-state p{margin-top:.25rem;color:var(--ink-3)}.vehicle-clear-mark{display:grid;width:2.5rem;height:2.5rem;place-items:center;border:1px solid var(--positive);border-radius:50%;color:var(--positive);font-size:1.2rem}.vehicle-operation-list{border-top:1px solid var(--rule-2)}.vehicle-operation-card{display:grid;grid-template-columns:.5rem minmax(12rem,1.25fr) minmax(12rem,.8fr) auto;align-items:center;gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--rule-2)}.vehicle-operation-index{width:.3rem;height:100%;min-height:4.5rem;background:var(--accent)}.vehicle-operation-card h3,.vehicle-operation-card p{margin:0}.vehicle-operation-card h3{margin:.2rem 0;font-size:1.05rem}.vehicle-operation-card>div:nth-child(2)>p:last-child{color:var(--ink-3);font-size:.84rem}.vehicle-operation-value{display:grid;gap:.2rem}.vehicle-operation-value strong{font-family:var(--serif);font-size:1.35rem;font-weight:500}.vehicle-operation-value small{color:var(--ink-3)}.vehicle-operation-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--s2)}.vehicle-detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(17rem,.8fr);gap:var(--s6)}.vehicle-next-action,.vehicle-note{padding:var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-next-action h2,.vehicle-note h2{margin:.3rem 0 .7rem;font-size:1.15rem}.vehicle-next-action p:last-child,.vehicle-note p{margin-bottom:0;color:var(--ink-3)}.vehicle-history{min-width:0}.vehicle-table-subline{display:block;margin-top:.25rem;color:var(--ink-3)}.vehicle-table-action{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2)}.vehicle-inspections{padding:var(--s5);border-left:1px solid var(--rule-2)}.vehicle-inspections h2{margin:.3rem 0 var(--s4)}.vehicle-inspections ol{margin:0;padding:0;list-style:none}.vehicle-inspections li{display:grid;grid-template-columns:1fr auto;gap:.25rem var(--s3);padding:var(--s3) 0;border-top:1px solid var(--rule-2)}.vehicle-inspections li span{color:var(--accent);font-family:var(--font-mono);font-size:.72rem;font-weight:700;text-transform:uppercase}.vehicle-inspections li small{grid-column:1 / -1;color:var(--ink-3)}.vehicle-muted{color:var(--ink-3)}.vehicle-operation-modal{width:min(47rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto}.vehicle-operation-modal .form{margin-top:var(--s4)}.vehicle-operation-context{display:flex;align-items:baseline;gap:var(--s3);padding:var(--s3) var(--s4);border-left:3px solid var(--accent);background:var(--surface-2)}.vehicle-operation-context strong{font-family:var(--font-mono);letter-spacing:.1em}.vehicle-operation-context span{color:var(--ink-3)}.vehicle-reservation-source{display:grid;gap:.3rem;padding:var(--s3) 0}.vehicle-reservation-source span{color:var(--ink-3);font-size:.75rem;text-transform:uppercase}.vehicle-security{margin-top:var(--s3);padding:var(--s4)}.field-hint{color:var(--ink-3);font-weight:400}.vehicle-finance-modal{width:min(52rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto}.vehicle-finance-rental{margin:.3rem 0 var(--s4);color:var(--ink-3)}.vehicle-finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--rule-2)}.vehicle-finance-summary>div{display:grid;gap:.3rem;padding:var(--s4);border-right:1px solid var(--rule-2)}.vehicle-finance-summary>div:first-child{padding-left:0}.vehicle-finance-summary>div:last-child{border-right:0}.vehicle-finance-summary span{color:var(--ink-3);font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.vehicle-finance-summary strong{font-family:var(--serif);font-size:1.3rem;font-weight:500}.vehicle-finance-form{margin:var(--s5) 0;padding-bottom:var(--s5);border-bottom:1px solid var(--rule-2)}.vehicle-finance-events h3{font-size:1rem}.vehicle-finance-events ol{margin:0;padding:0;list-style:none}.vehicle-finance-events li{display:grid;grid-template-columns:1fr auto;gap:.25rem var(--s3);padding:var(--s3) 0;border-top:1px solid var(--rule-2)}.vehicle-finance-events li small{grid-column:1 / -1;color:var(--ink-3)}.vehicle-rental-modal{width:min(44rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto}.vehicle-back-link{margin-top:var(--s6)}.vehicle-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4)}.vehicle-calendar-toolbar>div{display:flex;gap:var(--s2)}.vehicle-calendar{display:grid;grid-template-columns:repeat(7,minmax(8rem,1fr));min-width:58rem;border-top:1px solid var(--rule-2);border-left:1px solid var(--rule-2)}.vehicle-calendar-scroll{max-width:100%;overflow-x:auto}.vehicle-calendar-day{min-height:10rem;padding:var(--s2);border-right:1px solid var(--rule-2);border-bottom:1px solid var(--rule-2);background:var(--surface)}.vehicle-calendar-day>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s2)}.vehicle-calendar-day>header span{color:var(--ink-3);font-size:.72rem;text-transform:uppercase}.vehicle-calendar-day>header strong{font-family:var(--serif);font-size:1.3rem;font-weight:500}.vehicle-calendar-day>div{display:grid;gap:.3rem}.vehicle-calendar-day>div>small{color:var(--positive)}.vehicle-calendar-event{display:grid;gap:.1rem;padding:.45rem;border-left:3px solid var(--accent);background:var(--surface-2);color:var(--ink);text-decoration:none}.vehicle-calendar-event>span{color:var(--ink-3);font-size:.63rem;font-weight:700;text-transform:uppercase}.vehicle-calendar-event>small{overflow:hidden;color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap}.vehicle-calendar-event.is-maintenance{border-left-color:var(--warning)}.vehicle-calendar-event.is-rental{border-left-color:var(--positive)}.vehicle-operations-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6)}.vehicle-operation-lane{min-width:0}.vehicle-operation-lane>header{padding-bottom:var(--s3);border-bottom:1px solid var(--rule-2)}.vehicle-operation-lane h2{margin:.25rem 0 0;font-size:1.15rem}.vehicle-operation-lane.is-urgent>header{border-bottom-color:var(--negative)}.vehicle-agenda-card,.vehicle-alert-card{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(10rem,1fr) auto;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--rule-2)}.vehicle-agenda-card>div,.vehicle-alert-card>div{display:grid;gap:.2rem}.vehicle-agenda-card span,.vehicle-alert-card span{color:var(--ink-3)}.vehicle-agenda-card p,.vehicle-alert-card p{margin:0}.vehicle-agenda-card small{display:block;margin-top:.25rem;color:var(--ink-3)}.vehicle-alert-card{grid-template-columns:minmax(10rem,1fr) auto auto}.vehicle-alert-card b{white-space:nowrap}.vehicle-print-contract{display:none}.vehicle-compliance-grid{display:grid;gap:var(--s5)}.vehicle-compliance-card{padding:var(--s5);border:1px solid var(--rule-2);border-top:3px solid var(--positive);background:var(--surface)}.vehicle-compliance-card.is-blocked{border-top-color:var(--negative)}.vehicle-compliance-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s4)}.vehicle-compliance-card h2{margin:.2rem 0 0;font-size:1.2rem}.vehicle-compliance-card .vehicle-plate{margin:0;color:var(--accent);font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.12em}.compliance-overall{flex:0 0 auto;padding:.35rem .55rem;border:1px solid currentColor;font-size:.7rem;font-weight:700;text-transform:uppercase}.compliance-overall.is-ready{color:var(--positive)}.compliance-overall.is-blocked{color:var(--negative)}.vehicle-document-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--rule-2)}.vehicle-document-list>section{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);padding:var(--s4);border-right:1px solid var(--rule-2)}.vehicle-document-list>section:first-child{padding-left:0}.vehicle-document-list>section:last-child{padding-right:0;border-right:0}.vehicle-document-list>section>div:first-child{display:grid;align-content:start;gap:.3rem}.vehicle-document-list span{color:var(--ink-3);font-size:.72rem;font-weight:700;text-transform:uppercase}.vehicle-document-list small{color:var(--ink-3)}.compliance-status{font-size:.88rem}.compliance-status.is-positive{color:var(--positive)}.compliance-status.is-warning{color:var(--warning)}.compliance-status.is-negative{color:var(--negative)}.compliance-status.is-neutral{color:var(--ink-3)}.vehicle-compliance-actions{display:flex;align-items:flex-start;flex-wrap:wrap;gap:var(--s2)}.vehicle-maintenance-summary{display:grid;grid-template-columns:minmax(12rem,1fr) auto;align-items:center;gap:var(--s3);padding:var(--s4) 0}.vehicle-maintenance-summary h3{margin:.2rem 0 0;font-size:1rem}.vehicle-maintenance-summary>article{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s3);padding:var(--s3);border-left:3px solid var(--rule-2);background:var(--surface-2)}.vehicle-maintenance-summary>article.is-due{border-left-color:var(--warning)}.vehicle-maintenance-summary>article>div:first-child{display:grid;gap:.3rem}.vehicle-maintenance-summary small{color:var(--ink-3)}.vehicle-compliance-card>footer{border-top:1px solid var(--rule-2)}.vehicle-compliance-history{margin-bottom:var(--s4);border-top:1px solid var(--rule-2)}.vehicle-compliance-history summary{padding:var(--s3) 0;font-weight:700;cursor:pointer}.vehicle-compliance-history p{display:grid;grid-template-columns:minmax(10rem,.4fr) 1fr;gap:var(--s3);margin:0;padding:var(--s2) 0;border-top:1px solid var(--rule-2)}.vehicle-compliance-history span{color:var(--ink-3)}.vehicle-compliance-modal{width:min(50rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto}.vehicle-detail-compliance{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);margin:calc(var(--s5) * -1) 0 var(--s6);padding:var(--s4);border-left:3px solid var(--positive);background:var(--surface)}.vehicle-detail-compliance.is-blocked{border-left-color:var(--negative)}.vehicle-detail-compliance h2,.vehicle-detail-compliance p{margin:0}.vehicle-detail-compliance h2{margin:.2rem 0;font-size:1.05rem}.vehicle-detail-compliance p:last-child{color:var(--ink-3)}.vehicle-alert-card.is-blocking{border-left:3px solid var(--negative);padding-left:var(--s3)}.vehicle-alert-card.is-warning{border-left:3px solid var(--warning);padding-left:var(--s3)}.vehicle-act-control{min-width:0;padding:var(--s3);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-act-control.is-compact{grid-column:1 / -1;margin-top:var(--s2);padding:var(--s2)}.vehicle-act-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.vehicle-act-summary>div:first-child{display:grid;gap:.2rem;min-width:0}.vehicle-act-summary>div:first-child>span{color:var(--ink-3);font-size:.68rem;font-weight:700;text-transform:uppercase}.vehicle-act-summary small,.vehicle-act-issued,.vehicle-act-unavailable{color:var(--ink-3);font-size:.75rem}.vehicle-act-status{font-weight:700}.vehicle-act-status.is-issued{color:var(--positive)}.vehicle-act-status.is-void{color:var(--negative)}.vehicle-act-issued{margin:var(--s2) 0 0}.vehicle-act-modal{width:min(42rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow-y:auto}.vehicle-act-notice{padding:var(--s3);border-left:3px solid var(--accent);background:var(--surface-2);color:var(--ink-2)}.vehicle-contract-acts{margin-top:var(--s6);padding:var(--s5);border:1px solid var(--rule-2);background:var(--surface)}.vehicle-contract-acts>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}@media(max-width:1024px){.vehicle-grid,.vehicle-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-metrics>div:nth-child(2){border-right:0}.vehicle-metrics>div:nth-child(-n+2){border-bottom:1px solid var(--rule-2)}.vehicle-command-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-command-strip>div:nth-child(2){border-right:0}.vehicle-command-strip>div:nth-child(-n+2){border-bottom:1px solid var(--rule-2)}.vehicle-command-strip>div:nth-child(3){padding-left:0}.vehicle-operation-card{grid-template-columns:.5rem minmax(12rem,1fr) minmax(11rem,.7fr)}.vehicle-operation-actions{grid-column:2 / -1;justify-content:flex-start}.vehicle-operations-board{gap:var(--s5)}.vehicle-document-list{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-document-list>section:nth-child(2){padding-right:0;border-right:0}.vehicle-document-list>section:nth-child(3){grid-column:1 / -1;padding-left:0;border-top:1px solid var(--rule-2)}}@media(max-width:768px){.vehicle-toolbar{align-items:stretch;flex-direction:column}.vehicle-search{width:100%}.vehicle-detail-layout{grid-template-columns:1fr}.vehicle-inspections{padding-inline:0;border-top:1px solid var(--rule-2);border-left:0}.vehicle-operation-card{grid-template-columns:.35rem minmax(0,1fr)}.vehicle-operation-value,.vehicle-operation-actions{grid-column:2}.vehicle-calendar-toolbar{align-items:stretch;flex-direction:column}.vehicle-calendar-toolbar>div{justify-content:space-between}.vehicle-operations-board{grid-template-columns:1fr}.vehicle-document-list{grid-template-columns:1fr 1fr}.vehicle-detail-compliance{align-items:stretch;flex-direction:column}.vehicle-detail-compliance .button{width:100%}.vehicle-contract-acts>div:last-child{grid-template-columns:1fr}}@media(max-width:560px){.vehicle-grid,.vehicle-metrics,.vehicle-form-grid{grid-template-columns:1fr}.vehicle-metrics>div{border-right:0;border-bottom:1px solid var(--rule-2)}.vehicle-metrics>div:last-child{border-bottom:0}.vehicle-card{min-height:13rem;padding:1rem}.vehicle-form fieldset{padding:1rem}.vehicle-form-actions{flex-direction:column-reverse}.vehicle-form-actions .button{width:100%}.vehicle-header-actions{align-items:stretch;flex-direction:column;width:100%}.vehicle-header-actions .button{width:100%}.vehicle-command-strip{grid-template-columns:1fr 1fr}.vehicle-command-strip>div{padding:var(--s3)}.vehicle-command-strip>div:first-child,.vehicle-command-strip>div:nth-child(3){padding-left:var(--s3)}.vehicle-command-strip strong{font-size:1.05rem}.vehicle-operation-actions{align-items:stretch;flex-direction:column}.vehicle-operation-actions .button{width:100%}.vehicle-operation-modal,.vehicle-finance-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);padding:1rem}.vehicle-operation-context{align-items:flex-start;flex-direction:column;gap:.2rem}.vehicle-finance-summary{grid-template-columns:1fr}.vehicle-finance-summary>div,.vehicle-finance-summary>div:first-child{padding:var(--s3) 0;border-right:0;border-bottom:1px solid var(--rule-2)}.vehicle-finance-summary>div:last-child{border-bottom:0}.vehicle-calendar-toolbar .button{flex:1}.vehicle-agenda-card,.vehicle-alert-card{grid-template-columns:1fr}.vehicle-agenda-card .button,.vehicle-alert-card .button{width:100%}.vehicle-compliance-card{padding:1rem}.vehicle-compliance-card>header{align-items:stretch;flex-direction:column}.compliance-overall{align-self:flex-start}.vehicle-document-list{grid-template-columns:1fr}.vehicle-document-list>section,.vehicle-document-list>section:first-child,.vehicle-document-list>section:nth-child(2),.vehicle-document-list>section:nth-child(3){grid-column:auto;grid-template-columns:1fr;padding:var(--s3) 0;border-top:1px solid var(--rule-2);border-right:0}.vehicle-document-list>section:first-child{border-top:0}.vehicle-compliance-actions{align-items:stretch;flex-direction:column}.vehicle-compliance-actions .button{width:100%}.vehicle-maintenance-summary{grid-template-columns:1fr}.vehicle-maintenance-summary>article{grid-column:auto;grid-template-columns:1fr}.vehicle-compliance-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);padding:1rem}.vehicle-compliance-history p{grid-template-columns:1fr;gap:.2rem}.vehicle-act-summary{align-items:stretch;flex-direction:column}.vehicle-act-summary .vehicle-compliance-actions{width:100%}.vehicle-act-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem);padding:1rem}.vehicle-contract-acts{padding:1rem}}@media print{body *{visibility:hidden!important}.vehicle-print-contract,.vehicle-print-contract *{visibility:visible!important}.vehicle-print-contract{display:block;position:absolute;top:0;right:0;bottom:0;left:0;padding:1.5cm;background:#fff;color:#111;font-family:Arial,sans-serif}.vehicle-print-contract header{padding-bottom:1rem;border-bottom:2px solid #111}.vehicle-print-contract header p{margin:0;letter-spacing:.18em}.vehicle-print-contract h1{margin:.4rem 0 0;font-size:1.6rem}.vehicle-print-contract>dl{display:grid;grid-template-columns:1fr 1fr;margin:2rem 0;border:1px solid #bbb}.vehicle-print-contract>dl>div{padding:.8rem;border-right:1px solid #bbb;border-bottom:1px solid #bbb}.vehicle-print-contract dt{color:#555;font-size:.72rem;text-transform:uppercase}.vehicle-print-contract dd{margin:.3rem 0 0;font-weight:700}.vehicle-print-terms dl{display:grid;gap:.5rem;margin:1rem 0 0}.vehicle-print-terms dl>div{display:grid;grid-template-columns:minmax(10rem,.6fr) 1fr;gap:1rem;padding-bottom:.5rem;border-bottom:1px solid #ddd}.vehicle-print-contract footer{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:5rem}.vehicle-print-contract footer div{padding-top:.7rem;border-top:1px solid #111}}.app-topbar{min-height:58px;height:58px;background:color-mix(in srgb,var(--sheet) 90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-brand-copy{display:grid;gap:1px;line-height:1.05}.app-brand-copy small{color:var(--ink-4);font:8px var(--mono);letter-spacing:.1em;text-transform:uppercase}.workspace-status{display:inline-flex;align-items:center;gap:7px;color:var(--ink-4);font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase}.workspace-status>span{width:7px;height:7px;border-radius:50%;background:var(--real);box-shadow:0 0 0 3px var(--real-w)}.app-nav{top:58px;height:calc(100dvh - 58px)}.app-main{padding:clamp(24px,3vw,44px) clamp(16px,2.4vw,36px) 88px}.session-kicker{margin:0 0 7px;color:var(--ink-4);font:8px var(--mono);letter-spacing:.12em;text-transform:uppercase}.page-header{margin-bottom:clamp(20px,3vw,32px);padding-bottom:clamp(16px,2vw,24px)}.page-header h1{max-width:22ch;font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:-.04em}.page-actions .button{min-height:42px}.state{min-height:220px;border-radius:12px}@media(min-width:769px)and (max-width:1100px){.app-shell{grid-template-columns:76px minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"topbar topbar" "nav main"}.app-nav{display:flex;position:sticky;top:58px;height:calc(100dvh - 58px);padding:var(--s3) var(--s2);border-right:1px solid var(--rule);border-bottom:0}.nav-link{justify-content:center;min-height:44px;padding:8px;border-left:0;border-bottom:2px solid transparent}.nav-link.is-active{border-left-color:transparent;border-bottom-color:var(--accent)}.nav-link-label,.nav-group-label,.session-kicker,.session-name,.session-role{display:none}.app-session{padding-top:var(--s3)}.session-action{padding-inline:4px;font-size:10px}.logout-label-full{display:none}.logout-label-short{display:inline}.nav-toggle,.mobile-tabbar{display:none!important}}@media(max-width:768px){.app-shell{display:block;min-height:100dvh}.app-topbar{padding-inline:14px}.workspace-status,.command-trigger span,.command-trigger kbd,.theme-label,.app-brand-copy small{display:none}.command-trigger{min-width:42px;width:42px;min-height:42px;justify-content:center;padding:0}.theme-toggle,.nav-toggle,.notification-bell{min-width:42px;min-height:42px}.nav-toggle{display:inline-flex}.app-nav,.app-nav.is-open{position:fixed;top:0;right:0;bottom:0;left:0;z-index:220;width:min(88vw,360px);height:100dvh;padding:18px 14px calc(88px + env(safe-area-inset-bottom));border:0;border-right:1px solid var(--rule);background:var(--sheet);box-shadow:var(--shadow-pop);overflow-y:auto}.app-nav{display:none}.app-nav.is-open{display:flex}.app-main{padding:22px 14px calc(100px + env(safe-area-inset-bottom));overflow-x:hidden}.mobile-tabbar{display:grid!important}.mobile-tab{min-height:48px;flex-direction:column;gap:3px}.mobile-tab .app-icon{width:18px;height:18px}.mobile-tab span{font-size:9px}.page-actions{width:100%}.page-actions .button{flex:1 1 160px;justify-content:center}}@media(max-width:390px){.app-brand-label{display:none}.topbar-actions{margin-left:auto}.page-header h1{font-size:1.65rem}}.cashflow-center,.cashflow-currency{display:grid;gap:1.25rem}.cashflow-summary{display:grid;grid-template-columns:1.2fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}.cashflow-summary>div,.cashflow-summary>dl{background:var(--surface);padding:1.5rem;margin:0}.cashflow-summary>div{display:grid;align-content:center;gap:.5rem}.cashflow-summary>div span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.cashflow-summary>div strong{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.2rem)}.cashflow-summary dl{display:grid;gap:.75rem}.cashflow-summary dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.65rem}.cashflow-summary dd{margin:0;font-weight:700}@media(max-width:768px){.cashflow-summary{grid-template-columns:1fr}.cashflow-summary>div strong{font-size:2.2rem}}.profitability-center,.profitability-currency{display:grid;gap:1.25rem}.profitability-filters{display:flex;align-items:end;gap:1rem;padding:1rem;border:1px solid var(--border);background:var(--surface)}.profitability-filters label{display:grid;gap:.35rem;font-weight:600}.profitability-filters span{margin-left:auto;color:var(--text-muted);max-width:28rem}.profitability-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}.profitability-hero>div,.profitability-hero>dl{background:var(--surface);padding:1.5rem;margin:0}.profitability-hero>div{display:grid;align-content:center;gap:.5rem}.profitability-hero>div span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.profitability-hero>div strong{font-family:var(--font-display);font-size:clamp(2rem,5vw,4.2rem)}.profitability-hero dl{display:grid;gap:.75rem}.profitability-hero dl div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.65rem}.profitability-hero dd{margin:0;font-weight:700}.profitability-coverage ul{display:grid;gap:.6rem;color:var(--text-muted)}@media(max-width:768px){.profitability-filters{align-items:stretch;flex-direction:column}.profitability-filters span{margin-left:0}.profitability-hero{grid-template-columns:1fr}.profitability-hero>div strong{font-size:2.2rem}}
