.page-shell{min-height:100vh}body.modal-open{overflow:hidden}.topbar{background:color-mix(in srgb, var(--surface) 88%, #000 12%);border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;gap:12px;padding:14px 92px;display:flex;box-shadow:inset 0 -1px #ffffff08}.brand{align-items:center;gap:10px;display:flex}.brand-link{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{object-fit:contain;filter:drop-shadow(0 6px 14px #0f121e2e);flex:none;width:70px;height:70px;display:block}.brand-text strong{color:var(--brand);letter-spacing:.04em;text-transform:lowercase;font-size:1.45rem;line-height:1;display:block}.brand-text span{color:var(--text-secondary);font-size:.74rem}.theme-switcher{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-soft) 82%, #000 18%);box-sizing:border-box;border-radius:999px;align-items:center;gap:3px;height:32px;padding:2px;display:inline-flex;box-shadow:inset 0 1px #ffffff0a}.topbar-actions{align-items:center;gap:12px;display:flex}.route-links{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.route-link{background:color-mix(in srgb, var(--surface-soft) 76%, transparent);min-height:32px;color:var(--text-secondary);white-space:nowrap;box-shadow:inset 0 0 0 1px var(--border);border-radius:999px;justify-content:center;align-items:center;padding:0 11px;font-size:.84rem;font-weight:600;line-height:1;text-decoration:none;transition:color .18s,background .18s,transform .18s,box-shadow .18s;display:inline-flex}.route-link.is-active,.route-link:hover{color:var(--text-primary);background:color-mix(in srgb, var(--accent) 14%, var(--surface-soft) 86%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 40%, var(--border));transform:translateY(-1px)}.theme-toggle{z-index:1;min-width:34px;height:26px;color:var(--text-secondary);box-sizing:border-box;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;margin:0;padding:0 7px;font-size:.95rem;font-weight:600;line-height:1;transition:transform .18s,background .18s,color .18s;display:inline-flex;position:relative}.theme-toggle span{line-height:1;display:block;transform:translateY(-.5px)}.theme-toggle.is-active{background:color-mix(in srgb, var(--surface-muted) 70%, var(--accent) 30%);color:var(--accent-contrast);box-shadow:inset 0 1px #ffffff14,0 1px 2px #00000029}.app-shell{width:min(1180px,100% - 240px);margin:0 auto;padding:18px 0 28px}.hero-grid{grid-template-columns:minmax(620px,1.42fr) minmax(320px,.9fr);align-items:start;gap:16px;display:grid}.side-stack{flex-direction:column;gap:14px;display:flex}.landing-hero{padding:0}.landing-head{padding-bottom:0}.landing-copy{max-width:760px;color:var(--text-secondary);margin-top:12px;font-size:1rem;line-height:1.55}.landing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;display:grid}.landing-card{color:inherit;text-decoration:none;display:block}.salary-layout{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);align-items:start;gap:16px;display:grid}.calculator-main-stack{flex-direction:column;gap:16px;min-width:0;display:flex}.salary-note-row{padding:0 14px 14px}.salary-note{max-width:670px;margin:0 auto}.salary-breakdown{margin-top:16px}.salary-breakdown-head{margin-bottom:10px}.salary-breakdown-list{flex-direction:column;gap:8px;display:flex}.salary-breakdown-item strong:last-child{font-variant-numeric:tabular-nums;font-size:.98rem}.salary-rate-badge{background:color-mix(in srgb, var(--surface-soft) 84%, transparent);min-width:54px;min-height:28px;color:var(--text-secondary);border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:.82rem;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff12}.salary-rate-badge.is-changed{background:color-mix(in srgb, var(--accent) 18%, var(--surface-soft) 82%);color:var(--text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 56%, var(--border)), 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent)}.salary-rate-changed-row td{background:color-mix(in srgb, var(--accent) 6%, transparent)}.vacation-summary-grid .summary-card{padding:12px}.vacation-summary-grid .summary-card strong{font-size:1.18rem}.vacation-compare{flex-direction:column;gap:12px;display:flex}.vacation-compare-card{background:color-mix(in srgb, var(--surface-soft) 84%, transparent);border-radius:18px;padding:14px;box-shadow:inset 0 0 0 1px #ffffff0a}.vacation-compare-card.is-accent{background:color-mix(in srgb, var(--accent) 10%, var(--surface-soft) 90%)}.vacation-compare-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px;display:flex}.vacation-compare-head span{color:var(--text-secondary);margin-bottom:4px;font-size:.86rem;display:block}.vacation-compare-head strong{font-variant-numeric:tabular-nums lining-nums;font-size:1.3rem;line-height:1.1;display:block}.vacation-compare-head p{max-width:240px;color:var(--text-secondary);text-align:right;margin:0;font-size:.84rem;line-height:1.35}.vacation-bar-track{background:color-mix(in srgb, var(--surface) 90%, var(--page-bg) 10%);border-radius:999px;height:12px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0a}.vacation-bar{border-radius:inherit;min-width:18%;height:100%}.vacation-bar-work{background:linear-gradient(90deg,#80889b 0%,#a1a8b8 100%)}.vacation-bar-vacation{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-strong) 100%)}.vacation-chart-note{margin-top:2px}.side-stack .history-card{order:2}.calculator-card,.result-card{background:var(--card-bg-strong);box-shadow:var(--shadow);border:0;border-radius:16px;animation:.32s ease-out both float-in;overflow:hidden}.card-header{padding:15px 18px 10px}.breadcrumbs{color:#6d89a6;margin-bottom:7px;font-size:.78rem}.card-header h1{margin:0;font-size:clamp(1.5rem,2.3vw,2.25rem);font-weight:500;line-height:1.04}.form-surface{background:var(--card-bg);border-top:1px solid #ffffff0a;border-radius:0 0 16px 16px;padding:0}.form-row{grid-template-columns:minmax(170px,236px) minmax(280px,420px);justify-content:center;align-items:center;gap:14px;padding:7px 14px;display:grid}.form-label{text-align:right;font-size:.88rem;line-height:1.25}.form-label-help{justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}@media (width<=1024px){.form-label-help{justify-content:flex-start}}.help-badge{background:color-mix(in srgb, var(--surface-muted) 72%, transparent);width:18px;height:18px;color:var(--text-secondary);cursor:help;box-shadow:inset 0 0 0 1px var(--border);border-radius:50%;outline:none;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex;position:relative}.help-badge:before,.help-badge:after{opacity:0;pointer-events:none;transition:opacity .16s,transform .16s;position:absolute;left:50%}.help-badge:before{content:attr(data-tooltip);z-index:4;background:color-mix(in srgb, var(--card-bg-strong) 96%, #000 4%);width:min(280px,58vw);color:var(--text-primary);text-align:left;box-shadow:0 12px 30px #0003, inset 0 0 0 1px var(--border);border-radius:12px;padding:10px 12px;font-size:.78rem;font-weight:400;line-height:1.45;bottom:calc(100% + 10px);transform:translate(-50%,8px)}.help-badge:after{content:"";z-index:3;background:color-mix(in srgb, var(--card-bg-strong) 96%, #000 4%);width:10px;height:10px;box-shadow:inset -1px -1px 0 0 var(--border);bottom:calc(100% + 4px);transform:translate(-50%,8px)rotate(45deg)}.help-badge:hover:before,.help-badge:hover:after,.help-badge:focus-visible:before,.help-badge:focus-visible:after{opacity:1;transform:translate(-50%)}.help-badge:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 0 0 1px var(--border)}.form-control{align-items:center;gap:8px;display:flex}.form-control input,.form-control select{background:color-mix(in srgb, var(--surface) 82%, var(--page-bg) 18%);width:100%;min-height:42px;color:var(--text-primary);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border-strong) 92%, transparent), inset 0 1px 0 #ffffff0d;border:1px solid #0000;border-radius:12px;padding:0 14px;font-size:.9rem;font-weight:400;transition:border-color .16s,box-shadow .16s,background .16s,transform .16s}.form-control input:focus,.form-control select:focus,.repayment-item input:focus,.repayment-item select:focus{border-color:color-mix(in srgb, var(--accent) 72%, white 28%);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 1px 0 #ffffff14;outline:none;transform:translateY(-1px)}.form-control.has-error input,.form-control.has-error select,.form-control.has-error .suffix,.form-control.has-error .currency-trigger{border-color:#e66a6a;box-shadow:0 0 0 3px #e66a6a1f}.form-control select,.repayment-item select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none'%3E%3Cpath d='M2 2.25L9 9.25L16 2.25' stroke='%23738391' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:16px 10px;padding-right:42px}.grouped-control{grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;display:grid}.grouped-control-inline{grid-template-columns:minmax(0,1fr) auto}.narrow-select{width:112px}.currency-trigger{z-index:1;background:color-mix(in srgb, var(--surface) 86%, var(--page-bg) 14%);min-width:118px;min-height:42px;color:var(--text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border-strong) 92%, transparent);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:0 12px;font-weight:600;display:inline-flex;position:relative}.currency-row{align-items:start}.currency-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;padding:4px 0 2px;display:grid}.currency-option{z-index:1;background:color-mix(in srgb, var(--surface) 86%, var(--page-bg) 14%);min-height:42px;color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex;position:relative}.currency-option strong{min-width:42px}.currency-option.is-active{border-color:color-mix(in srgb, var(--accent) 62%, white 18%);background:color-mix(in srgb, var(--accent) 14%, var(--surface) 86%)}.suffix{background:color-mix(in srgb, var(--surface) 86%, var(--page-bg) 14%);min-width:58px;min-height:42px;color:var(--text-secondary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border-strong) 92%, transparent);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;padding:0 12px;font-size:.88rem;font-weight:600;display:inline-flex}.payment-type-group{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.radio-option{align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.radio-option input,input[type=radio]{appearance:none;aspect-ratio:1;border:1.5px solid color-mix(in srgb, var(--text-secondary) 70%, transparent);background:color-mix(in srgb, var(--surface) 88%, var(--page-bg) 12%);border-radius:50%;flex:none;width:26px;min-width:26px;height:26px;margin:0;padding:0;transition:border-color .16s,box-shadow .16s,background .16s,transform .16s;box-shadow:inset 0 0 0 1px #ffffff0a;min-height:26px!important;max-height:26px!important}.radio-option input:checked,input[type=radio]:checked{border-color:var(--accent);background:radial-gradient(circle at center, var(--accent) 0 38%, transparent 42% 100%), color-mix(in srgb, var(--surface) 88%, var(--page-bg) 12%)}.radio-option input:focus-visible,input[type=radio]:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent), inset 0 0 0 1px #ffffff0a;outline:none}.advanced-toggle{z-index:1;background:color-mix(in srgb, var(--surface-soft) 82%, transparent);width:100%;min-height:52px;color:var(--text-secondary);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:1px solid #ffffff0a;border-left:0;border-right:0;justify-content:center;align-items:center;gap:8px;font-size:.88rem;display:flex;position:relative}.advanced-toggle span{font-size:1.2rem;font-weight:300}.advanced-panel{border-bottom:1px solid var(--border);padding:10px 14px 8px}.advanced-head{color:var(--text-secondary);justify-content:space-between;gap:12px;margin-bottom:8px;font-size:.82rem;display:flex}.logic-links{flex-direction:column;gap:8px;display:flex}.logic-link{z-index:1;width:fit-content;color:color-mix(in srgb, var(--accent) 64%, var(--text-secondary) 36%);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:.9rem;display:inline-flex;position:relative}.repayment-section{background:color-mix(in srgb, var(--surface-soft) 92%, transparent);border:0;border-radius:16px;margin-top:10px;padding:12px;box-shadow:inset 0 0 0 1px #ffffff0a}.repayment-tabs{gap:12px;margin-bottom:8px;display:inline-flex}.repayment-tab{color:var(--text-secondary);background:0 0;border:0;border-bottom:2px solid #0000;padding:0 0 6px;font-size:.9rem;font-weight:600}.repayment-tab.is-active{border-bottom-color:var(--accent-strong);color:var(--accent-strong)}.repayment-caption{color:var(--text-secondary);margin-bottom:8px;font-size:.8rem}.repayment-list{flex-direction:column;gap:10px;display:flex}.repayment-card{background:color-mix(in srgb, var(--surface) 90%, var(--page-bg) 10%);box-shadow:var(--shadow-soft);border:0;border-radius:14px;padding:12px}.modal-overlay{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#12101c85;justify-content:center;align-items:flex-start;padding:clamp(12px,3vh,28px) 18px;display:flex;position:fixed;inset:0;overflow:hidden}.repayment-modal{overscroll-behavior:contain;background:var(--card-bg-strong);border:0;border-radius:18px;width:min(860px,100%);max-height:min(920px,100dvh - clamp(24px,6vh,56px));animation:.22s ease-out both float-in;overflow:auto;box-shadow:0 20px 60px #091a2a3d}.repayment-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 16px 8px;display:flex}.repayment-modal-head h2{margin:4px 0 0;font-size:1.3rem;line-height:1.1}.repayment-modal-eyebrow{color:var(--text-secondary);letter-spacing:.03em;text-transform:uppercase;font-size:.78rem;font-weight:700}.modal-repayment-section{margin:0 16px 16px}.modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.modal-actions .primary-button,.modal-actions .ghost-button{width:100%;min-width:0}.repayment-card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.repayment-card-head strong{font-size:.9rem}.repayment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;display:grid}.repayment-grid-regular{grid-template-columns:repeat(2,minmax(0,1fr))}.repayment-field{flex-direction:column;gap:6px;display:flex}.repayment-field>span{font-size:.82rem;font-weight:600}.repayment-field input,.repayment-field select{background:color-mix(in srgb, var(--surface) 86%, var(--page-bg) 14%);min-height:42px;color:var(--text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border-strong) 92%, transparent);border:1px solid #0000;border-radius:12px;padding:0 12px;font-size:.88rem}.repayment-field.has-error input,.repayment-field.has-error select{border-color:#e66a6a;box-shadow:0 0 0 3px #e66a6a1f}.repayment-field.has-error>span{color:#e66a6a}.inline-group{gap:6px}.repayment-info{border:1px solid var(--border);background:var(--surface-soft);color:var(--text-secondary);border-radius:14px;margin-bottom:10px;padding:10px 12px;font-size:.82rem;line-height:1.45}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:10px;display:grid}.check-option{color:var(--text-primary);align-items:center;gap:8px;font-size:.84rem;display:flex}.check-option input{width:18px;height:18px;accent-color:var(--accent)}.form-footer{justify-content:center;gap:16px;padding:14px 16px 16px;display:flex}.primary-button,.ghost-button{z-index:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border:0;border-radius:12px;min-height:42px;padding:0 14px;font-weight:600;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;position:relative}.primary-button{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-strong) 100%);color:var(--accent-contrast);box-shadow:inset 0 1px 0 #ffffff1f, 0 10px 20px color-mix(in srgb, var(--accent-strong) 26%, transparent);border:0}.ghost-button{background:color-mix(in srgb, var(--surface) 90%, var(--page-bg) 10%);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border);border:0}.calc-button{text-transform:uppercase;min-width:180px;font-size:.9rem}.primary-button:hover,.ghost-button:hover,.theme-toggle:hover{transform:translateY(-1px)}.icon-button{width:42px;min-width:42px;height:42px;color:var(--accent);flex:none;padding:0;font-size:1rem}.repayment-modal-head .icon-button:hover,.repayment-modal-head .icon-button:focus-visible{transform:none}.add-button{margin-top:8px}.primary-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.result-card{min-height:100%;margin-top:0;padding:14px;scroll-margin-top:16px}.history-card{min-height:auto}.history-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.history-list{flex-direction:column;gap:8px;display:flex}.history-item{z-index:1;background:color-mix(in srgb, var(--surface) 92%, var(--page-bg) 8%);color:var(--text-primary);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--border-strong) 90%, transparent), inset 0 1px 0 #ffffff14;text-align:left;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;border-radius:14px;padding:11px 52px 11px 11px;transition:transform .18s,border-color .18s,box-shadow .18s;position:relative}.history-item-restore{width:100%;color:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.history-item.is-active,.history-item:hover{box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 44%, var(--border-strong)), 0 10px 24px #14182614;transform:translateY(-1px)}.history-item-head,.history-item-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.history-item-head{margin-bottom:6px}.history-item-head span,.history-item-meta{color:var(--text-secondary);font-size:.82rem}.history-item-main{font-variant-numeric:tabular-nums;margin-bottom:10px;font-size:.98rem;font-weight:700}.history-item-extra{color:var(--text-secondary);margin-top:8px;font-size:.76rem}.history-item-print{width:32px;min-width:32px;height:32px;color:color-mix(in srgb, var(--accent) 72%, var(--text-secondary) 28%);background:color-mix(in srgb, var(--surface-soft) 88%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 18%, var(--border)), 0 4px 10px #1418260f;border:none;border-radius:10px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:10px;right:10px}.history-item-print:hover,.history-item-print:focus-visible{color:var(--accent-strong);background:color-mix(in srgb, var(--accent) 12%, var(--surface-soft) 88%)}.print-icon{width:24px;height:24px;display:block}.saved-repayments{border-top:1px solid #ffffff0d;margin-top:12px;padding-top:10px}.inline-repayments{margin-top:12px}.saved-repayment-list{flex-direction:column;gap:8px;display:flex}.saved-repayment-item{background:color-mix(in srgb, var(--surface) 92%, var(--page-bg) 8%);border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex;box-shadow:inset 0 0 0 1px #ffffff0d}.saved-repayment-item strong{margin-bottom:3px;font-size:.84rem;display:block}.saved-repayment-item p{color:var(--text-secondary);margin:0;font-size:.78rem}[data-theme=dark] .modal-overlay{background:#050c149e}.result-head{margin-bottom:14px}.result-head h2{margin:0 0 6px;font-size:1.45rem;font-weight:500}.result-head p,.result-placeholder{color:var(--text-secondary)}.meta-pills{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.meta-pill{background:color-mix(in srgb, var(--surface-soft) 84%, transparent);min-height:32px;color:var(--text-primary);font-variant-numeric:tabular-nums;border:0;border-radius:999px;align-items:center;padding:0 12px;font-size:.84rem;font-weight:600;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff0f}.result-visual{background:linear-gradient(180deg, color-mix(in srgb, var(--surface-soft) 88%, transparent) 0%, #ffffff05 100%);border:0;border-radius:18px;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:16px;margin-bottom:14px;padding:14px 16px;display:grid;box-shadow:inset 0 0 0 1px #ffffff0d}.viz-label{color:var(--text-secondary);margin-bottom:8px;font-size:.88rem;display:block}.viz-copy strong{font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:1.6rem;font-weight:700;display:block}.viz-copy p{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.4}.viz-chart-block{flex-direction:column;align-items:center;gap:12px;display:flex}.viz-donut{--principal-color:var(--brand-secondary);--interest-color:var(--accent);background:conic-gradient(var(--principal-color) 0 var(--principal), var(--interest-color) var(--principal) 100%);border-radius:50%;place-items:center;width:142px;height:142px;display:grid}.viz-donut-center{background:color-mix(in srgb, var(--card-bg-strong) 86%, var(--page-bg) 14%);text-align:center;width:88px;height:88px;box-shadow:inset 0 0 0 1px var(--border);border-radius:50%;place-items:center;display:grid}.viz-donut-center strong{font-variant-numeric:tabular-nums;font-size:1.15rem}.viz-donut-center span{color:var(--text-secondary);font-size:.76rem}.viz-legend{flex-direction:column;gap:8px;width:100%;display:flex}.viz-legend div{padding-left:18px;position:relative}.legend-dot{border-radius:50%;width:9px;height:9px;position:absolute;top:7px;left:0}.legend-dot-principal{background:var(--brand-secondary)}.legend-dot-interest{background:var(--accent)}.viz-legend strong{font-variant-numeric:tabular-nums;font-size:.95rem;display:block}.viz-legend p{color:var(--text-secondary);margin:2px 0 0;font-size:.78rem}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.summary-card{background:color-mix(in srgb, var(--surface-soft) 84%, transparent);border:0;border-radius:18px;padding:14px;transition:transform .18s,border-color .18s,box-shadow .18s;box-shadow:inset 0 0 0 1px #ffffff0a}.summary-card span{color:var(--text-secondary);margin-bottom:6px;font-size:.88rem;display:block}.summary-card strong{font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em;margin-bottom:6px;font-size:1.28rem;font-weight:700;line-height:1.1;display:block}.summary-card p{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.35}.summary-card:hover{border-color:color-mix(in srgb, var(--accent) 28%, var(--border));box-shadow:var(--shadow-soft);transform:translateY(-2px)}.warning-box{color:#b87700;background:#f2a9001a;border:0;border-radius:14px;padding:10px 12px;font-size:.92rem;box-shadow:inset 0 0 0 1px #f2a9003d}.table-card{margin-top:18px;padding-bottom:10px}.table-wrap{background:color-mix(in srgb, var(--surface) 92%, var(--page-bg) 8%);border:0;border-radius:16px;overflow-x:auto;box-shadow:inset 0 0 0 1px #ffffff0d}.schedule-table{border-collapse:collapse;background:0 0;width:100%;min-width:920px}.schedule-table th,.schedule-table td{text-align:left;font-variant-numeric:tabular-nums;border-bottom:1px solid #ffffff0f;padding:8px 10px;font-size:.84rem}.schedule-table th{background:color-mix(in srgb, var(--surface-soft) 84%, transparent);color:var(--text-secondary);font-size:.76rem;font-weight:700}.table-toggle{color:color-mix(in srgb, var(--accent) 64%, var(--text-secondary) 36%);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin-top:10px;font-size:.9rem}[data-theme=dark] .form-control input,[data-theme=dark] .form-control select,[data-theme=dark] .repayment-field input,[data-theme=dark] .repayment-field select,[data-theme=dark] .suffix{box-shadow:inset 0 0 0 1px #969eb46b,inset 0 1px #ffffff08}[data-theme=dark] .currency-trigger{box-shadow:inset 0 0 0 1px #969eb46b}[data-theme=dark] .form-control select,[data-theme=dark] .repayment-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12' fill='none'%3E%3Cpath d='M2 2.25L9 9.25L16 2.25' stroke='%23C0D0DC' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}[data-theme=dark] .advanced-toggle{background:color-mix(in srgb, var(--surface-soft) 78%, transparent);color:var(--text-secondary)}[data-theme=dark] .logic-link,[data-theme=dark] .table-toggle{color:color-mix(in srgb, var(--accent) 64%, var(--text-secondary) 36%)}[data-theme=dark] .summary-card:hover{box-shadow:0 12px 24px #00000029}@keyframes float-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1100px){.app-shell{flex-direction:column;gap:16px;display:flex}.salary-layout{grid-template-columns:1fr}.hero-grid{order:1;display:contents}.calculator-card{order:1}.calculator-main-stack,.side-stack{display:contents}.side-stack .result-card:not(.history-card){order:2}.table-card{order:3;margin-top:0}.side-stack .history-card{order:4;margin-top:0}.result-visual{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;justify-content:stretch;gap:12px}.form-label{text-align:left}.currency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.repayment-grid,.repayment-grid-regular,.check-grid{grid-template-columns:1fr}}@media (width<=760px){body{font-size:16px}.topbar{flex-direction:column;align-items:flex-start;padding:14px 16px}.topbar-actions{flex-direction:column;align-items:flex-start;gap:8px;width:100%}.route-links{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;display:grid}.route-link{text-align:center;box-sizing:border-box;width:100%;min-height:40px;padding:0 8px;font-size:.82rem}.theme-switcher{align-self:flex-start;width:auto;max-width:max-content}.brand-text strong{font-size:1.35rem}.brand-text span{font-size:.84rem}.app-shell{width:min(100% - 16px,100%);padding:12px 0 24px}.landing-grid{grid-template-columns:1fr;padding:12px}.card-header,.result-card{padding:14px 12px}.form-footer{flex-direction:column;gap:10px}.form-control input,.form-control select,.repayment-field input,.repayment-field select,.suffix,.currency-trigger,.currency-option,.primary-button,.ghost-button{min-height:50px;font-size:16px}.form-label,.form-label-help,.repayment-field>span,.repayment-caption,.check-option,.logic-link,.table-toggle,.history-item-head span,.history-item-meta,.history-item-extra,.viz-label,.summary-card span,.summary-card p,.viz-copy p,.viz-legend p{font-size:16px}.summary-grid,.currency-grid,.grouped-control:not(.grouped-control-inline){grid-template-columns:1fr}.grouped-control-inline{grid-template-columns:minmax(0,1fr) auto}.narrow-select,.suffix,.currency-trigger{width:100%}.grouped-control-inline .suffix{width:auto;min-width:58px;padding-inline:14px}.vacation-compare-head{flex-direction:column;align-items:flex-start}.vacation-compare-head p{text-align:left;max-width:none}.payment-type-group{gap:4px}.radio-option{gap:8px;font-size:16px}.radio-option input,input[type=radio]{width:26px;min-width:26px;height:26px;min-height:26px;max-height:26px}.inline-group{gap:6px}.card-header h1{font-size:1.6rem}.modal-overlay{padding:8px}.repayment-modal{border-radius:18px;width:100%;max-height:calc(100dvh - 16px);overflow:auto;box-shadow:0 20px 60px #091a2a3d}.repayment-modal-head{z-index:2;background:var(--card-bg-strong);border-bottom:1px solid var(--border);padding:14px 14px 8px;position:sticky;top:0}.repayment-modal-head h2{font-size:1.08rem}.modal-repayment-section{margin:0;padding:12px 12px 16px}.modal-actions{box-shadow:none;flex-direction:column-reverse;gap:8px;padding-top:10px;position:sticky;bottom:0}.modal-actions .primary-button,.modal-actions .ghost-button{width:100%;box-shadow:none}.repayment-section{padding:10px}.repayment-grid,.repayment-grid-regular,.check-grid{grid-template-columns:1fr}.saved-repayment-item{align-items:flex-start}.saved-repayment-item .icon-button{flex:none}.history-item-head,.history-item-meta{flex-direction:column;align-items:flex-start}.result-visual{grid-template-columns:1fr;padding:12px}.viz-chart-block{align-items:flex-start}.schedule-table th,.schedule-table td{padding:7px 8px;font-size:16px}}@supports (-webkit-touch-callout:none){.form-control input,.form-control select,.repayment-field input,.repayment-field select,.currency-trigger,.suffix{font-size:16px}@media (width<=760px){.form-control input,.repayment-field input{appearance:none;height:50px;min-height:50px;padding-top:0;padding-bottom:0;line-height:1.2;transform:none}.form-control input:focus,.form-control select:focus,.repayment-item input:focus,.repayment-item select:focus{transform:none}}}:root{--page-bg:#f2f3f7;--card-bg:#eef0f5;--card-bg-strong:#fff;--surface:#fff;--surface-soft:#f6f7fb;--surface-muted:#ebeef4;--border:#6f768a2e;--border-strong:#68708552;--text-primary:#1f2430;--text-secondary:#687182;--accent:#4c8df6;--accent-strong:#2f6fe4;--accent-contrast:#fff;--brand:#25212d;--brand-secondary:#ff7b39;--shadow:0 20px 44px #14182614;--shadow-soft:0 10px 24px #1418260f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:SF Pro Text,SF Pro Display,Google Sans,Roboto,Helvetica Neue,Segoe UI,sans-serif;font-weight:400;line-height:1.45}[data-theme=dark]{--page-bg:#1c1c1c;--card-bg:#222;--card-bg-strong:#1f1f1f;--surface:#1f1f1f;--surface-soft:#262626;--surface-muted:#2d2d2d;--border:#ffffff12;--border-strong:#ffffff1f;--text-primary:#f5f5f5;--text-secondary:#a6a6a6;--accent:#6da8ff;--accent-strong:#4f91f5;--accent-contrast:#fff;--brand:#f5f5f5;--brand-secondary:#fc6d26;--shadow:0 28px 72px #0000004d;--shadow-soft:0 12px 28px #0003;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background-color:var(--surface)}body{min-width:320px;min-height:100vh;color:var(--text-primary);background-color:var(--page-bg);margin:0;font-size:16px}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,[role=button],input,select,label{-webkit-user-select:none;user-select:none}input,select{-webkit-user-select:auto;user-select:auto}#root{background-color:#0000;min-height:100vh}
