:root {
    --calc-navy: #062f55;
    --calc-blue: #0f5ea8;
    --calc-orange: #ff7900;
    --calc-bg: #f5f7fa;
    --calc-border: #dce3ea;
    --calc-muted: #5d6b78;
    --calc-radius: 12px;
    --calc-shadow: 0 8px 28px rgba(6, 47, 85, .08);
}
.calc-page { background: var(--calc-bg); padding: 36px 0 64px; }
.calc-layout { align-items: flex-start; }
.calc-main { min-width: 0; }
.calc-card { background: #fff; border: 1px solid var(--calc-border); border-radius: var(--calc-radius); box-shadow: var(--calc-shadow); margin-bottom: 24px; padding: 26px; }
.calc-card h1, .calc-card h2, .calc-card h3 { color: var(--calc-navy); }
.calc-card h1 { font-size: clamp(1.75rem, 3vw, 2.35rem); line-height: 1.2; margin-bottom: 10px; }
.calc-lead { color: #384653; font-size: 1rem; line-height: 1.75; margin-bottom: 0; }
.calc-form { background: #f8fafc; border: 1px solid var(--calc-border); border-radius: 10px; margin-top: 22px; padding: 22px; }
.calc-form .form-control { min-height: 48px; border-radius: 7px; }
.calc-form .btn-primary { background: var(--calc-orange); border-color: var(--calc-orange); border-radius: 8px; font-weight: 600; min-height: 48px; width: 100%; }
.calc-result-hero { background: linear-gradient(135deg, var(--calc-navy), var(--calc-blue)); border-radius: 10px; color: #fff; margin-bottom: 20px; padding: 22px; }
.calc-result-hero__label { display: block; font-size: .85rem; opacity: .82; text-transform: uppercase; letter-spacing: .06em; }
.calc-result-hero__value { display: block; font-size: clamp(1.75rem, 4vw, 2.7rem); font-weight: 700; line-height: 1.25; margin-top: 6px; overflow-wrap: anywhere; }
.calc-data-grid { display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--calc-border); border: 1px solid var(--calc-border); border-radius: 9px; overflow: hidden; }
.calc-data-item { background: #fff; padding: 15px 17px; }
.calc-data-item span { color: var(--calc-muted); display: block; font-size: .82rem; margin-bottom: 4px; }
.calc-data-item strong { color: #1d2833; font-size: 1rem; overflow-wrap: anywhere; }
.calc-share { align-items: center; border-top: 1px solid var(--calc-border); display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; padding-top: 17px; }
.calc-share__label { color: var(--calc-navy); font-weight: 600; margin-right: auto; }
.calc-share__button { background: var(--calc-blue); border: 0; border-radius: 6px; color: #fff; cursor: pointer; padding: 9px 14px; }
.calc-share__button--secondary { background: #e9f1f8; color: var(--calc-navy); }
.calc-share__status { color: #207744; font-size: .85rem; min-width: 48px; }
.calc-quick-nav { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.calc-quick-nav a { background: #eef5fb; border-radius: 999px; color: var(--calc-blue); display: inline-block; padding: 8px 13px; }
.calc-table { margin-bottom: 0; }
.calc-table th { color: var(--calc-navy); }
.calc-sidebar { position: sticky; top: 20px; }
.calc-sidebar-box { background: #fff; border: 1px solid var(--calc-border); border-radius: var(--calc-radius); margin-bottom: 20px; overflow: hidden; }
.calc-sidebar-box__title { background: var(--calc-navy); color: #fff; font-size: 1rem; margin: 0; padding: 13px 16px; }
.calc-sidebar-box__body { padding: 14px 16px; }
.calc-ad-slot { align-items: center; background: #f0f2f4; border: 1px dashed #b7c0c8; color: #7a858e; display: flex; justify-content: center; margin: 20px 0; text-transform: uppercase; font-size: .72rem; letter-spacing: .08em; }
.calc-ad-slot--rectangle { min-height: 250px; }
.calc-ad-slot--horizontal { min-height: 100px; }
.calc-note { background: #fff8ec; border-left: 4px solid var(--calc-orange); border-radius: 6px; padding: 15px 17px; }
.calc-related-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-related-grid a { border: 1px solid var(--calc-border); border-radius: 8px; color: var(--calc-navy); font-weight: 600; padding: 13px; }
@media (max-width: 991.98px) { .calc-sidebar { position: static; } }
@media (max-width: 575.98px) {
    .calc-page { padding-top: 20px; }
    .calc-card { padding: 19px; }
    .calc-data-grid, .calc-related-grid { grid-template-columns: 1fr; }
    .calc-share__label { flex-basis: 100%; }
    .calc-share__button { flex: 1; }
}

/* Infolity Design System v1 */
.calc-public-page header.main-header.sticky { position: relative; top: auto; left: auto; }
.calc-public-page main { min-height: 60vh; }
.calc-section-heading { align-items: flex-end; display: flex; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.calc-section-heading h2 { margin: 0; }
.calc-eyebrow { color: var(--calc-blue); display: block; font-size: .75rem; font-weight: 700; letter-spacing: .09em; margin-bottom: 4px; text-transform: uppercase; }
.calc-share__button { align-items: center; display: inline-flex; gap: 7px; justify-content: center; }
.calc-share__button--ghost { background: transparent; border: 1px solid var(--calc-border); color: var(--calc-navy); }
.calc-graph { background: #fff; border: 1px solid var(--calc-border); border-radius: 10px; overflow: hidden; padding: 10px; }
.calc-graph canvas { display: block; height: auto; max-width: 100%; width: 100%; }
.calc-graph__fallback { color: var(--calc-muted); margin: 10px 0 0; text-align: center; }
.calc-graph.is-rendered .calc-graph__fallback { display: none; }
.calc-faq { border: 1px solid var(--calc-border); border-radius: 10px; overflow: hidden; }
.calc-faq__item + .calc-faq__item { border-top: 1px solid var(--calc-border); }
.calc-faq__item h3 { font-size: 1rem; margin: 0; }
.calc-faq__question { align-items: center; background: #fff; border: 0; color: var(--calc-navy); cursor: pointer; display: flex; font-weight: 700; justify-content: space-between; padding: 17px 18px; text-align: left; width: 100%; }
.calc-faq__question i { color: var(--calc-blue); transition: transform .2s ease; }
.calc-faq__question[aria-expanded="true"] i { transform: rotate(180deg); }
.calc-faq__answer { background: #f8fafc; color: #384653; padding: 0 18px 17px; }
.calc-faq__answer p { margin: 0; }
.calc-card:target { box-shadow: 0 0 0 3px rgba(15,94,168,.13), var(--calc-shadow); }
@media print {
    header.main-header, .sub-header, .calc-sidebar, .calc-ad-slot, .calc-share, footer.main-footer, #toTop { display: none !important; }
    .calc-page { background: #fff; padding: 0; }
    .calc-main { flex: 0 0 100%; max-width: 100%; }
    .calc-card { box-shadow: none; break-inside: avoid; }
}
@media (max-width: 767.98px) {
    .calc-share__button { flex: 1 1 calc(50% - 9px); }
    .calc-section-heading { align-items: flex-start; flex-direction: column; }
}

/* Phase 17A - Premium calculator experience */
.calc-reading-progress{position:fixed;left:0;top:0;width:100%;height:3px;z-index:9999;pointer-events:none;background:transparent}.calc-reading-progress__bar{display:block;height:100%;width:0;background:var(--calc-orange);transition:width .08s linear}.calc-toast-region{position:fixed;right:20px;bottom:20px;z-index:10000;display:grid;gap:10px;pointer-events:none}.calc-toast{background:#102f4c;color:#fff;border-radius:9px;box-shadow:0 12px 35px rgba(0,0,0,.22);padding:12px 16px;opacity:0;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease;max-width:320px}.calc-toast.is-visible{opacity:1;transform:none}
.calc-result-badges{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 18px}.calc-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700;background:#edf6ef;color:#176b35}.calc-badge--info{background:#edf5fc;color:#0b5a99}.calc-badge--approx{background:#fff4e5;color:#9b5700}
.calc-share{align-items:flex-start}.calc-share__actions{display:flex;flex-wrap:wrap;gap:9px}.calc-share__button{min-height:40px;font-weight:600}.calc-share__button:focus-visible,.calc-faq__question:focus-visible,.calc-quick-nav a:focus-visible{outline:3px solid rgba(255,121,0,.35);outline-offset:2px}
.calc-faq-card .calc-section-heading{margin-bottom:18px}.calc-faq{display:block!important;border:1px solid var(--calc-border)!important;border-radius:10px!important;overflow:hidden!important;background:#fff!important}.calc-faq__item{display:block!important;margin:0!important;padding:0!important;background:#fff!important}.calc-faq__item+.calc-faq__item{border-top:1px solid var(--calc-border)!important}.calc-faq__heading{display:block!important;margin:0!important;padding:0!important;font-size:1rem!important}.calc-faq__question{-webkit-appearance:none!important;appearance:none!important;display:flex!important;width:100%!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;border:0!important;border-radius:0!important;background:#fff!important;color:var(--calc-navy)!important;padding:18px!important;text-align:left!important;font:inherit!important;font-weight:700!important;line-height:1.45!important;cursor:pointer!important;box-shadow:none!important}.calc-faq__question:hover{background:#f7fafc!important}.calc-faq__icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:#edf5fc;color:var(--calc-blue);font-size:1.25rem;line-height:1;transition:transform .2s ease,background .2s ease}.calc-faq__question[aria-expanded=true] .calc-faq__icon{transform:rotate(45deg);background:#fff1e5;color:#c75f00}.calc-faq__answer{display:block!important;background:#f8fafc!important;color:#384653!important;padding:0!important}.calc-faq__answer[hidden]{display:none!important}.calc-faq__answer-inner{padding:0 18px 18px}.calc-faq__answer p{margin:0!important;line-height:1.7}
.calc-graph{position:relative;min-height:320px;background:linear-gradient(180deg,#fff,#f9fbfd);display:flex;align-items:center;justify-content:center}.calc-graph canvas{display:block!important;width:100%!important;height:320px!important;max-width:100%;background:#fff;border-radius:8px}.calc-graph__fallback{margin:0;padding:24px;text-align:center}.calc-graph.is-rendered{min-height:0}
.calc-sticky-nav{position:sticky;top:10px;z-index:20}.calc-quick-nav a.is-active{background:var(--calc-blue);color:#fff}.calc-card[id]{scroll-margin-top:20px}
.calc-floating-actions{position:fixed;right:22px;bottom:22px;z-index:1000;display:none;gap:8px}.calc-floating-actions.is-visible{display:flex}.calc-floating-actions button{border:0;border-radius:999px;box-shadow:0 10px 30px rgba(6,47,85,.22);padding:11px 17px;font-weight:700}.calc-floating-actions__primary{background:var(--calc-orange);color:#fff}.calc-floating-actions__secondary{background:#fff;color:var(--calc-navy)}
.calc-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.calc-metric{border:1px solid var(--calc-border);border-radius:10px;padding:15px;background:#fff}.calc-metric span{display:block;color:var(--calc-muted);font-size:.8rem}.calc-metric strong{display:block;color:var(--calc-navy);font-size:1.35rem;margin-top:4px}.calc-assumptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calc-assumption{background:#f8fafc;border-radius:8px;padding:12px}.calc-assumption span{display:block;color:var(--calc-muted);font-size:.78rem}.calc-assumption strong{display:block;color:var(--calc-navy);margin-top:3px}.calc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.calc-form-grid .form-group{margin:0}.calc-form-grid .calc-form-actions{grid-column:1/-1}.calc-table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.calc-table-scroll{max-height:620px;overflow:auto;border:1px solid var(--calc-border);border-radius:9px}.calc-table-scroll table{margin:0}.calc-table-scroll thead th{position:sticky;top:0;background:#eaf6f8;z-index:1}.calc-disclaimer{font-size:.88rem;color:var(--calc-muted);line-height:1.6}.calc-public-page .contact-box{background:#fff;border:1px solid var(--calc-border);border-radius:var(--calc-radius);box-shadow:var(--calc-shadow)}
@media(max-width:767.98px){.calc-toast-region{left:14px;right:14px;bottom:14px}.calc-toast{max-width:none}.calc-share__actions{width:100%}.calc-share__button{flex:1 1 calc(50% - 9px)}.calc-form-grid,.calc-metric-grid,.calc-assumptions{grid-template-columns:1fr}.calc-floating-actions{right:14px;bottom:14px}.calc-graph,.calc-graph canvas{min-height:240px;height:240px!important}}

/* Phase 18 - Universal legacy calculator migration */
.calc-legacy-migrated .order{background:var(--calc-bg);padding:34px 0 64px}
.calc-legacy-migrated .order>.container>.row,.calc-legacy-migrated .calc-layout{align-items:flex-start}
.calc-legacy-migrated .calc-main>.row.contact-box,.calc-legacy-migrated .calc-main>.contact-box{margin-left:0;margin-right:0;margin-bottom:22px;width:100%}
.calc-legacy-migrated .calc-card{overflow:hidden}
.calc-legacy-migrated .calc-card__header{padding:0;margin:0 0 18px}
.calc-legacy-migrated .calc-card__header .title h1,.calc-legacy-migrated .calc-card h1{font-size:2rem;line-height:1.22;color:var(--calc-navy);margin-bottom:14px}
.calc-legacy-migrated .calc-card__header .desc{color:var(--calc-muted);font-size:1rem;line-height:1.65}
.calc-legacy-migrated .calc-form{background:#f7f9fb;border:1px solid var(--calc-border);border-radius:10px;padding:22px;margin-top:16px}
.calc-legacy-migrated .calc-form .form-group{align-items:center;margin-bottom:15px}
.calc-legacy-migrated .calc-form label{color:var(--calc-navy);font-weight:700}
.calc-legacy-migrated .calc-form .form-control{min-height:46px;border-color:#cfd9e3;border-radius:7px}
.calc-legacy-migrated .calc-form textarea.form-control{min-height:112px}
.calc-legacy-migrated .calc-form .btn-primary,.calc-legacy-migrated .calc-submit{background:var(--calc-orange)!important;border-color:var(--calc-orange)!important;border-radius:9px;width:100%;font-weight:700;text-transform:uppercase}
.calc-legacy-migrated .calcResult{text-align:left!important}
.calc-legacy-migrated .calcResult>h3{color:var(--calc-navy);font-size:1.7rem;margin:0 0 14px}
.calc-legacy-migrated .calc-result-hero--legacy{margin-bottom:14px}
.calc-legacy-migrated .calcResult table{border:1px solid var(--calc-border);border-radius:8px;overflow:hidden}
.calc-legacy-migrated .calcResult table td,.calc-legacy-migrated .calcResult table th{vertical-align:middle}
.calc-legacy-migrated .copyres{width:44px;text-align:center}
.calc-legacy-migrated .calc-table-responsive{border-radius:9px;overflow-x:auto}
.calc-legacy-migrated .calc-legacy-sidebar{padding-left:20px}
.calc-legacy-migrated .calc-legacy-sidebar .calc-sidebar{position:sticky;top:20px}
.calc-legacy-migrated .calc-legacy-sidebar .contact-box,.calc-legacy-migrated .calc-legacy-sidebar .widget{background:#fff;border:1px solid var(--calc-border);border-radius:var(--calc-radius);box-shadow:var(--calc-shadow);overflow:hidden}
.calc-legacy-migrated .calc-auto-toc{margin-top:0}
.calc-legacy-migrated .error-text{color:#b42318;margin-top:6px}
@media(max-width:991.98px){.calc-legacy-migrated .calc-legacy-sidebar{padding-left:12px;margin-top:20px}.calc-legacy-migrated .calc-legacy-sidebar .calc-sidebar{position:static}}
@media(max-width:575.98px){.calc-legacy-migrated .order{padding-top:20px}.calc-legacy-migrated .calc-card__header .title h1,.calc-legacy-migrated .calc-card h1{font-size:1.65rem}.calc-legacy-migrated .calc-form{padding:16px}.calc-legacy-migrated .calc-share__actions{display:grid;grid-template-columns:1fr 1fr}.calc-legacy-migrated .calc-share__button{width:100%}}

/* Phase 29: production polish for generic Tool Pages */
.calculator-input-help{display:block;margin-top:.45rem;color:#617187;font-size:.82rem;line-height:1.45}.calculator-submit-button{width:100%;border-radius:10px}.calculator-results-panel h2{margin-bottom:.65rem}.primary-result-card{background:linear-gradient(135deg,#0b3f70,#1766ad);color:#fff;border-radius:10px;padding:1.15rem 1.25rem;box-shadow:0 8px 24px rgba(3,45,82,.15)}.primary-result-label{display:block;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;opacity:.82}.primary-result-card>strong{display:block;font-size:2rem;line-height:1.2;overflow-wrap:anywhere;margin:.25rem 0 .7rem}.primary-result-actions{display:flex;gap:.5rem}.result-copy-button,.formula-copy-button{border:1px solid rgba(255,255,255,.55);background:transparent;color:inherit;border-radius:6px;padding:.34rem .7rem;font-size:.78rem;cursor:pointer}.result-format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:.65rem 0}.result-format-grid>div{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.7rem}.result-format-grid span{display:block;color:#66758a;font-size:.75rem}.result-format-grid strong{display:block;margin-top:.15rem;overflow-wrap:anywhere}.polished-results-table{margin-top:.65rem}.formula-display{position:relative;display:flex;align-items:center;justify-content:center;gap:.65rem;background:#fff;border:1px solid #e1e8f0;border-radius:10px;padding:1rem 3.8rem 1rem 1rem;font-size:1.25rem;font-weight:700;min-height:72px}.formula-copy-button{position:absolute;right:.75rem;top:.75rem;color:#123c63;border-color:#b7c5d5}.formula-fraction{display:inline-flex;flex-direction:column;text-align:center;min-width:110px}.formula-numerator{border-bottom:2px solid #163b61;padding:0 .55rem .25rem}.formula-denominator{padding:.25rem .55rem 0}.formula-explanation{margin-top:.75rem}.worked-example-card{background:#fff;border:1px solid #e1e8f0;border-radius:10px;padding:1rem}.worked-example-inputs{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;padding-bottom:.85rem;border-bottom:1px solid #edf1f5}.worked-example-kicker{width:100%;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:#65758a}.worked-example-input{display:inline-flex;gap:.35rem;background:#eef4fa;border-radius:999px;padding:.38rem .72rem}.worked-example-timeline{list-style:none;padding:0;margin:1rem 0}.worked-example-timeline li{display:flex;gap:.75rem;position:relative;padding-bottom:1rem}.worked-example-timeline li:not(:last-child):before{content:"";position:absolute;left:15px;top:30px;bottom:0;width:2px;background:#dce7f2}.worked-example-step-number{position:relative;z-index:1;flex:0 0 30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#0e4d85;color:#fff;font-weight:700}.worked-example-step-body{min-width:0}.worked-example-equation{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-top:.25rem}.worked-example-equation code{overflow-wrap:anywhere}.worked-example-result{display:flex;justify-content:space-between;align-items:center;background:#edf6ff;border-left:4px solid #0e5b9d;border-radius:6px;padding:.8rem 1rem}.worked-example-result strong{font-size:1.15rem}.restriction-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.restriction-card{display:flex;gap:.7rem;background:#fff;border:1px solid #e1e8f0;border-radius:9px;padding:.9rem}.restriction-icon{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e9f7ee;color:#18733c;font-weight:700}.restriction-card h3{font-size:1rem;margin:.2rem 0 .3rem}.restriction-card p{margin:0;color:#526176}.restriction-expression{display:inline-block;color:#8a2b3a;background:#fff1f3;padding:.15rem .4rem;border-radius:4px}@media(max-width:767px){.result-format-grid{grid-template-columns:1fr}.formula-display{font-size:1rem;padding-right:3.3rem}.primary-result-card>strong{font-size:1.55rem}.worked-example-result{align-items:flex-start;gap:.5rem}.restriction-grid{grid-template-columns:1fr}}
