body.mg-modal-open { overflow:hidden; }
html.mg-modal-open { overflow:hidden; scrollbar-gutter:stable; }
.mg-button { display:inline-flex; justify-content:center; align-items:center; gap:22px; padding:13px 20px; min-height:46px; border:1px solid transparent; border-radius:999px; font:14px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; text-decoration:none; transition:background-color 150ms ease,transform 140ms ease-out; }
.mg-button:active { transform:scale(.98); }
.mg-primary { background:linear-gradient(#3b6ef3,#2f63ed); color:white; }
.mg-primary > span { font-size:19px; }
.mg-light { background:#fff; color:#20252f; }
.mg-wide { width:100%; }
.mg-button:focus-visible { outline:3px solid #6992f7; outline-offset:3px; }
.mg-calculator { color-scheme:light; --ink:#20252f; --muted:#647084; --line:#e3e7ee; --blue:#2f63ed; box-sizing:border-box; width:min(1050px,calc(100% - 64px)); max-width:none; max-height:none; height:min(850px,calc(100dvh - 48px)); padding:0; margin:auto; border:1px solid #e3e7ee; border-radius:15px; background:#fff; color:var(--ink); overflow:hidden; box-shadow:0 20px 80px #00000030; font:14px/1.5 Arial,Helvetica,sans-serif; }
.mg-calculator::backdrop { background:#151922b8; backdrop-filter:blur(5px); }
.mg-calculator *, .mg-calculator *::before, .mg-calculator *::after { box-sizing:border-box; }
.mg-calculator [hidden] { display:none!important; }
.mg-calculator :is(h2,h3,p,dl,dd) { margin:0; }
.mg-calculator :is(h2,h3,strong) { font-weight:400; }
.mg-calculator button,.mg-calculator input,.mg-calculator textarea { font-family:inherit; }
.mg-calculator :is(button,a,input,summary,textarea):focus-visible { outline:3px solid #6992f7; outline-offset:3px; }
.mg-calculator button { touch-action:manipulation; }
.mg-shell { height:100%; display:flex; flex-direction:column; }
.mg-header { flex-shrink:0; display:flex; align-items:center; gap:22px; padding:17px 30px; border-bottom:1px solid var(--line); }
.mg-header img { width:122px; height:auto; }
.mg-header > span { font-size:11px; color:var(--muted); padding-left:22px; border-left:1px solid var(--line); }
.mg-close { display:grid; place-items:center; margin-left:auto; width:37px; height:37px; padding:0 0 3px; font-size:27px; line-height:1; font-weight:400; color:#647084; background:white; border:1px solid var(--line); border-radius:50%; cursor:pointer; }
#mg-result-jump { display:none; background:none; border:0; margin-left:auto; padding:8px 0; color:var(--blue); font-size:11px; cursor:pointer; }
.mg-scroll { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:28px 34px 0; }
.mg-intro { margin-bottom:25px; }
.mg-intro h2 { font-size:32px; letter-spacing:-.04em; line-height:1.15; outline:none; }
.mg-calculator #mg-title:focus { outline:none; }
.mg-intro p { margin-top:9px; font-size:13px; color:var(--muted); }
.mg-mobile-only { display:none; }
.mg-layout { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:30px; align-items:start; }
.mg-form { min-width:0; }
.mg-tabs { display:flex; gap:5px; padding:5px; background:#eff2f7; border:1px solid #e6ebf2; border-radius:9px; margin-bottom:24px; }
.mg-tabs button { flex:1; display:flex; align-items:center; justify-content:center; gap:9px; min-height:41px; padding:10px; background:none; border:1px solid transparent; border-radius:6px; cursor:pointer; color:#647084; font-size:14px; }
.mg-tabs button span { font-size:10px; }
.mg-tabs button[aria-selected="true"] { background:#fff; color:#2857df; border-color:#dce5f8; box-shadow:0 1px 3px #17264208; }
.mg-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mg-panel-heading h3 { font-size:20px; letter-spacing:-.025em; }
.mg-reset { border:0; background:transparent; padding:6px 0 6px 8px; color:var(--muted); font-size:11px; cursor:pointer; }
.mg-calculator .mg-example { font-size:11px; color:var(--muted); margin:5px 0 20px; }
.mg-field { min-width:0; }
.mg-field label { display:block; font-size:12px; margin-bottom:7px; }
.mg-input-wrap { display:flex; align-items:center; gap:9px; padding:0 12px; min-height:46px; border:1px solid #dce2ec; border-radius:7px; background:#fff; }
.mg-input-wrap:focus-within { border-color:#2f63ed; box-shadow:0 0 0 2px #2f63ed12; }
.mg-input-wrap:has([aria-invalid="true"]) { border-color:#b53936; background:#fff9f8; }
.mg-input-wrap input { width:100%; min-width:0; padding:11px 0; border:0; outline:none!important; background:transparent; color:var(--ink); font-size:20px; line-height:1.2; font-variant-numeric:tabular-nums; }
.mg-input-wrap input::placeholder { color:#8792a3; font-size:13px; }
.mg-input-wrap > span { flex-shrink:0; color:var(--muted); font-size:11px; white-space:nowrap; }
.mg-field-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px; margin-top:17px; }
.mg-calculator .mg-error { color:#a82929; font-size:11px; margin-top:5px; }
.mg-disclosure { min-width:0; }
.mg-disclosure summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; }
.mg-disclosure summary::-webkit-details-marker { display:none; }
.mg-chevron { display:block; width:7px; height:7px; flex-shrink:0; border-bottom:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg); margin-right:3px; margin-top:-3px; }
.mg-disclosure[open] > summary .mg-chevron { transform:rotate(225deg); margin-top:3px; }
.mg-disclosure-body { font-size:12px; color:var(--muted); line-height:1.6; }
.mg-disclosure-body > p + p { margin-top:9px; }
.mg-disclosure-body strong { color:#344159; }
.mg-help { margin:12px 0 17px; border:1px solid var(--line); border-radius:7px; background:#fafbfe; }
.mg-help summary { padding:10px 12px; font-size:11px; color:#596780; }
.mg-help .mg-disclosure-body { padding:0 13px 13px; }
.mg-settings { border:1px solid #dce5f5; border-radius:8px; margin:0 0 20px; }
.mg-settings summary { padding:14px; background:#f3f6fc; color:#394e72; border-radius:8px; }
.mg-settings summary strong { display:block; font-size:13px; }
.mg-settings summary small { display:block; color:#647084; font-size:11px; margin-top:3px; }
.mg-settings[open] summary { border-radius:8px 8px 0 0; border-bottom:1px solid #e1e8f5; }
.mg-settings .mg-disclosure-body { padding:15px 14px; }
.mg-label-row { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.mg-label-row label { color:var(--ink); font-size:12px; line-height:1.5; }
.mg-small-input { width:92px; min-height:39px; flex-shrink:0; }
.mg-small-input input { text-align:right; padding:8px 0; font-size:18px; }
.mg-control-row { margin-top:17px; }
.mg-range { --mg-fill:60%; appearance:none; width:100%; height:28px; margin:12px 0 3px; background:transparent; border:0; padding:0; cursor:pointer; }
.mg-range::-webkit-slider-runnable-track { height:5px; border-radius:4px; background:linear-gradient(to right,#2f63ed var(--mg-fill),#e7ecf5 var(--mg-fill)); }
.mg-range::-webkit-slider-thumb { appearance:none; width:18px; height:18px; margin-top:-6.5px; border:5px solid #2f63ed; border-radius:50%; background:#fff; }
.mg-range::-moz-range-track { height:5px; border-radius:4px; background:#e7ecf5; }
.mg-range::-moz-range-progress { background:#2f63ed; height:5px; }
.mg-range::-moz-range-thumb { width:10px; height:10px; border:4px solid #2f63ed; border-radius:50%; background:white; }
.mg-hint { font-size:11px; line-height:1.55; color:var(--muted); }
.mg-period { margin:18px 0; padding:0; border:0; }
.mg-period legend { font-size:12px; margin-bottom:9px; padding:0; }
.mg-period > div { display:flex; gap:8px; }
.mg-period button { flex:1; padding:9px 6px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--muted); font-size:12px; cursor:pointer; }
.mg-period button[aria-pressed="true"] { color:#2857df; border-color:#9fb8f5; background:#edf3ff; }
.mg-results { position:sticky; top:0; padding:27px 25px 20px; border-radius:12px; background:#151922; color:#fff; min-width:0; }
.mg-result-eyebrow { font-size:10px; letter-spacing:.095em; color:#b0bed4; }
.mg-calculator .mg-big-number { font-size:49px; line-height:1.15; letter-spacing:-.06em; font-variant-numeric:tabular-nums; margin:17px 0 8px; overflow-wrap:anywhere; }
.mg-calculator .mg-payback-number { font-size:45px; }
.mg-calculator .mg-big-number.mg-long-value { font-size:28px; letter-spacing:-.035em; }
.mg-result-caption { color:#aebed6; font-size:12px; line-height:1.6; }
.mg-comparison { margin:27px 0 21px; }
.mg-bar-label { display:flex; justify-content:space-between; align-items:baseline; gap:12px; font-size:11px; color:#acbbd2; margin:15px 0 8px; }
.mg-bar-label strong { color:#e9eef7; white-space:nowrap; }
.mg-bar-track { background:#2a3243; height:8px; border-radius:3px; overflow:hidden; }
.mg-bar { display:block; height:100%; }
.mg-before-bar { background:#8f9eb7; }
.mg-after-bar { background:#497cfa; }
.mg-calculator .mg-time-foot { color:#aab8ce; font-size:11px; margin-top:21px; padding-top:17px; border-top:1px solid #303b50; }
.mg-copy { display:flex; align-items:center; justify-content:space-between; gap:15px; width:100%; border:0; border-top:1px solid #303b50; background:none; color:#dce6f7; margin-top:22px; padding:14px 0 0; font-size:12px; cursor:pointer; }
.mg-result-error { font-size:15px; padding:16px 0; line-height:1.6; }
.mg-result-error button { margin-top:20px; }
.mg-calculator .mg-budget-hint { color:#b9c7dd; font-size:12px; background:#26334c; border-radius:6px; padding:11px 12px; margin-top:15px; }
.mg-money-lines { margin-top:23px!important; }
.mg-money-lines > div { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:11px 0; }
.mg-money-lines dt { color:#b3c0d5; font-size:11px; }
.mg-money-lines dd { color:#f3f6fb; font-size:15px; text-align:right; font-variant-numeric:tabular-nums; max-width:53%; overflow-wrap:anywhere; flex-shrink:0; }
.mg-money-lines .mg-net-line { padding-top:13px; border-top:1px solid #303b50; margin-top:15px; }
.mg-net-line dt { color:#e6ecf7; }
.mg-net-line dd { color:#b6ccff; font-size:19px; }
.mg-period-result { background:#243149; border:1px solid #364868; padding:15px; border-radius:8px; margin-top:22px; }
.mg-period-result p { font-size:12px; color:#c4d3e9; }
.mg-period-result strong { display:block; margin-top:4px; color:#fff; font-size:29px; letter-spacing:-.04em; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.mg-period-result > span { display:block; color:#b4c4dc; font-size:10px; line-height:1.5; margin-top:6px; }
.mg-results [data-tone="positive"] { color:#84e4ae; }
.mg-results [data-tone="negative"] { color:#ffa1a1; }
.mg-results [data-tone="neutral"] { color:#f3f6fb; }
.mg-dark-disclosure { border:1px solid #364157; border-radius:6px; margin-top:13px; }
.mg-dark-disclosure summary { padding:10px 12px; font-size:11px; color:#d4e0f3; }
.mg-dark-disclosure .mg-disclosure-body { padding:0 12px 12px; color:#b4c4dc; }
.mg-dark-disclosure table { width:100%; border-collapse:collapse; font-size:11px; }
.mg-dark-disclosure caption { text-align:left; font-size:10px; color:#aabbd4; line-height:1.5; padding:0 0 12px; }
.mg-dark-disclosure th { text-align:left; font-weight:400; color:#aabbd4; }
.mg-dark-disclosure td, .mg-dark-disclosure th { padding:6px 4px; border-bottom:1px solid #364157; }
.mg-dark-disclosure td:last-child,.mg-dark-disclosure th:last-child { text-align:right; }
.mg-dark-disclosure tr[data-breakeven] { color:#dce8ff; background:#2c4064; }
.mg-calculator .mg-basis-note { color:#aabbd4; font-size:10px; line-height:1.5; margin-top:14px; }
#mg-copy-status { color:#c4d4ee; font-size:11px; margin-top:10px; }
#mg-copy-status:empty { display:none; }
#mg-copy-fallback { margin-top:15px; font-size:11px; }
#mg-report { display:block; width:100%; background:#26334c; color:#fff; border:1px solid #52627d; border-radius:6px; resize:vertical; margin-top:8px; padding:9px; }
.mg-footer { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; border-top:1px solid var(--line); margin-top:26px; padding:17px 0 21px; }
.mg-footer-help { flex:1; }
.mg-footer-help summary { justify-content:flex-start; color:var(--muted); font-size:11px; padding:6px 0; }
.mg-footer-help .mg-disclosure-body { padding-top:12px; max-width:620px; }
.mg-footer a { display:flex; align-items:center; gap:17px; flex-shrink:0; padding:6px 0; color:#2857df; font-size:12px; text-decoration:none; }
.mg-sr-only { position:absolute; top:0; left:0; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
@media(hover:hover) and (pointer:fine) { .mg-reset:hover,.mg-copy:hover,.mg-footer a:hover { text-decoration:underline; } .mg-primary:hover { background:#2857df; } .mg-disclosure summary:hover { color:#2f63ed; } .mg-dark-disclosure summary:hover { color:#fff; } .mg-close:hover { background:#f2f5fa; } .mg-tabs button:hover,.mg-period button:hover { border-color:#bccdf0; } }
@media(max-width:850px) { .mg-calculator { width:calc(100% - 24px); height:calc(100dvh - 24px); } .mg-scroll { padding:24px 24px 0; } .mg-layout { gap:23px; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); } .mg-intro h2 { font-size:29px; } .mg-results { padding:24px 20px 19px; } .mg-calculator .mg-big-number { font-size:41px; } .mg-field-row { gap:10px; } .mg-field-row label { min-height:36px; } .mg-input-wrap { padding-inline:10px; } }
@media(max-width:650px) {
 .mg-calculator { width:100%; height:100dvh; border:0; border-radius:0; }
 .mg-header { padding:12px 20px; gap:14px; } .mg-header img { width:112px; } .mg-header > span { display:none; } .mg-close { margin-left:0; width:35px; height:35px; flex-shrink:0; }
 #mg-result-jump { display:block; }
 .mg-scroll { padding:25px 20px 0; scrollbar-gutter:auto; }
 .mg-intro { margin-bottom:23px; } .mg-intro h2 { font-size:32px; line-height:1.12; } .mg-mobile-only { display:block; } .mg-intro p { font-size:12px; max-width:280px; }
 .mg-layout { grid-template-columns:minmax(0,1fr); gap:23px; }
 .mg-tabs { margin-bottom:23px; } .mg-panel-heading h3 { font-size:20px; }
 .mg-results { position:relative; padding:25px; }
 .mg-calculator .mg-big-number { font-size:48px; }
 .mg-field label { font-size:12px; } .mg-field-row label { min-height:18px; font-size:11px; }
 .mg-input-wrap > span { font-size:10px; } .mg-input-wrap input::placeholder { font-size:12px; }
 .mg-help { margin-top:13px; } .mg-settings { margin-bottom:19px; }
 .mg-footer { flex-direction:column; gap:9px; margin-top:23px; padding-bottom:max(22px,env(safe-area-inset-bottom)); }
 .mg-footer-help { width:100%; } .mg-footer-help summary { justify-content:space-between; }
 .mg-footer a { width:100%; justify-content:space-between; padding:13px 0; border-top:1px solid var(--line); }
 .mg-period-result strong { font-size:30px; }
}
@media(prefers-reduced-motion:reduce) { .mg-button { transition:none; } .mg-button:active { transform:none; } }
