:root {
  --ann-green: #0a8f5a;
  --ann-green-dark: #066c45;
  --ann-green-soft: #eaf8f1;
  --ann-orange: #f47b20;
  --ann-orange-dark: #a94d0b;
  --ann-orange-soft: #fff3e9;
  --ann-blue: #2473c8;
  --ann-blue-soft: #eef6ff;
  --ann-ink: #14221c;
  --ann-muted: #617068;
  --ann-line: #dce6e1;
  --ann-surface: #ffffff;
  --ann-page: #f7faf8;
}

.income-annualizer-page { background: var(--ann-page); color: var(--ann-ink); }
.annualizer-skip { position:absolute; left:-9999px; top:auto; }
.annualizer-skip:focus { left:16px; top:12px; z-index:9999; background:#fff; color:#111; padding:10px 14px; border-radius:8px; box-shadow:0 4px 18px rgba(0,0,0,.18); }
.annualizer-hero { position:relative; overflow:hidden; background:linear-gradient(125deg,#063f2d 0%,#08724a 54%,#0b8f5b 100%); color:#fff; padding:74px 24px 62px; }
.annualizer-hero::before { content:""; position:absolute; width:360px; height:360px; right:-110px; top:-160px; border-radius:50%; background:rgba(244,123,32,.22); }
.annualizer-hero::after { content:""; position:absolute; width:230px; height:230px; right:15%; bottom:-145px; border-radius:50%; background:rgba(255,255,255,.08); }
.annualizer-hero-inner { position:relative; z-index:1; max-width:1160px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr); gap:46px; align-items:center; }
.annualizer-kicker { display:inline-flex; align-items:center; gap:8px; text-transform:uppercase; letter-spacing:.1em; font-size:.77rem; font-weight:800; color:#ffe0c8; }
.annualizer-kicker::before { content:""; width:28px; height:3px; border-radius:9px; background:var(--ann-orange); }
.annualizer-hero h1 { font-family:"Bricolage Grotesque",sans-serif; font-size:clamp(2.45rem,5vw,4.45rem); line-height:.98; letter-spacing:-.045em; margin:15px 0 18px; max-width:760px; }
.annualizer-hero-copy { font-size:1.13rem; line-height:1.75; color:rgba(255,255,255,.9); max-width:760px; margin:0; }
.annualizer-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; }
.annualizer-btn { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 18px; border-radius:12px; font-weight:800; text-decoration:none; border:1px solid transparent; cursor:pointer; font:inherit; }
.annualizer-btn-primary { background:var(--ann-orange); color:#fff; box-shadow:0 10px 24px rgba(71,31,3,.25); }
.annualizer-btn-primary:hover { background:#dd6714; transform:translateY(-1px); }
.annualizer-btn-secondary { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.28); }
.annualizer-btn-secondary:hover { background:rgba(255,255,255,.18); }
.annualizer-privacy-inline { display:flex; gap:9px; align-items:center; margin-top:20px; font-size:.92rem; color:rgba(255,255,255,.82); }
.annualizer-privacy-inline svg { flex:0 0 auto; }
.annualizer-example { background:#fff; color:var(--ann-ink); border:1px solid rgba(255,255,255,.5); border-radius:22px; padding:24px; box-shadow:0 24px 60px rgba(1,38,26,.3); }
.annualizer-example-label { font-size:.77rem; text-transform:uppercase; letter-spacing:.09em; font-weight:800; color:var(--ann-orange-dark); }
.annualizer-example h2 { margin:8px 0 19px; font-size:1.2rem; }
.annualizer-example-row { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--ann-line); color:var(--ann-muted); }
.annualizer-example-row strong { color:var(--ann-ink); text-align:right; }
.annualizer-example-total { background:var(--ann-orange-soft); border-left:4px solid var(--ann-orange); margin:17px -5px 0; padding:16px 18px; border-radius:11px; }
.annualizer-example-total span { display:block; color:var(--ann-orange-dark); font-weight:700; font-size:.85rem; }
.annualizer-example-total strong { display:block; font-size:1.65rem; margin-top:4px; font-family:"Bricolage Grotesque",sans-serif; }
.annualizer-shell { max-width:1160px; margin:0 auto; padding:42px 24px 76px; }
.annualizer-tool-layout { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(330px,.96fr); gap:24px; align-items:start; }
.annualizer-panel { background:var(--ann-surface); border:1px solid var(--ann-line); border-radius:20px; box-shadow:0 10px 30px rgba(20,58,42,.06); overflow:hidden; }
.annualizer-panel-head { padding:25px 28px 20px; border-bottom:1px solid var(--ann-line); background:linear-gradient(90deg,#fff 0%,#fff9f4 100%); }
.annualizer-panel-head h2 { font-family:"Bricolage Grotesque",sans-serif; margin:4px 0 7px; font-size:1.75rem; letter-spacing:-.025em; }
.annualizer-panel-head p { margin:0; color:var(--ann-muted); line-height:1.6; }
.annualizer-form { padding:26px 28px 30px; }
.annualizer-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.annualizer-field { display:block; font-weight:750; color:#23382f; }
.annualizer-field small { display:block; font-weight:500; color:var(--ann-muted); margin:6px 0 0; line-height:1.45; }
.annualizer-field input[type="number"], .annualizer-field select { width:100%; min-height:48px; margin-top:8px; border:1px solid #cfdcd6; border-radius:11px; padding:10px 12px; background:#fff; color:var(--ann-ink); font:inherit; font-size:16px; }
.annualizer-field input:focus, .annualizer-field select:focus { outline:3px solid rgba(36,115,200,.17); border-color:var(--ann-blue); }
.annualizer-section-label { margin:24px 0 10px; font-weight:800; font-size:.9rem; color:#2d4439; }
.annualizer-frequency-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.annualizer-frequency-card { position:relative; display:block; cursor:pointer; }
.annualizer-frequency-card input { position:absolute; opacity:0; pointer-events:none; }
.annualizer-frequency-card span { display:block; min-height:82px; border:1px solid #d4e0da; border-radius:13px; padding:13px 11px; background:#fff; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease; }
.annualizer-frequency-card strong { display:block; font-size:.95rem; }
.annualizer-frequency-card em { display:block; margin-top:5px; font-style:normal; font-size:.78rem; color:var(--ann-muted); }
.annualizer-frequency-card:hover span { transform:translateY(-2px); border-color:#b8d4c6; box-shadow:0 8px 18px rgba(20,58,42,.08); }
.annualizer-frequency-card input:checked + span { border:2px solid var(--ann-green); background:var(--ann-green-soft); box-shadow:0 6px 18px rgba(10,143,90,.12); }
.annualizer-frequency-card input:focus-visible + span { outline:3px solid rgba(36,115,200,.2); outline-offset:2px; }
.annualizer-custom { margin-top:12px; padding:14px; background:var(--ann-blue-soft); border-radius:12px; border:1px solid #cfe3f8; }
.annualizer-regularity { display:grid; gap:9px; }
.annualizer-radio { display:flex; gap:10px; align-items:flex-start; border:1px solid #d8e2dd; border-radius:11px; padding:12px 13px; cursor:pointer; }
.annualizer-radio:hover { background:#fafcfb; }
.annualizer-radio input { margin-top:4px; accent-color:var(--ann-green); }
.annualizer-radio strong { display:block; font-size:.92rem; }
.annualizer-radio small { display:block; margin-top:3px; color:var(--ann-muted); line-height:1.4; }
.annualizer-form-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:24px; }
.annualizer-submit { border:0; background:var(--ann-green); color:#fff; padding:13px 19px; min-height:48px; border-radius:12px; font-weight:800; cursor:pointer; font:inherit; box-shadow:0 8px 20px rgba(10,143,90,.2); }
.annualizer-submit:hover { background:var(--ann-green-dark); transform:translateY(-1px); }
.annualizer-reset { border:0; background:transparent; color:#52655b; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:10px 6px; }
.annualizer-error { margin:0 28px 28px; padding:13px 15px; border-radius:11px; border:1px solid #eab1a9; background:#fff1ef; color:#8a2d22; font-weight:650; }
.annualizer-results { border-color:#b9d9c8; }
.annualizer-results-head { padding:25px 28px 22px; background:linear-gradient(125deg,#eefaf4 0%,#fff6ee 100%); border-bottom:1px solid var(--ann-line); }
.annualizer-results-head span { display:block; color:var(--ann-green-dark); font-size:.79rem; text-transform:uppercase; letter-spacing:.08em; font-weight:850; }
.annualizer-results-head h2 { font-family:"Bricolage Grotesque",sans-serif; font-size:1.8rem; margin:5px 0 0; }
.annualizer-primary-result { padding:28px; }
.annualizer-primary-result .label { display:block; color:var(--ann-muted); font-weight:700; }
.annualizer-primary-result .value { display:block; font-family:"Bricolage Grotesque",sans-serif; font-size:clamp(2.4rem,5vw,3.55rem); letter-spacing:-.045em; line-height:1; color:var(--ann-green-dark); margin:8px 0 10px; overflow-wrap:anywhere; }
.annualizer-primary-result .definition { margin:0; color:var(--ann-muted); line-height:1.55; }
.annualizer-metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 28px 24px; }
.annualizer-metric { border:1px solid var(--ann-line); background:#fbfdfc; border-radius:13px; padding:15px; }
.annualizer-metric span { display:block; color:var(--ann-muted); font-size:.8rem; font-weight:700; }
.annualizer-metric strong { display:block; font-size:1.12rem; margin-top:4px; }
.annualizer-trace { margin:0 28px 22px; padding:16px; border-radius:13px; background:var(--ann-orange-soft); border-left:4px solid var(--ann-orange); }
.annualizer-trace strong { display:block; margin-bottom:6px; color:var(--ann-orange-dark); }
.annualizer-trace code { display:block; font-family:"JetBrains Mono",monospace; font-size:.84rem; white-space:normal; overflow-wrap:anywhere; }
.annualizer-result-note { margin:0 28px 22px; padding:15px 16px; border-radius:13px; }
.annualizer-result-note strong { display:block; margin-bottom:5px; }
.annualizer-result-note p { margin:0; line-height:1.5; font-size:.91rem; }
.annualizer-result-note.is-green { background:var(--ann-green-soft); color:#145c3d; }
.annualizer-result-note.is-orange { background:var(--ann-orange-soft); color:#7c3b0b; }
.annualizer-result-note.is-blue { background:var(--ann-blue-soft); color:#18558f; }
.annualizer-result-context { margin:0 28px 24px; border-top:1px solid var(--ann-line); padding-top:18px; display:grid; gap:8px; font-size:.9rem; color:var(--ann-muted); }
.annualizer-result-context div { display:flex; justify-content:space-between; gap:18px; }
.annualizer-result-context strong { color:var(--ann-ink); text-align:right; }
.annualizer-result-actions { padding:0 28px 28px; display:flex; gap:10px; flex-wrap:wrap; }
.annualizer-print { border:1px solid #cddad3; background:#fff; color:#2a4035; border-radius:10px; min-height:42px; padding:9px 13px; font-weight:750; cursor:pointer; }
.annualizer-print:hover { background:#f5f8f6; }
.annualizer-side-placeholder { padding:28px; }
.annualizer-side-placeholder h2 { font-family:"Bricolage Grotesque",sans-serif; margin:0 0 12px; font-size:1.55rem; }
.annualizer-side-placeholder p { color:var(--ann-muted); line-height:1.65; }
.annualizer-side-placeholder ul { margin:18px 0 0; padding:0; list-style:none; display:grid; gap:12px; }
.annualizer-side-placeholder li { display:grid; grid-template-columns:28px 1fr; gap:10px; color:#31473d; line-height:1.5; }
.annualizer-side-placeholder li span { width:26px; height:26px; display:grid; place-items:center; border-radius:50%; font-weight:850; font-size:.78rem; background:var(--ann-blue-soft); color:var(--ann-blue); }
.annualizer-trust-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:24px 0 52px; }
.annualizer-trust-strip div { background:#fff; border:1px solid var(--ann-line); border-radius:14px; padding:15px 16px; }
.annualizer-trust-strip strong { display:block; font-size:.91rem; }
.annualizer-trust-strip span { display:block; color:var(--ann-muted); font-size:.82rem; margin-top:4px; line-height:1.45; }
.annualizer-content { display:grid; gap:52px; }
.annualizer-section-head { max-width:790px; }
.annualizer-section-head h2 { font-family:"Bricolage Grotesque",sans-serif; font-size:clamp(1.8rem,3vw,2.55rem); letter-spacing:-.035em; margin:7px 0 12px; }
.annualizer-section-head p { color:var(--ann-muted); line-height:1.75; margin:0; }
.annualizer-content-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:20px; }
.annualizer-content-card { background:#fff; border:1px solid var(--ann-line); border-radius:16px; padding:21px; }
.annualizer-content-card:nth-child(2) { border-top:4px solid var(--ann-orange); }
.annualizer-content-card:nth-child(3) { border-top:4px solid var(--ann-blue); }
.annualizer-content-card:first-child { border-top:4px solid var(--ann-green); }
.annualizer-content-card h3 { margin:0 0 8px; font-size:1.08rem; }
.annualizer-content-card p { margin:0; color:var(--ann-muted); line-height:1.65; }
.annualizer-formula-block { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:22px; align-items:center; background:#fff; border:1px solid var(--ann-line); border-radius:20px; padding:28px; }
.annualizer-formula-visual { background:#102e24; color:#fff; border-radius:16px; padding:24px; font-family:"JetBrains Mono",monospace; }
.annualizer-formula-visual span { display:block; color:#a8cbbb; font-size:.8rem; margin-bottom:9px; }
.annualizer-formula-visual strong { font-size:1.12rem; line-height:1.6; }
.annualizer-formula-copy h2 { font-family:"Bricolage Grotesque",sans-serif; margin:0 0 10px; font-size:1.8rem; }
.annualizer-formula-copy p { color:var(--ann-muted); line-height:1.7; }
.annualizer-frequency-table { width:100%; border-collapse:collapse; margin-top:18px; background:#fff; border:1px solid var(--ann-line); border-radius:15px; overflow:hidden; }
.annualizer-frequency-table th,.annualizer-frequency-table td { padding:13px 15px; text-align:left; border-bottom:1px solid var(--ann-line); }
.annualizer-frequency-table th { background:#f2f7f4; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; color:#455b50; }
.annualizer-frequency-table tr:last-child td { border-bottom:0; }
.annualizer-caution { display:grid; grid-template-columns:58px 1fr; gap:18px; align-items:start; border-radius:18px; padding:24px; background:var(--ann-orange-soft); border:1px solid #ffd1ae; }
.annualizer-caution-icon { width:54px; height:54px; border-radius:15px; background:#fff; color:var(--ann-orange-dark); display:grid; place-items:center; font-size:1.5rem; font-weight:900; }
.annualizer-caution h2 { margin:0 0 8px; font-family:"Bricolage Grotesque",sans-serif; }
.annualizer-caution p { margin:0; color:#6d4b33; line-height:1.7; }
.annualizer-faq { display:grid; gap:10px; margin-top:18px; }
.annualizer-faq details { background:#fff; border:1px solid var(--ann-line); border-radius:13px; padding:0 17px; }
.annualizer-faq summary { cursor:pointer; font-weight:800; padding:16px 0; }
.annualizer-faq p { color:var(--ann-muted); line-height:1.7; margin:0 0 17px; }
.annualizer-related { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:24px; background:linear-gradient(120deg,#e9f8f0,#fff4e9); border:1px solid #cde4d8; border-radius:20px; padding:27px; }
.annualizer-related h2 { font-family:"Bricolage Grotesque",sans-serif; margin:0 0 8px; }
.annualizer-related p { color:var(--ann-muted); line-height:1.65; margin:0; }
.annualizer-related-links { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.annualizer-related-links a { background:#fff; border:1px solid #cfded7; border-radius:11px; padding:13px 14px; text-decoration:none; color:#21473a; font-weight:750; }
.annualizer-related-links a:hover { border-color:var(--ann-green); transform:translateY(-1px); }
@media (max-width:900px) {
  .annualizer-hero-inner,.annualizer-tool-layout,.annualizer-formula-block,.annualizer-related { grid-template-columns:1fr; }
  .annualizer-content-grid { grid-template-columns:1fr; }
  .annualizer-frequency-grid { grid-template-columns:1fr 1fr; }
  .annualizer-example { max-width:560px; }
}
@media (max-width:620px) {
  .annualizer-hero { padding:52px 18px 44px; }
  .annualizer-shell { padding:28px 16px 58px; }
  .annualizer-form,.annualizer-panel-head,.annualizer-results-head,.annualizer-primary-result { padding-left:20px; padding-right:20px; }
  .annualizer-grid-2,.annualizer-metrics,.annualizer-trust-strip,.annualizer-related-links { grid-template-columns:1fr; }
  .annualizer-metrics { padding-left:20px; padding-right:20px; }
  .annualizer-trace,.annualizer-result-note,.annualizer-result-context { margin-left:20px; margin-right:20px; }
  .annualizer-result-actions { padding-left:20px; padding-right:20px; }
  .annualizer-frequency-grid { grid-template-columns:1fr 1fr; }
  .annualizer-frequency-card span { min-height:76px; }
  .annualizer-caution { grid-template-columns:1fr; }
  .annualizer-frequency-table { font-size:.88rem; }
  .annualizer-frequency-table th,.annualizer-frequency-table td { padding:10px 9px; }
}
@media print {
  #main-nav,.ps-drawer,.app-tabbar,footer,.annualizer-hero,.annualizer-content,.annualizer-trust-strip,.annualizer-input-panel,.annualizer-side-placeholder,.annualizer-result-actions { display:none !important; }
  .annualizer-shell,.annualizer-tool-layout { display:block; max-width:none; padding:0; }
  .annualizer-results { box-shadow:none; border:1px solid #999; }
  body { background:#fff !important; }
}
