:root{--c-primary: #635bff;--c-on-primary: #ffffff;--c-primary-deep: #4434d4;--c-primary-soft: #f0efff;--c-ink: #0a2540;--c-ink-deep: #0a2540;--c-body: #425466;--c-mute: #697386;--c-canvas: #ffffff;--c-canvas-soft: #f6f9fc;--c-positive: #0e6245;--c-warning: #f5be4b;--c-warning-deep: #b17d10;--c-warning-content: #5c4400;--c-warning-bg: #fffaeb;--c-border: #e3e8ee;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-caption: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 2rem;--fs-3xl: 2.75rem;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-pill: 9999px;--shadow-card: 0 1px 1px rgb(10 37 64 / .04), 0 2px 4px rgb(10 37 64 / .04), 0 8px 16px rgb(10 37 64 / .06);--shadow-card-hover: 0 2px 2px rgb(10 37 64 / .04), 0 4px 8px rgb(10 37 64 / .05), 0 16px 32px rgb(10 37 64 / .08);--transition: .15s ease}*{box-sizing:border-box}body{margin:0;font-family:var(--font-ui);font-size:var(--fs-base);line-height:1.5;color:var(--c-body);background:linear-gradient(180deg,#f6f9fc,#f3f2fd 55%,#f6f9fc);background-attachment:fixed;-webkit-font-smoothing:antialiased}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 var(--sp-4)}h1,h2,h3{line-height:1.2;margin:0;color:var(--c-ink)}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:var(--r-sm)}.site-header{background:transparent;border-bottom:1px solid var(--c-border)}.site-header__inner{padding-block:var(--sp-7) var(--sp-6)}.brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--c-body);text-decoration:none}.brand__dot{width:10px;height:10px;border-radius:var(--r-pill);background:var(--c-primary);border:2px solid var(--c-primary-deep)}.page-title{font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.03em;margin-top:var(--sp-4);color:var(--c-ink)}.page-subtitle{margin:var(--sp-2) 0 0;color:var(--c-body);font-size:var(--fs-base);max-width:46ch}@media (max-width: 480px){.site-header__inner{padding-block:var(--sp-6) var(--sp-5)}.page-title{font-size:1.375rem;line-height:1.25}}.calc-layout{display:grid;grid-template-columns:1fr;gap:var(--sp-5);padding:var(--sp-5) 0 var(--sp-7)}@media (min-width: 1024px){.calc-layout{grid-template-columns:minmax(340px,5fr) 7fr;align-items:start}.result-panel{position:sticky;top:var(--sp-5)}}.input-panel,.result-panel{min-width:0}.card{background:var(--c-canvas);border:1px solid rgb(10 37 64 / .04);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:var(--sp-5)}.card__title{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.02em;margin-bottom:var(--sp-4)}.card__subtitle{font-size:var(--fs-base);font-weight:600;margin:var(--sp-4) 0 var(--sp-3)}.field{margin-bottom:var(--sp-4)}.field:last-child{margin-bottom:0}.field__label{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--c-ink);margin-bottom:var(--sp-1)}.field__hint{font-size:var(--fs-caption);color:var(--c-mute);margin-top:var(--sp-1)}.field--check .field__label--check{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;color:var(--c-ink);cursor:pointer}.field--check input[type=checkbox]{width:16px;height:16px;accent-color:var(--c-primary);cursor:pointer}.field__input,.field__select{width:100%;padding:12px var(--sp-3);font-family:var(--font-ui);font-size:var(--fs-base);color:var(--c-ink);background:var(--c-canvas);border:1px solid var(--c-border);border-radius:var(--r-sm);transition:border-color var(--transition),box-shadow var(--transition)}.field__input:hover,.field__select:hover{border-color:#a8c3de}.field__input:focus,.field__select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #635bff2e}.input-money{position:relative}.input-money__symbol{position:absolute;left:var(--sp-3);top:50%;transform:translateY(-50%);color:var(--c-mute);font-weight:600;pointer-events:none}.input-money .field__input{padding-left:var(--sp-6)}.pill-group{display:flex;gap:var(--sp-2);flex-wrap:wrap}.pill{position:relative;display:inline-flex}.pill__input{position:absolute;inset:0;opacity:0;cursor:pointer}.pill__label{display:inline-flex;align-items:center;padding:10px var(--sp-4);font-size:var(--fs-sm);font-weight:600;color:var(--c-ink);background:var(--c-canvas);border:1px solid var(--c-border);border-radius:var(--r-pill);transition:background var(--transition),border-color var(--transition),color var(--transition);white-space:nowrap}.pill__input:hover+.pill__label{border-color:var(--c-primary);color:var(--c-primary-deep)}.pill__input:checked+.pill__label{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.pill__input:focus-visible+.pill__label{outline:2px solid var(--c-primary);outline-offset:2px}.fieldset{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--sp-4);margin:0 0 var(--sp-4);min-width:0}.fieldset__legend{font-size:var(--fs-sm);font-weight:600;color:var(--c-ink);padding:0 var(--sp-1)}.version-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) var(--sp-3);background:var(--c-warning-bg);border:1px solid var(--c-warning);border-left:4px solid var(--c-warning-deep);border-radius:var(--r-sm);color:var(--c-warning-content);font-size:var(--fs-caption);line-height:1.45;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-4)}.version-banner strong{font-weight:700}.result-hero{background:linear-gradient(135deg,#0a2540,#1c1e54 60%,#34259e);color:var(--c-on-primary);border-radius:var(--r-md);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-card)}.result-hero__label{font-size:var(--fs-sm);font-weight:600;color:#c7c3ff}.result-hero__amount{font-size:var(--fs-3xl);font-weight:300;letter-spacing:-.03em;line-height:1.1;margin-top:var(--sp-1);font-variant-numeric:tabular-nums;overflow-wrap:break-word}.result-hero__mode{margin-top:var(--sp-2);font-size:var(--fs-caption);color:#ffffffb8}.result-hero__note{margin-top:var(--sp-2);font-size:var(--fs-caption);color:var(--c-mute)}.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-4)}.split__item{background:var(--c-canvas-soft);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4)}.split__label{font-size:var(--fs-caption);font-weight:600;color:var(--c-body);text-transform:uppercase;letter-spacing:.04em}.split__amount{font-size:var(--fs-xl);font-weight:400;letter-spacing:-.02em;color:var(--c-ink);margin-top:2px;font-variant-numeric:tabular-nums}.split__note{font-size:var(--fs-caption);color:var(--c-body);margin-top:2px}.tiers{border:1px solid var(--c-border);border-radius:var(--r-sm);overflow:hidden;margin-bottom:var(--sp-4)}.tier{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}.tier:last-child{border-bottom:none}.tier--selected{background:var(--c-primary-soft);box-shadow:inset 3px 0 0 var(--c-primary)}.tier__name{font-size:var(--fs-sm);font-weight:600;color:var(--c-ink)}.tier__desc{font-size:var(--fs-caption);color:var(--c-mute)}.tier__amount{text-align:right;font-variant-numeric:tabular-nums}.tier__quarterly{font-size:var(--fs-base);font-weight:600;color:var(--c-ink)}.tier__annual{font-size:var(--fs-caption);color:var(--c-mute)}.badge{display:inline-block;font-size:var(--fs-caption);font-weight:600;padding:2px var(--sp-2);border-radius:var(--r-pill);background:var(--c-primary);color:var(--c-on-primary);margin-left:var(--sp-2)}.exclusions{margin:0;padding:0;list-style:none}.exclusions li{position:relative;padding-left:var(--sp-5);font-size:var(--fs-sm);color:var(--c-body);margin-bottom:var(--sp-2)}.exclusions li:before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;border-radius:var(--r-pill);background:var(--c-canvas);border:2px solid var(--c-mute)}.calendar{border:1px solid var(--c-border);border-radius:var(--r-sm);overflow:hidden;margin-bottom:var(--sp-4)}.calendar__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-border)}.calendar__row:last-child{border-bottom:none}.calendar__row--rolled{background:var(--c-canvas-soft)}.calendar__q{font-size:var(--fs-sm);color:var(--c-body)}.calendar__date{font-weight:600;color:var(--c-ink);white-space:nowrap}.calendar__roll{display:block;font-size:var(--fs-xs, 11px);color:var(--c-mute)}.calendar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.calendar-actions__year{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--c-body)}.calendar-actions__button{font:inherit;font-size:var(--fs-sm);font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);border:1px solid var(--c-primary);background:var(--c-primary);color:var(--c-on-primary);cursor:pointer;transition:background var(--transition)}.calendar-actions__button:hover{background:var(--c-primary-deep);border-color:var(--c-primary-deep)}.calendar-actions__button:focus-visible{outline:2px solid var(--c-primary-deep);outline-offset:2px}.calendar-actions__link{font-size:var(--fs-sm);color:var(--c-primary-deep);text-decoration:underline}.calendar-note{font-size:var(--fs-xs, 11px);color:var(--c-mute);margin:0 0 var(--sp-4)}.share{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5)}.share__status{font-size:var(--fs-sm);color:var(--c-mute)}.site-footer{background:var(--c-canvas);border-top:1px solid var(--c-border);padding:var(--sp-5) 0}.disclaimer{font-size:var(--fs-sm);color:var(--c-body);text-align:center;margin:0}@media (max-width: 767px){.card{padding:20px;border-radius:var(--r-md)}.calc-layout{gap:var(--sp-5);padding:var(--sp-4) 0 var(--sp-6)}.pill-group{flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--sp-1);scrollbar-width:none}.pill-group::-webkit-scrollbar{display:none}.pill__label{padding:12px var(--sp-4);min-height:44px}.field__input,.field__select{min-height:48px;font-size:1rem}.result-hero{padding:var(--sp-4);text-align:center}.result-hero__amount{font-size:clamp(2rem,9vw,2.5rem)}.split{grid-template-columns:1fr}.tier{flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.tier__amount{text-align:left}}
