.loan-plan-form .field{min-width:0}.loan-plan-form-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.loan-plan-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.loan-plan-summary .metric{background:#f4f7fb;border-radius:9px;padding:11px}.loan-plan-chart{width:100%;height:255px;display:block}.loan-plan-chart-grid{stroke:#dbe3ee;stroke-width:1}.loan-plan-chart-axis{fill:#607086;font-size:11px}.loan-plan-chart-base{fill:none;stroke:#8995a6;stroke-width:2.5;stroke-dasharray:9 6;stroke-linecap:round;stroke-linejoin:round}.loan-plan-chart-planned{fill:none;stroke:#2474e5;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.loan-plan-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:5px 0 16px;font-size:12px;color:#607086}.loan-plan-legend span{display:flex;align-items:center;gap:7px}.loan-plan-legend i{display:inline-block;width:24px;border-top:3px solid #2474e5}.loan-plan-legend i.base{border-top-color:#8995a6;border-top-style:dashed}.prepayment-form{display:grid;grid-template-columns:160px 180px minmax(220px,1fr) auto;gap:10px;align-items:end;margin:12px 0}.prepayment-form .field{min-width:0}.loan-schedule-wrap{max-height:430px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.loan-schedule-wrap .table{min-width:1080px}.loan-plan-section-title{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-top:18px}.loan-plan-section-title h3{margin:0}.loan-plan-status{font-size:12px;color:var(--muted)}@media(max-width:900px){.loan-plan-form{grid-template-columns:repeat(2,minmax(0,1fr))}.loan-plan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.prepayment-form{grid-template-columns:1fr 1fr}.prepayment-form .field:last-of-type{grid-column:1/-1}.prepayment-form button{grid-column:1/-1}}@media(max-width:600px){.loan-plan-form,.loan-plan-summary,.prepayment-form{grid-template-columns:1fr}.loan-plan-form-actions,.prepayment-form .field:last-of-type,.prepayment-form button{grid-column:auto}}@media(max-width:800px){.loan-entry-form{grid-template-columns:1fr 1fr}.loan-entry-form .field:last-of-type{grid-column:1/-1}.loan-entry-form button{grid-column:1/-1}.loan-history-summary{grid-template-columns:1fr}}.metric{background:#f7f9fc;padding:11px;border-radius:9px;font-size:12px;color:var(--muted)}.metric b{display:block;color:var(--ink);font-size:16px;margin-top:4px}.toolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}.hamburger{position:fixed;top:18px;right:20px;z-index:32;width:46px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow);cursor:pointer;display:grid;place-content:center;gap:4px}.hamburger span{display:block;width:21px;height:2px;background:var(--ink);border-radius:2px}.app-menu{display:none;position:fixed;top:68px;right:20px;z-index:31;width:min(340px,calc(100vw - 36px));max-height:calc(100vh - 88px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 55px rgba(15,35,55,.2);padding:16px}.main{padding-top:78px}.app-menu.open{display:block}.menu-section+ .menu-section{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.menu-title{font-size:14px;font-weight:800;line-height:1.3;margin-bottom:5px}.app-menu button,.app-menu input,.app-menu .field label{font-size:14px}.app-menu button.link{line-height:1.35;text-align:left}.menu-rate{font-size:20px;font-weight:800;line-height:1.3;margin:5px 0}.menu-row{display:flex;gap:8px;align-items:end}.menu-row .field{flex:1}.snapshot-foot td{font-weight:800;background:#f4f7fb}.chart-card-head{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:18px;align-items:start}.chart-scroll{width:100%;overflow:hidden;padding-bottom:3px}.portfolio-chart{width:100%;height:340px;display:block}.chart-grid{stroke:#dbe3ee;stroke-width:1}.chart-axis{fill:#607086;font-size:12px}.chart-month-axis{fill:#4f5d70;font-size:10px;font-weight:650}.chart-year-axis{fill:#26364a;font-size:12px;font-weight:800}.chart-month-boundary{stroke:#d7dee8;stroke-width:1}.chart-year-boundary{stroke:#aeb9c7;stroke-width:1}.chart-axis-divider{stroke:#aeb9c7;stroke-width:1}.chart-line{fill:none;stroke:#2474e5;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-area{fill:rgba(36,116,229,.09)}.chart-line-invested{fill:none;stroke:#6b7280;stroke-width:3;stroke-dasharray:10 7;stroke-linejoin:round;stroke-linecap:round}.chart-legend{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:12px;color:#607086}.chart-legend-item{display:flex;gap:7px;align-items:center}.chart-legend-line{width:24px;height:0;border-top:3px solid #2474e5}.chart-legend-line.invested{border-top-color:#6b7280;border-top-style:dashed}.chart-high-line{stroke:#a9dcbc;stroke-width:2;stroke-dasharray:6 6}.chart-low-line{stroke:#efb8b8;stroke-width:2;stroke-dasharray:6 6}.chart-high-label{fill:#4e8f68;font-size:11px;font-weight:700}.chart-low-label{fill:#b86b6b;font-size:11px;font-weight:700}.market-status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.market-status.ok{background:#eaf7ef;color:#27744a}.market-status.fail{background:#fdecec;color:#a53434}.market-status.unknown{background:#fff4df;color:#8b5b00}.holding-price-date{font-size:12px;white-space:nowrap}.holding-name-auto{font-weight:650}.chart-range-panel{min-width:480px}.chart-range-controls{display:flex;align-items:end;justify-content:flex-end;gap:9px;flex-wrap:nowrap}.chart-range-controls .field{width:145px}.chart-range-controls .field label{font-size:11px}.chart-range-controls input{width:100%;padding:8px 9px}.chart-range-status{font-size:12px;color:var(--muted);margin-top:7px;text-align:right;white-space:normal}@media(max-width:900px){.chart-card-head{grid-template-columns:1fr}.chart-range-panel{min-width:0}.chart-range-controls{justify-content:flex-start;flex-wrap:wrap}.chart-range-controls .field{width:auto;min-width:145px;flex:1 1 145px}.chart-range-status{text-align:left}}.drp-help{background:#eef5ff;border:1px solid #b9d4fb;color:#214a78;padding:11px 12px;border-radius:9px;font-size:12px;line-height:1.45}.cache-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.chart-empty{display:flex;min-height:240px;align-items:center;justify-content:center;color:#68778c;text-align:center}.chart-tooltip{font-size:12px;fill:#172334;font-weight:700}.history-progress{height:12px;background:#e6edf5;border-radius:999px;overflow:hidden;margin-top:14px}.history-progress-bar{height:100%;width:0;background:var(--blue);transition:width .2s}.history-log{white-space:pre-wrap;background:#0d1b2a;color:#d7e3ef;border-radius:10px;padding:14px;min-height:190px;max-height:330px;overflow:auto;font-family:Consolas,monospace;font-size:12px;line-height:1.45}.history-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.history-summary .metric{background:#f4f7fb;border-radius:9px;padding:11px}.history-note{background:#fff7db;border:1px solid #f1d571;color:#705200;padding:11px 12px;border-radius:9px;font-size:12px;line-height:1.45}.history-status{font-size:13px;color:var(--muted);font-weight:700}@media(max-width:650px){.history-summary{grid-template-columns:1fr}}@media(max-width:980px){.app{grid-template-columns:76px 1fr}.side{padding:20px 10px}.brand{font-size:0;margin:0 4px 22px}.brand:after{content:'AL';font-size:19px}.nav button{font-size:0;text-align:center}.nav button:before{font-size:18px}.note{display:none}.kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.main{padding:78px 17px 17px}.top{flex-direction:column}.kpis{grid-template-columns:1fr}.form{grid-template-columns:1fr}.field.full{grid-column:auto}}

/* AssetLedger 6.0 quality-of-life and planning modules */
.global-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:10px 12px;margin-bottom:15px}
.global-toolbar-left,.global-toolbar-right{display:flex;align-items:end;gap:9px;flex-wrap:wrap}
.global-toolbar .field{min-width:145px}.global-toolbar .field label{font-size:11px}.save-status{font-size:12px;color:var(--muted);padding:8px 2px}.save-status.saved{color:var(--good)}.save-status.warning{color:#9a5d00}
.dashboard-delta{font-size:11px;color:var(--muted);margin-top:6px}.dashboard-delta.good{color:var(--good)}.dashboard-delta.bad{color:var(--bad)}
.pinned-reports{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:15px}.pinned-report{border-left:4px solid var(--blue)}.pinned-report h4{margin:0 0 7px}.pinned-report .value{font-size:22px}