:root {
  --navy: var(--primary);
  --navy-dark: #122236;
  --navy-mid: var(--primary-soft);
  --teal: var(--accent);
  --teal-light: var(--accent-soft);
  --teal-mid: color-mix(in srgb, var(--accent) 42%, white);
  --amber: #9d7a49;
  --amber-light: rgba(157, 122, 73, 0.12);
  --green: var(--success);
  --green-light: color-mix(in srgb, var(--success) 14%, transparent);
  --red: var(--danger);
  --red-light: color-mix(in srgb, var(--danger) 14%, transparent);
  --purple: #7f7a99;
  --orange: #9a7050;
  --blue: #58728a;
  --gray-50: color-mix(in srgb, var(--background-elevated) 94%, white);
  --gray-100: color-mix(in srgb, var(--background-elevated) 82%, var(--muted));
  --gray-200: var(--muted);
  --gray-300: var(--muted-strong);
  --gray-400: var(--foreground-muted);
  --gray-500: var(--foreground-muted);
  --gray-600: var(--foreground-soft);
  --gray-700: var(--foreground-soft);
  --gray-800: var(--foreground);
  --gray-900: var(--foreground);
  --page-bg: var(--background);
  --page-bg-deep: var(--background-elevated);
  --surface: var(--card);
  --surface-strong: var(--card-raised);
  --surface-muted: var(--background-elevated);
  --line-soft: var(--border);
  --section-blue-1: color-mix(in srgb, var(--primary) 58%, #22354a);
  --section-blue-2: color-mix(in srgb, var(--primary) 46%, #1b2d3f);
  --section-blue-3: color-mix(in srgb, var(--primary) 36%, #162536);
  --section-blue-4: color-mix(in srgb, var(--primary) 28%, #213347);
  --loan-zone-bg: linear-gradient(180deg, rgba(39, 57, 78, 0.98) 0%, rgba(28, 42, 58, 0.98) 100%);
  --loan-zone-border: color-mix(in srgb, var(--primary-soft) 24%, var(--border-strong));
  --loan-zone-inset: color-mix(in srgb, white 10%, transparent);
  --loan-subpanel-bg: linear-gradient(180deg, rgba(46, 63, 82, 0.98) 0%, rgba(35, 50, 66, 0.98) 100%);
  --loan-subpanel-border: color-mix(in srgb, var(--primary-soft) 18%, var(--border));
  --shadow-soft: var(--shadow-sm);
  --shadow-lift: var(--shadow-md);
  --focus-ring: var(--ring);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font-body);background:radial-gradient(circle at top, rgba(90,180,149,.1), transparent 24%), radial-gradient(circle at 12% 18%, rgba(62,86,114,.08), transparent 28%), linear-gradient(180deg, var(--page-bg) 0%, var(--page-bg-deep) 100%); color:var(--foreground); min-height:100vh; letter-spacing:-.01em;}
.container{max-width:1240px;margin:0 auto;padding:32px 20px 44px;}
.card{background:linear-gradient(180deg, rgba(31,46,64,.97) 0%, rgba(20,31,45,.99) 100%); border-radius:32px;border:1px solid color-mix(in srgb, var(--primary-soft) 28%, var(--line-soft));padding:34px;margin-bottom:28px;box-shadow:0 24px 44px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:blur(14px);position:relative;overflow:hidden;}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:88px;background:linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,0) 100%);pointer-events:none;}
.card::after{content:"";position:absolute;left:0;top:22px;bottom:22px;width:6px;border-radius:999px;background:linear-gradient(180deg, color-mix(in srgb, var(--teal) 68%, white) 0%, color-mix(in srgb, var(--primary) 80%, white) 100%);opacity:.72;}
.card>*{position:relative;z-index:1;}
.card-title{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:color-mix(in srgb, var(--foreground-muted) 88%, white);margin-bottom:18px;display:flex;align-items:center;gap:8px;}
.calc-section{margin-top:18px;padding:0 22px 8px;border:1px solid color-mix(in srgb, var(--primary-soft) 16%, var(--border));border-radius:24px;background:linear-gradient(180deg, rgba(29,43,59,.72) 0%, rgba(23,35,49,.84) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);}
.calc-section:first-of-type{margin-top:0;border-top:none;}
.calc-section-header{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:18px 0 14px;border:none;background:none;text-align:left;cursor:pointer;font-family:var(--font-body);}
.calc-section-heading{font-size:1.02rem;font-weight:800;color:var(--foreground);letter-spacing:-.02em;}
.calc-section-summary{font-size:.88rem;color:var(--foreground-muted);line-height:1.5;}
.calc-section-chevron{width:12px;height:12px;border-right:2px solid var(--foreground-muted);border-bottom:2px solid var(--foreground-muted);transform:rotate(45deg);transition:transform .18s ease, border-color .18s ease;margin-right:6px;}
.calc-section.is-open .calc-section-chevron{transform:rotate(225deg) translate(-1px,-1px);border-color:var(--teal);}
.calc-section-body{display:block;padding:0 0 12px;}
.calc-section-body.is-collapsed{display:none;}
.section-kicker{display:block;width:100%;font-size:.88rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb, var(--primary) 78%, var(--foreground) 22%);margin:0 0 14px;line-height:1.2;}
.section-kicker-inline{width:100%;margin:0 0 4px;}
.input-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.field label{display:block;font-size:.82rem;font-weight:700;color:var(--foreground);margin-bottom:8px;}
.field input,.field select{width:100%;padding:12px 14px;border:1px solid var(--border-strong);border-radius:14px;font-size:1rem;font-family:var(--font-body);color:var(--foreground);background:var(--surface-strong);transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;}
.field input:hover,.field select:hover{border-color:var(--border-strong);}
.field input:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:var(--focus-ring);}
.field .hint{font-size:.82rem;color:var(--foreground-muted);margin-top:8px;line-height:1.55;}
.field .hint a,.advanced-note a{color:var(--teal);text-decoration:none;}
.input-wrap{position:relative;display:flex;align-items:center;}
.input-wrap .pfx{position:absolute;left:13px;color:var(--gray-400);font-size:.88rem;pointer-events:none;z-index:1;}
.input-wrap .sfx{position:absolute;right:13px;color:var(--gray-400);font-size:.88rem;pointer-events:none;}
.input-wrap input.p{padding-left:24px;}
.input-wrap input.s{padding-right:28px;}
.calc-mode-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding:24px 24px;border-radius:22px;background:linear-gradient(135deg, rgba(37,54,73,.98) 0%, rgba(29,43,59,.98) 100%);border:1px solid color-mix(in srgb, var(--primary-soft) 24%, var(--border));box-shadow:0 16px 28px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.06);}
.calc-mode-copy{max-width:620px;}
.calc-mode-copy strong{display:block;font-size:1.08rem;color:var(--foreground);margin-bottom:8px;letter-spacing:-.02em;}
.calc-mode-copy p{font-size:.98rem;color:var(--foreground-soft);line-height:1.7;}
.mode-toggle{display:flex;background:rgba(19,31,44,.88);border-radius:999px;padding:4px;gap:3px;flex-shrink:0;border:1px solid var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,.04);}
.mode-btn{padding:7px 15px;border-radius:999px;border:none;background:transparent;font-size:.79rem;font-weight:700;color:var(--gray-300);cursor:pointer;transition:all .15s ease;font-family:var(--font-body);}
.mode-btn.active{background:rgba(78,195,183,.16);color:#f4fbff;box-shadow:0 8px 18px rgba(0,0,0,.16);}
.loan-panel{display:none;}
.loan-panel.active{display:block;padding:24px;border-radius:24px;background:linear-gradient(180deg, rgba(32,47,65,.97) 0%, rgba(24,36,51,.99) 100%);border:1px solid color-mix(in srgb, var(--primary-soft) 22%, var(--border));box-shadow:0 18px 32px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05);position:relative;}
.loan-panel.active::before{content:"";position:absolute;left:18px;right:18px;top:12px;height:1px;background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.16) 18%, rgba(255,255,255,.05) 82%, transparent 100%);}
#basicLoanPanel{background:linear-gradient(180deg, rgba(34,49,68,.96) 0%, rgba(27,40,57,.98) 100%);}
#basicLoanPanel .input-grid,.household-section,#growthPanel,#customPanel{padding:22px 22px;border-radius:22px;background:linear-gradient(180deg, rgba(44,60,79,.97) 0%, rgba(33,47,64,.99) 100%);border:1px solid color-mix(in srgb, var(--primary-soft) 20%, var(--border));box-shadow:0 14px 24px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.05);}
#growthPanel,#customPanel{background:linear-gradient(180deg, rgba(38,53,72,.96) 0%, rgba(31,45,62,.98) 100%);}
.household-section .section-kicker{margin-top:0;}
#growthPanel,#customPanel{margin-top:4px;}
.eligibility-note,.advanced-note{margin-top:14px;font-size:.88rem;color:var(--foreground-soft);line-height:1.7;}
.loan-summary{background:linear-gradient(135deg, rgba(28,57,66,.96) 0%, rgba(31,50,70,.98) 100%);border:1px solid color-mix(in srgb, var(--teal) 22%, var(--border));border-radius:18px;padding:16px 18px;margin-bottom:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;box-shadow:0 12px 24px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.05);}
.loan-summary .lbl{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--foreground-muted);margin-bottom:6px;}
.loan-summary .val{font-size:1.18rem;font-weight:800;color:var(--teal);}
.loan-rows{display:grid;gap:12px;}
.loan-row{border:1px solid color-mix(in srgb, var(--primary-soft) 18%, var(--border));border-radius:18px;padding:18px;background:linear-gradient(180deg, rgba(40,56,75,.96) 0%, rgba(31,45,62,.98) 100%);box-shadow:0 10px 24px rgba(0,0,0,.1), inset 0 1px 0 rgba(255,255,255,.05);}
.loan-row-grid{display:grid;grid-template-columns:.72fr 1.65fr 1.9fr 1.2fr .9fr auto;gap:12px;align-items:end;}
.loan-row-actions{display:flex;justify-content:flex-end;}
.loan-row-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb, var(--primary) 10%, var(--border));}
.loan-meta-item{display:grid;gap:4px;padding:0;background:none;border:none;min-width:0;}
.loan-meta-label{font-size:.7rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--foreground-muted);}
.loan-meta-value{font-size:.92rem;font-weight:700;color:var(--foreground);}
.loan-core-value{padding:12px 14px;border-radius:14px;border:1px solid color-mix(in srgb, var(--teal) 22%, var(--border));background:linear-gradient(135deg, rgba(36,58,71,.96) 0%, rgba(34,51,68,.98) 100%);font-size:1.02rem;font-weight:800;color:var(--foreground);}
.loan-core-value-compact{text-align:center;padding-inline:10px;}
.loan-row-progress{margin-top:12px;}
.loan-row-progress-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;padding:13px 16px;border-radius:16px;background:linear-gradient(135deg, rgba(29, 61, 66, 0.98) 0%, rgba(36, 52, 70, 0.98) 100%);border:1px solid color-mix(in srgb, var(--teal) 22%, var(--border));cursor:pointer;box-shadow:0 12px 24px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.05);}
.loan-row-progress-summary::-webkit-details-marker{display:none;}
.loan-row-progress-summary::after{content:'+';font-size:1rem;font-weight:800;color:var(--teal);flex-shrink:0;}
.loan-row-progress[open] .loan-row-progress-summary::after{content:'-';}
.loan-row-progress-label{font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--foreground-muted);}
.loan-row-progress-text{font-size:.86rem;font-weight:700;color:var(--foreground);text-align:right;}
.loan-row-progress-body{margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb, var(--primary) 10%, var(--border));}
.loan-row-progress-body .import-counter-block{display:grid;gap:10px;}
.loan-row-progress-body .import-item-label{margin-bottom:2px;}
.loan-row-progress-body .import-counter-note{max-width:780px;}
.btn-remove-loan,.btn-danger-lite{background:var(--red-light);color:var(--red);border:1px solid color-mix(in srgb, var(--red) 30%, transparent);border-radius:12px;padding:10px 14px;font-size:.9rem;font-weight:700;cursor:pointer;font-family:var(--font-body);}
.import-panel{margin:18px 0 16px;background:linear-gradient(135deg, rgba(34,49,68,.96) 0%, rgba(27,40,57,.98) 100%);border:1px solid color-mix(in srgb, var(--primary-soft) 20%, var(--border));border-radius:20px;padding:20px;box-shadow:0 12px 24px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.05);}
.import-panel h3{font-size:1.02rem;font-weight:800;color:var(--foreground);margin-bottom:8px;}
.import-panel p{font-size:.94rem;color:var(--foreground-soft);line-height:1.65;margin-bottom:8px;}
.import-panel .small{font-size:.84rem;color:var(--foreground-muted);}
.import-tiles{display:grid;grid-template-columns:1fr;gap:16px;align-items:start;}
.import-tile{padding:18px;border-radius:18px;background:linear-gradient(180deg, rgba(42,58,77,.96) 0%, rgba(34,48,65,.98) 100%);border:1px solid color-mix(in srgb, var(--primary-soft) 15%, var(--border));box-shadow:0 10px 22px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.05);}
.import-tile-secondary{background:linear-gradient(180deg, rgba(34,61,66,.96) 0%, rgba(33,50,63,.98) 100%);border-color:color-mix(in srgb, var(--teal) 18%, var(--border));}
.import-tile-kicker{display:inline-flex;align-items:center;padding:4px 10px;margin-bottom:10px;border-radius:999px;background:rgba(52,80,118,.28);color:var(--foreground);font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
.import-help{margin-top:10px;padding:12px 14px;border-radius:14px;background:rgba(24,38,54,.74);border:1px solid color-mix(in srgb, var(--primary) 12%, var(--border));}
.import-help summary{cursor:pointer;list-style:none;font-size:.9rem;font-weight:700;color:var(--foreground);}
.import-help summary::-webkit-details-marker{display:none;}
.import-help summary::after{content:'+';float:right;font-size:1rem;font-weight:800;color:var(--primary);}
.import-help[open] summary::after{content:'-';}
.import-help ol{margin:8px 0 0;padding-left:18px;color:var(--foreground-soft);font-size:.9rem;line-height:1.55;}
.import-help li + li{margin-top:4px;}
.import-help-experimental{border-color:color-mix(in srgb, var(--teal) 18%, var(--border));background:rgba(22,55,58,.72);}
.import-actions-secondary{margin-top:8px;}
.import-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px;}
.import-meta-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:10px;}
.import-paste-panel{display:none;margin-top:12px;padding:14px;border-radius:14px;background:rgba(24,38,54,.68);border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border));}
.import-paste-panel.active{display:block;}
.import-paste-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:10px;}
.file-input-hidden{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.file-picker-btn{background:linear-gradient(180deg, color-mix(in srgb, var(--primary) 90%, white) 0%, color-mix(in srgb, var(--primary) 100%, black 0%) 100%);color:var(--primary-foreground);border:1px solid color-mix(in srgb, var(--primary) 28%, transparent);border-radius:14px;padding:10px 16px;font-size:.92rem;font-weight:700;cursor:pointer;font-family:var(--font-body);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 10px 18px rgba(15,38,64,.14);}
.file-picker-btn:hover{transform:translateY(-1px);box-shadow:0 14px 24px rgba(15,38,64,.16);}
.btn-secondary{background:linear-gradient(180deg, rgba(52,72,96,.96) 0%, rgba(41,58,79,.98) 100%);color:var(--foreground);border:1px solid color-mix(in srgb, var(--primary) 18%, var(--border));border-radius:14px;padding:10px 16px;font-size:.92rem;font-weight:700;cursor:pointer;font-family:var(--font-body);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 8px 16px rgba(0,0,0,.12);}
.btn-secondary:hover{border-color:color-mix(in srgb, var(--primary) 28%, var(--border));background:linear-gradient(180deg, rgba(58,79,104,.98) 0%, rgba(46,64,86,.98) 100%);}
.btn-text{background:linear-gradient(180deg, rgba(43,59,78,.96) 0%, rgba(33,48,66,.98) 100%);border:1px solid color-mix(in srgb, var(--primary) 15%, var(--border));padding:9px 14px;border-radius:12px;color:var(--foreground);font-size:.88rem;font-weight:700;cursor:pointer;font-family:var(--font-body);text-decoration:none;box-shadow:0 8px 16px rgba(0,0,0,.12);}
.btn-text:hover{color:var(--foreground);border-color:color-mix(in srgb, var(--primary) 24%, var(--border));background:linear-gradient(180deg, rgba(52,70,92,.98) 0%, rgba(38,53,72,.98) 100%);}
.btn-text-muted{color:#ffd1d1;border-color:color-mix(in srgb, var(--red) 22%, var(--border));background:linear-gradient(180deg, rgba(77,42,46,.96) 0%, rgba(60,31,35,.98) 100%);}
.btn-text-muted:hover{color:#ffe0e0;border-color:color-mix(in srgb, var(--red) 32%, var(--border));background:linear-gradient(180deg, rgba(86,48,52,.98) 0%, rgba(67,36,40,.98) 100%);}
.btn-add-compact{padding:9px 14px;font-size:.88rem;box-shadow:0 8px 18px rgba(13,148,136,.14);}
.file-selection{font-size:.92rem;color:var(--foreground-soft);min-width:150px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.import-preview{margin-top:14px;background:rgba(49,40,28,.88);border:1px solid rgba(245,158,11,.24);border-radius:16px;padding:14px;display:none;}
.import-preview.active{display:block;}
.import-preview-secondary{background:rgba(24,53,50,.9);border-color:rgba(13,148,136,.2);}
.import-preview .import-actions{margin-top:14px;}
.import-preview .btn-add[disabled]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none;}
.import-preview .btn-add.is-applied{background:linear-gradient(180deg, color-mix(in srgb, var(--green) 86%, white) 0%, color-mix(in srgb, var(--green) 100%, black 0%) 100%);box-shadow:0 10px 20px rgba(22,163,74,.18);}
.import-list{display:grid;gap:10px;max-height:340px;overflow:auto;margin-bottom:12px;}
.import-item{background:var(--surface-muted);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:grid;gap:8px;}
.import-item-title{font-size:.95rem;font-weight:800;color:var(--foreground);display:flex;align-items:center;gap:8px;line-height:1.3;flex-wrap:wrap;}
.import-item-number{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:3px 8px;border-radius:999px;background:rgba(52,80,118,.28);color:var(--foreground);font-size:.78rem;font-weight:800;letter-spacing:.03em;}
.import-item-key-metrics{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:stretch;}
.import-item-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:6px 18px;}
.import-item-row{display:grid;gap:2px;}
.import-item-key-metrics .import-item-row{padding:8px 10px;border-radius:12px;background:rgba(24,38,54,.72);border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border));min-width:160px;}
.import-item-row-primary{padding:9px 12px;background:linear-gradient(135deg, rgba(26,62,63,.96) 0%, rgba(32,49,68,.98) 100%);border:1px solid color-mix(in srgb, var(--teal) 18%, var(--border));min-width:200px;}
.import-item-row-full{grid-column:1 / -1;}
.import-counter-tags{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:2px;}
.counter-summary-card{background:rgba(24,38,54,.74);border:1px solid color-mix(in srgb, var(--teal) 14%, var(--border));border-radius:12px;padding:10px 12px;display:grid;gap:6px;}
.import-counter-block{gap:10px;}
.counter-plan-card{display:grid;gap:8px;padding:10px 12px;border-radius:14px;background:linear-gradient(180deg, rgba(240,249,247,.95) 0%, rgba(232,242,248,.95) 100%);border:1px solid color-mix(in srgb, var(--teal) 18%, var(--border));align-content:start;}
.counter-plan-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;}
.counter-plan-name{font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb, var(--teal) 82%, var(--foreground) 18%);}
.counter-plan-ratio{font-size:1.18rem;font-weight:800;color:var(--foreground);line-height:1;}
.counter-plan-ratio span{font-size:.8rem;font-weight:700;color:var(--foreground-muted);}
.counter-progress{height:8px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid color-mix(in srgb, var(--primary) 10%, var(--border));overflow:hidden;}
.counter-progress-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg, color-mix(in srgb, var(--teal) 70%, white) 0%, var(--teal) 100%);}
.counter-plan-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.counter-plan-left{font-size:.84rem;font-weight:800;color:var(--foreground);}
.counter-plan-caption{font-size:.7rem;color:var(--foreground-muted);line-height:1.35;}
.counter-plan-card-group{background:linear-gradient(180deg, rgba(25,56,55,.96) 0%, rgba(31,45,62,.98) 100%);}
.counter-group-lines{display:grid;gap:6px;}
.counter-group-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:6px;border-top:1px dashed color-mix(in srgb, var(--primary) 12%, var(--border));}
.counter-group-line:first-child{padding-top:2px;border-top:none;}
.counter-group-plan{font-size:.76rem;font-weight:700;color:var(--foreground-soft);}
.counter-group-left{font-size:.78rem;font-weight:800;color:var(--foreground);}
.import-counter-note{font-size:.8rem;color:var(--foreground-soft);line-height:1.55;}
.import-item-label{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--foreground-muted);}
.import-item-value{font-size:.9rem;color:var(--foreground-soft);line-height:1.4;word-break:break-word;}
.import-item-value-primary{font-size:1.14rem;font-weight:800;color:var(--teal);line-height:1.2;}
.import-status{margin-top:10px;font-size:.76rem;color:var(--foreground-soft);}
.import-textarea{width:100%;min-height:130px;padding:12px 13px;border:1px solid var(--border-strong);border-radius:14px;font-size:.82rem;font-family:Consolas,monospace;color:var(--foreground);display:none;background:var(--surface-strong);}
.import-textarea.active{display:block;}
.total-income-banner{background:linear-gradient(135deg, rgba(26,62,63,.96) 0%, rgba(32,49,68,.98) 100%);border:1px solid color-mix(in srgb, var(--teal) 18%, var(--border));border-radius:18px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;margin-top:18px;flex-wrap:wrap;gap:8px;box-shadow:0 12px 24px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.05);}
.total-income-banner .lbl{font-size:.9rem;font-weight:700;color:var(--foreground-soft);}
.total-income-banner .val{font-size:1.22rem;font-weight:800;color:var(--teal);}
.sep{border:none;border-top:1px solid var(--border);margin:30px 0 22px;}
.calc-section-body > .sep:first-child{display:none;}
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:10px;padding:16px 18px 0;border-top:1px solid color-mix(in srgb, var(--primary) 12%, transparent);}
.sec-head h3{font-size:1.22rem;font-weight:800;color:var(--foreground);letter-spacing:-.02em;}
.sec-desc{font-size:1rem;color:var(--foreground-soft);margin:0 0 18px;padding:0 18px;line-height:1.72;max-width:980px;}
.eligibility-help{margin:0 18px 18px;padding:14px 16px;border-radius:16px;background:linear-gradient(180deg, rgba(38,53,72,.96) 0%, rgba(31,45,62,.98) 100%);border:1px solid color-mix(in srgb, var(--teal) 12%, var(--border));box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.eligibility-help summary{cursor:pointer;list-style:none;font-size:.92rem;font-weight:800;color:var(--foreground);}
.eligibility-help summary::-webkit-details-marker{display:none;}
.eligibility-help summary::after{content:'+';float:right;font-size:1rem;font-weight:800;color:var(--teal);}
.eligibility-help[open] summary::after{content:'-';}
.eligibility-help ul{margin:10px 0 0;padding-left:18px;color:var(--foreground-soft);font-size:.9rem;line-height:1.6;}
.eligibility-help li + li{margin-top:6px;}
.badge-opt{background:var(--muted);color:var(--foreground-soft);font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:99px;margin-left:8px;letter-spacing:.03em;}
.year-table-wrap,.table-scroll,.sched-wrap{border:1px solid color-mix(in srgb, var(--primary) 16%, var(--border));border-radius:20px;background:linear-gradient(180deg, rgba(34,49,68,.98) 0%, rgba(26,38,53,.98) 100%);box-shadow:var(--shadow-soft);}
.year-table-wrap{max-height:320px;overflow:auto;margin-top:12px;}
.year-table,.sched-wrap table,table{width:100%;border-collapse:collapse;}
.year-table{min-width:830px;}
.year-table th,thead th{background:rgba(26,39,55,.94);padding:10px 10px;font-size:.72rem;font-weight:700;text-align:left;color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.035em;border-bottom:1px solid var(--border);white-space:nowrap;}
.year-table td,tbody td{padding:8px 10px;font-size:.88rem;color:var(--foreground-soft);white-space:nowrap;border-bottom:1px solid rgba(90,111,138,.28);}
.year-table tbody tr:nth-child(odd) td{background:rgba(37,52,71,.92);}
.year-table tbody tr:nth-child(even) td{background:rgba(30,44,60,.88);}
.table-scroll tbody tr:nth-child(odd) td{background:rgba(37,52,71,.9);}
.table-scroll tbody tr:nth-child(even) td{background:rgba(30,44,60,.86);}
.sched-wrap tbody tr:nth-child(odd) td{background:rgba(37,52,71,.9);}
.sched-wrap tbody tr:nth-child(even) td{background:rgba(30,44,60,.86);}
.year-table tr:last-child td,tbody tr:last-child td{border-bottom:none;}
.year-table input[type=number],.year-table input[type=text],.ep-row select,.ep-row input[type=number],.ep-row input[type=text]{padding:8px 10px;border:1px solid var(--border-strong);border-radius:11px;font-size:.88rem;font-family:var(--font-body);background:var(--surface-strong);color:var(--foreground);}
.yr-num{font-weight:600;color:var(--foreground-soft);width:64px;white-space:nowrap;}
.yr-label{min-width:132px;white-space:normal;}
.yr-main{font-weight:700;color:var(--foreground);}
.yr-sub{margin-top:2px;font-size:.72rem;color:var(--foreground-muted);white-space:nowrap;}
.yr-input-wrap{position:relative;display:inline-flex;align-items:center;}
.yr-pfx,.ep-amt-wrap .pfx{position:absolute;left:10px;color:var(--gray-400);font-size:.84rem;pointer-events:none;}
.yr-input-wrap input[type=text]{padding-left:22px;width:102px;}
.custom-badge{background:var(--amber-light);border:1px solid rgba(157,122,73,.32);color:#7d5522;font-size:.67rem;font-weight:700;padding:1px 7px;border-radius:99px;}
.proj-badge{color:var(--gray-400);font-size:.72rem;}
.bonus-badge{background:var(--teal-light);border:1px solid color-mix(in srgb, var(--teal) 22%, transparent);color:var(--teal);font-size:.67rem;font-weight:700;padding:1px 7px;border-radius:99px;}
.yr-status-wrap{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:168px;}
.btn-reset-yr{background:transparent;border:1px solid var(--border-strong);color:var(--foreground-soft);border-radius:999px;padding:3px 8px;font-size:.7rem;font-weight:700;cursor:pointer;font-family:var(--font-body);line-height:1.15;}
.btn-reset-yr:hover{border-color:var(--teal);color:var(--teal);}
.yr-derived{font-weight:700;color:var(--foreground);font-size:.82rem;}
.ep-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(180deg, rgba(41,57,76,.96) 0%, rgba(32,47,64,.98) 100%);border:1px solid color-mix(in srgb, var(--primary) 16%, var(--border));border-radius:18px;padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.ep-row label{font-size:.82rem;font-weight:700;color:var(--foreground-soft);white-space:nowrap;}
.ep-repeat{width:160px;}
.ep-month{width:130px;}
.ep-yr{width:70px;}
.ep-end-group{display:flex;align-items:center;gap:10px;}
.ep-end-year{width:132px;}
.ep-amt-wrap{position:relative;display:inline-flex;align-items:center;}
.ep-amt{width:118px;padding-left:12px;}
.ep-note{flex:1;min-width:130px;}
.btn-add{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 92%, white) 0%, var(--accent) 100%);color:var(--accent-foreground);border:none;border-radius:14px;padding:10px 18px;font-size:.92rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:transform .15s ease, box-shadow .15s ease;font-family:var(--font-body);box-shadow:0 10px 20px rgba(13,148,136,.18);}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;max-width:100%;}
.chip{display:inline-grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;background:linear-gradient(180deg, rgba(39,55,74,.96) 0%, rgba(31,45,62,.98) 100%);border:1px solid color-mix(in srgb, var(--primary) 14%, var(--border));color:var(--foreground);border-radius:14px;padding:10px 12px;min-width:320px;max-width:520px;flex:0 1 auto;}
.chip-editing{border-color:color-mix(in srgb, var(--teal) 28%, var(--border-strong));box-shadow:0 0 0 2px color-mix(in srgb, var(--teal) 18%, transparent);}
.chip-main{min-width:0;display:grid;gap:4px;}
.chip-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.chip-title{font-size:.86rem;font-weight:800;color:var(--foreground);line-height:1.2;}
.chip-amount{display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:5px 10px;border-radius:10px;background:rgba(24,38,54,.8);border:1px solid color-mix(in srgb, var(--teal) 18%, var(--border));font-size:.8rem;font-weight:800;color:var(--foreground);}
.chip-subtitle{font-size:.78rem;color:var(--foreground-soft);line-height:1.45;}
.chip-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.chip-action{background:rgba(24,38,54,.82);border:1px solid var(--border-strong);cursor:pointer;font-size:.76rem;font-weight:800;line-height:1;padding:8px 11px;border-radius:10px;font-family:var(--font-body);white-space:nowrap;}
.chip-edit{color:var(--primary);}
.chip-edit:hover{border-color:color-mix(in srgb, var(--primary) 28%, var(--border));background:rgba(34,50,69,.96);}
.chip-del{color:var(--red);border-color:color-mix(in srgb, var(--red) 24%, var(--border));}
.chip-del:hover{background:rgba(79,43,47,.95);border-color:color-mix(in srgb, var(--red) 36%, var(--border));}
.btn-calc{margin-top:32px;background:linear-gradient(180deg, color-mix(in srgb, var(--primary) 92%, white) 0%, var(--primary) 100%);color:var(--primary-foreground);border:none;border-radius:18px;padding:16px 34px;font-size:1.04rem;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);box-shadow:0 18px 34px rgba(15,38,64,.18);}
#results{display:none;padding-top:6px;}
.result-card{padding:0;overflow:hidden;margin-bottom:24px;background:linear-gradient(180deg, rgba(31,46,64,.98) 0%, rgba(22,34,48,.99) 100%);}
.result-card-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:24px 28px;cursor:pointer;}
.result-card-summary::-webkit-details-marker{display:none;}
.result-card-summary-main{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0;}
.result-card-summary .card-title{margin:0;}
.result-balance-pill{display:inline-flex;align-items:center;min-height:38px;padding:8px 14px;border-radius:999px;background:linear-gradient(180deg, rgba(27,61,62,.96) 0%, rgba(33,49,67,.98) 100%);border:1px solid color-mix(in srgb, var(--teal) 18%, var(--border));box-shadow:inset 0 1px 0 rgba(255,255,255,.06);font-size:.8rem;font-weight:800;color:var(--foreground);white-space:nowrap;}
.result-card-chevron{width:12px;height:12px;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg);transition:transform .18s ease;margin-right:4px;}
.result-card[open] .result-card-chevron{transform:rotate(225deg);margin-top:6px;}
.result-card-body{padding:0 28px 28px;}
.recommend-box{background:radial-gradient(circle at top right, rgba(255,255,255,.16), transparent 28%), linear-gradient(135deg,var(--teal) 0%,#0f766e 100%);color:white;border-radius:24px;padding:28px 32px;margin-bottom:24px;box-shadow:0 26px 44px rgba(13,148,136,.18);}
.rec-label{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.75;margin-bottom:6px;}
.rec-plan{font-size:1.78rem;font-weight:800;margin-bottom:10px;}
.recommend-box p{font-size:1.02rem;opacity:.9;line-height:1.72;}
.rec-savings{margin-top:14px;background:rgba(255,255,255,.15);border-radius:14px;padding:12px 16px;font-size:.94rem;font-weight:700;}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
.plan-card{background:linear-gradient(180deg, rgba(38,54,73,.98) 0%, rgba(30,44,60,.98) 100%);border-radius:22px;border:1px solid color-mix(in srgb, var(--primary) 14%, var(--border));padding:22px;position:relative;box-shadow:var(--shadow-soft);overflow:hidden;}
.plan-card::before{content:"";position:absolute;inset:0 0 auto 0;height:72px;background:linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 100%);pointer-events:none;}
.plan-card>*{position:relative;z-index:1;}
.plan-card.winner{border-color:color-mix(in srgb, var(--green) 40%, transparent);padding-top:40px;}
.winner-badge{position:absolute;top:10px;left:16px;background:var(--green);color:white;font-size:.66rem;font-weight:700;padding:2px 10px;border-radius:99px;letter-spacing:.04em;max-width:calc(100% - 32px);}
.plan-color-bar{height:4px;border-radius:2px;margin-bottom:14px;}
.plan-name{font-size:.86rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;}
.plan-stat{margin-bottom:10px;}
.stat-label{font-size:.76rem;color:var(--foreground-muted);margin-bottom:4px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;}
.stat-val{font-size:1.22rem;font-weight:800;}
.stat-sub{font-size:.82rem;color:var(--foreground-soft);margin-top:4px;line-height:1.5;}
.plan-div{border:none;border-top:1px solid var(--border);margin:10px 0;}
.forgive-tag{background:var(--green-light);color:var(--green);font-size:.72rem;font-weight:600;padding:3px 9px;border-radius:6px;display:inline-block;margin-top:3px;}
.neg-am-tag{background:var(--red-light);color:var(--red);font-size:.7rem;font-weight:600;padding:3px 9px;border-radius:6px;display:inline-block;margin-top:5px;}
.no-forgive{font-size:.82rem;color:var(--foreground-muted);}
.td-b{font-weight:700;color:var(--foreground);}
.tag-low{background:var(--green-light);color:var(--green);padding:1px 7px;border-radius:99px;font-size:.67rem;font-weight:700;margin-left:4px;}
.tag-high{background:var(--red-light);color:var(--red);padding:1px 7px;border-radius:99px;font-size:.67rem;font-weight:700;margin-left:4px;}
.tag-forg{background:var(--teal-light);color:var(--teal);padding:1px 7px;border-radius:99px;font-size:.67rem;font-weight:700;margin-left:4px;}
.schedule-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;padding:4px;border-radius:999px;background:rgba(23,37,52,.82);border:1px solid var(--border);width:max-content;max-width:100%;}
.schedule-help-text{margin:-2px 0 12px;font-size:.8rem;color:var(--foreground-muted);}
.tab-btn{padding:7px 14px;border-radius:999px;border:1.5px solid transparent;background:transparent;font-size:.79rem;font-weight:700;cursor:pointer;color:var(--gray-500);transition:all .15s;font-family:var(--font-body);}
.tab-btn.active{color:white;border-color:transparent;}
.sched-wrap{overflow:auto;max-height:440px;}
.sched-wrap table{min-width:780px;}
.sched-wrap thead{position:sticky;top:0;z-index:1;}
.schedule-year-row{cursor:pointer;transition:transform .12s ease, box-shadow .12s ease;}
.schedule-year-row:focus-visible{outline:2px solid var(--teal);outline-offset:-2px;}
.schedule-year-row:hover td{background:rgba(33,72,71,.96) !important;}
.schedule-year-row.is-expanded td{background:rgba(39,84,82,.96) !important;}
.row-extra td{background:rgba(81,67,32,.6);}
.row-neg td{background:var(--red-light);}
.schedule-month-detail-row td{padding:0;border-bottom:1px solid rgba(90,111,138,.28);}
.schedule-month-detail{padding:14px 16px 18px;background:linear-gradient(180deg, rgba(28,59,58,.96) 0%, rgba(31,45,62,.98) 100%);}
.schedule-month-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.schedule-month-detail-header strong{font-size:.86rem;color:var(--foreground);}
.schedule-month-detail-header span{font-size:.78rem;color:var(--foreground-muted);}
.schedule-month-allocation-summary{margin-bottom:12px;padding:10px 12px;border-radius:14px;background:rgba(23,37,52,.7);border:1px solid color-mix(in srgb, var(--primary) 12%, var(--border));font-size:.8rem;line-height:1.6;color:var(--foreground-soft);}
.schedule-month-detail-table-wrap{overflow:auto;border:1px solid color-mix(in srgb, var(--primary) 14%, var(--border));border-radius:16px;background:rgba(23,37,52,.74);}
.schedule-month-detail-table{min-width:1040px;width:100%;border-collapse:collapse;}
.schedule-month-detail-table th{background:rgba(26,39,55,.95);}
.schedule-month-detail-table td,.schedule-month-detail-table th{padding:8px 10px;border-bottom:1px solid rgba(90,111,138,.28);white-space:nowrap;}
.schedule-month-detail-table tbody tr:nth-child(odd) td{background:rgba(37,52,71,.9);}
.schedule-month-detail-table tbody tr:nth-child(even) td{background:rgba(30,44,60,.85);}
.schedule-month-detail-table tbody tr:last-child td{border-bottom:none;}
.month-row-extra td{background:rgba(81,67,32,.6) !important;}
.month-row-neg td{background:var(--red-light) !important;}
.guidance-box{background:radial-gradient(circle at top right, rgba(153,246,228,.14), transparent 30%), linear-gradient(135deg, var(--navy-dark) 0%, #17314e 100%);color:white;border-radius:28px;padding:30px;margin-top:28px;box-shadow:0 24px 46px rgba(15,38,64,.16);border:1px solid color-mix(in srgb, var(--teal) 16%, var(--border));}
.guidance-box h3{font-size:.88rem;font-weight:700;margin-bottom:16px;opacity:.6;text-transform:uppercase;letter-spacing:.07em;}
.guidance-list{display:grid;gap:14px;}
.guidance-item{display:flex;gap:12px;align-items:flex-start;}
.g-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px;}
.g-text strong{display:block;font-size:.96rem;margin-bottom:3px;}
.g-text p{font-size:.92rem;opacity:.78;line-height:1.62;}
@media(max-width:960px){.plan-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:768px){.input-grid{grid-template-columns:1fr 1fr;}.ep-row{flex-direction:column;align-items:flex-start;}.loan-summary{grid-template-columns:1fr;}.loan-row-grid{grid-template-columns:1fr 1fr;}.loan-row-meta{grid-template-columns:1fr 1fr;}.counter-plan-head,.counter-plan-meta,.loan-row-progress-summary{align-items:flex-start;flex-direction:column;}.calc-section{padding:0 16px 8px;border-radius:22px;}.calc-section-header{grid-template-columns:1fr auto;}.calc-section-heading{grid-column:1 / 2;}.calc-section-summary{grid-column:1 / 2;}.loan-panel.active,.calc-mode-wrap,#basicLoanPanel .input-grid,.card>.input-grid[style],#growthPanel,#customPanel,.result-card-body,.result-card-summary{padding:18px;}.result-card-summary{align-items:flex-start;}.result-balance-pill{font-size:.76rem;white-space:normal;}}
@media(max-width:560px){.plan-grid{grid-template-columns:1fr;}}
@media(max-width:480px){.input-grid{grid-template-columns:1fr;}.page-header h1{font-size:1.4rem;}.loan-row-grid{grid-template-columns:1fr;}.card{padding:22px 18px;border-radius:28px;}.calc-section{padding:0 12px 8px;border-radius:20px;}.btn-calc{width:100%;justify-content:center;}.schedule-tabs{width:100%;border-radius:18px;}}
