:root{--color-bg:#eef2f7;--color-card:#fff;--color-inset:#f5f7fb;--color-sunken:#eef1f6;--color-border:#dde3ec;--color-border-strong:#cfd7e3;--color-text:#14213d;--color-text-muted:#5f6b82;--color-text-disabled:#7d8799;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-text:#1d4ed8;--color-accent-soft:#e8effd;--color-accent-soft-hover:#dce7fc;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-danger-border:#fecaca;--color-danger-text:#991b1b;--color-success:#16a34a;--color-warning-bg:#fffbeb;--color-warning-border:#fcd34d;--color-warning-text:#92400e;--shadow-overlay:0 16px 48px #0f172a2e;--radius-lg:12px;--radius-md:8px;--layout-width:1200px;--text-width:75ch}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:focus-visible{outline:2px solid var(--color-accent-text);outline-offset:2px}.page{flex-direction:column;align-items:center;min-height:100vh;padding:0 1.5rem 3rem;display:flex}.app-header{background:var(--color-card);border-bottom:1px solid var(--color-border);align-self:stretch;margin:0 -1.5rem 2rem}.app-header-inner{max-width:calc(var(--layout-width) + 3rem);flex-wrap:wrap;align-items:stretch;column-gap:2.5rem;margin:0 auto;padding:0 1.5rem;display:flex}.brand{white-space:nowrap;align-items:center;gap:.6rem;min-height:3.75rem;display:flex}.brand-button{font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.brand-button:hover .brand-word strong{color:var(--color-accent-text)}.brand-mark{width:1.9rem;height:1.9rem;color:var(--color-accent);flex:none}.brand-word{letter-spacing:-.01em;color:var(--color-text);font-size:1.1rem}.brand-word strong{font-weight:700}.brand-module{color:var(--color-text-muted);font-weight:400}.account-button{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-card);color:var(--color-text);font:inherit;white-space:nowrap;cursor:pointer;order:1;align-self:center;margin-left:auto;padding:.4rem .85rem;font-size:.875rem;font-weight:600;transition:background .15s,border-color .15s}.account-button:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.top-tabs{align-items:stretch;gap:.25rem;display:flex}.top-tab{min-height:3.75rem;color:var(--color-text-muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;padding:0 .85rem;font-size:.9rem;font-weight:600;transition:color .15s,box-shadow .15s;display:flex;box-shadow:inset 0 -2px #0000}.top-tab:hover{color:var(--color-text);box-shadow:inset 0 -2px 0 var(--color-border-strong)}.top-tab.active{color:var(--color-text);box-shadow:inset 0 -2px 0 var(--color-accent)}.top-tab-label-short{display:none}.save-bar{width:100%;max-width:var(--layout-width);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding:.75rem 1.25rem;display:flex}.save-bar-status{color:var(--color-text-muted);font-size:.85rem}.save-bar-sync-conflict,.save-bar-sync-error,.save-bar-sync-unsaved{color:var(--color-warning-text);font-weight:600}.save-bar-button{border-radius:var(--radius-md);background:var(--color-accent);color:#fff;cursor:pointer;border:none;flex-shrink:0;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600}.save-bar-button:hover{background:var(--color-accent-hover)}.save-bar-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.save-bar-button-secondary{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);color:var(--color-text);cursor:pointer;flex-shrink:0;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600}.save-bar-button-secondary:hover{background:var(--color-accent-soft);border-color:var(--color-accent)}.save-bar-button-danger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);color:var(--color-danger);cursor:pointer;flex-shrink:0;padding:.5rem 1.1rem;font-size:.9rem;font-weight:600}.save-bar-button-danger:hover{border-color:var(--color-danger)}@keyframes import-toast-spin{to{transform:rotate(360deg)}}.export-options{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.export-option{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-inset);color:var(--color-text);text-align:left;cursor:pointer;flex-direction:column;gap:.35rem;padding:1rem 1.15rem;transition:background .15s,border-color .15s;display:flex}.export-option:hover{background:var(--color-accent-soft);border-color:var(--color-accent)}.export-option-title{color:var(--color-accent-text);font-size:.95rem;font-weight:700}.export-option-desc{color:var(--color-text-muted);font-size:.85rem;line-height:1.5}.print-header{display:none}.import-toast{border-radius:var(--radius-md);color:#fff;max-width:min(360px,100vw - 3rem);box-shadow:var(--shadow-overlay);z-index:50;align-items:center;gap:.6rem;padding:.75rem 1.1rem;font-size:.9rem;font-weight:600;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.import-toast-loading{background:var(--color-accent)}.import-toast-success{background:var(--color-success)}.import-toast-error{background:var(--color-danger)}.import-toast-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.6s linear infinite import-toast-spin}.modal-actions{flex-wrap:wrap;gap:.5rem;display:flex}.tab-panel{width:100%;max-width:var(--layout-width)}.card{width:100%;max-width:var(--layout-width);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:2.5rem}.title{margin:0;font-size:1.5rem;font-weight:700}.help-button{border:1px solid var(--color-border);width:1.75rem;height:1.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.95rem;font-weight:600;line-height:1;display:inline-flex}.help-button:hover{background:var(--color-accent-soft);color:var(--color-accent-text);border-color:var(--color-accent)}.help-cta{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-inset);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding:1.25rem 1.5rem;display:flex}.help-cta span{color:var(--color-text);font-weight:600}.help-cta-button{border-radius:var(--radius-md);background:var(--color-accent);color:#fff;cursor:pointer;border:none;flex-shrink:0;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600}.help-cta-button:hover{background:var(--color-accent-hover)}.modal-backdrop{z-index:100;background:#0f172a73;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:85vh;box-shadow:var(--shadow-overlay);padding:2rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.modal-header h2{margin:0;font-size:1.2rem}.modal-content h3{margin:1.5rem 0 .5rem;font-size:.95rem}.modal-content h4{color:var(--color-text);margin:1rem 0 .25rem;font-size:.85rem}.modal-content p{color:var(--color-text-muted);margin:.5rem 0;line-height:1.5}.modal-content pre{background:var(--color-inset);border:1px solid var(--color-border);border-radius:var(--radius-md);white-space:pre-wrap;color:var(--color-text);padding:.75rem 1rem;font-size:.85rem;overflow-x:auto}.modal-content ul{color:var(--color-text-muted);margin:.5rem 0;padding-left:1.25rem;line-height:1.6}.modal-content ul strong{color:var(--color-text)}.subtitle{max-width:var(--text-width);color:var(--color-text-muted);margin:0 0 2rem;line-height:1.5}.inputs{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:1.5rem;margin-bottom:1.25rem;display:grid}.section-label{color:var(--color-text-muted);margin:0 0 .75rem;font-size:.8rem;font-weight:600}.mode-toggle{background:var(--color-sunken);border-radius:var(--radius-md);gap:.25rem;margin-bottom:1.25rem;padding:.25rem;display:inline-flex}.mode-button{border-radius:calc(var(--radius-md) - 4px);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.4rem .85rem;font-size:.85rem;font-weight:600}.mode-button.active{background:var(--color-card);color:var(--color-text);box-shadow:0 1px 2px #0f172a1a}.checkbox-field{color:var(--color-text);cursor:pointer;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.9rem;display:flex}.checkbox-field input{width:1rem;height:1rem;accent-color:var(--color-accent);cursor:pointer}.button-primary,.button-secondary,.button-danger{border-radius:var(--radius-md);cursor:pointer;padding:.7rem 1.2rem;font-size:.95rem;font-weight:600;transition:background .15s,border-color .15s}.button-primary{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff}.button-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.button-secondary{border:1px solid var(--color-border-strong);background:var(--color-inset);color:var(--color-text)}.button-secondary:hover{background:var(--color-accent-soft);border-color:var(--color-accent)}.button-danger{border:1px solid var(--color-danger);background:var(--color-danger);color:#fff}.callout-warning{border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning-text);border-left-width:3px;margin:1rem 0;padding:.75rem 1rem;font-size:.9rem;line-height:1.5}.link-button{color:var(--color-accent-text);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--color-text)}.advanced-section{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:1.5rem;overflow:hidden}.advanced-toggle{background:var(--color-inset);width:100%;color:var(--color-text);cursor:pointer;border:none;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;font-size:.9rem;font-weight:600;display:flex}.advanced-toggle:hover{background:var(--color-accent-soft)}.advanced-chevron{color:var(--color-text-muted);transition:transform .15s}.advanced-chevron.open{transform:rotate(180deg)}.advanced-content{border-top:1px solid var(--color-border);padding:1.25rem}.advanced-content .section-label:first-child{margin-top:0}.field{flex-direction:column;gap:.375rem;min-width:0;display:flex}.inputs-align-bottom>.field>.input-wrap{margin-top:auto}.field label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.label-with-help{align-items:center;gap:.4rem;display:flex}.field-help-anchor{display:inline-flex;position:relative}.field-help-button{width:1.1rem;height:1.1rem;font-size:.7rem}.field-popover{z-index:20;background:var(--color-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:280px;max-width:min(280px,80vw);box-shadow:var(--shadow-overlay);text-transform:none;letter-spacing:normal;cursor:default;padding:.85rem 1rem;position:absolute;top:calc(100% + 8px);right:0}.field-popover-left{left:0;right:auto}.field-popover p{color:var(--color-text-muted);margin:0;font-size:.8rem;font-weight:400;line-height:1.5}.field-popover p+p{margin-top:.6rem}@media (width<=860px){.field,.chart-header{position:relative}.field .field-help-anchor,.chart-header .field-help-anchor{position:static}.field .field-popover,.field .field-popover-left,.chart-header .field-popover{width:auto;max-width:none;left:0;right:0}}.input-wrap{position:relative}.input-wrap input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;color:var(--color-text);background:var(--color-card);padding:.65rem 2.75rem .65rem .75rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.input-wrap input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.input-wrap .unit{color:var(--color-text-muted);pointer-events:none;font-size:.85rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.input-with-hint{align-items:center;gap:.6rem;display:flex}.input-with-hint .input-wrap{flex:1}.inline-hint{white-space:nowrap;color:var(--color-text-muted);flex-shrink:0;font-size:.8rem}.field-disabled label,.field-disabled .unit,.field-disabled .inline-hint{color:var(--color-text-disabled)}.field-disabled .input-wrap input{color:var(--color-text-disabled);-webkit-text-fill-color:var(--color-text-disabled);opacity:1;cursor:not-allowed;box-shadow:none;background:0 0;border-style:dashed}.field-error{color:var(--color-danger);font-size:.8rem}.calc-paused{border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning-text);margin:0 0 1.5rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.5}.inputs input[aria-invalid=true]{border-color:var(--color-danger)}.result-wrapper{margin-bottom:1.5rem}.result{background:var(--color-accent-soft);border-radius:var(--radius-md);width:100%;font:inherit;text-align:left;cursor:pointer;border:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:1.25rem 1.5rem;transition:background .15s;display:flex}.result:hover{background:var(--color-accent-soft-hover)}.result.open{border-bottom-right-radius:0;border-bottom-left-radius:0}.result-label{color:var(--color-text);font-size:.85rem;font-weight:600}.result-value-row{align-items:center;gap:.5rem;display:flex}.result-value{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700}.result-chevron{color:var(--color-text-muted);font-size:.85rem;transition:transform .15s}.result-chevron.open{transform:rotate(180deg)}.result-breakdown{background:var(--color-accent-soft);border-top:1px solid var(--color-border-strong);border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);flex-direction:column;gap:.4rem;padding:.9rem 1.5rem 1.1rem;display:flex}.result-breakdown-row{color:var(--color-text);font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;font-size:.85rem;display:flex}.result-breakdown-total{border-top:1px solid var(--color-border-strong);margin-top:.1rem;padding-top:.4rem;font-weight:700}.hint{max-width:var(--text-width);color:var(--color-text-muted);margin:0 0 .75rem;font-size:.8rem}.chart-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:0 0;padding:1rem .5rem .5rem;position:relative}.chart-card+.chart-card{margin-top:1.75rem}.chart-header{align-items:center;gap:.4rem;margin:0 0 .25rem .5rem;display:flex}.chart-title{color:var(--color-text);margin:0;font-size:.9rem;font-weight:600}.chart-with-readout{align-items:flex-start;gap:1rem;display:flex}.chart-with-readout>.chart-area{flex:1;min-width:0}.chart-readout{border:1px solid var(--color-border);background:var(--color-inset);border-radius:10px;flex-shrink:0;width:210px;padding:.75rem .85rem;font-size:.8rem;display:grid}.chart-readout>*{grid-area:1/1}.chart-readout-values[aria-hidden=true]{visibility:hidden}.chart-readout-hint{color:var(--color-text-muted);align-self:center;margin:0;line-height:1.5}.chart-readout-label{margin:0 0 .5rem;font-weight:600}.chart-readout-rows{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.chart-readout-rows li{flex-direction:column;display:flex}.chart-readout-rows strong{font-variant-numeric:tabular-nums}@media (width<=860px){.chart-with-readout{flex-direction:column;align-items:stretch}.chart-readout{width:auto;display:block}.chart-readout-values[aria-hidden=true]{display:none}}@media (width<=560px){.page{padding:0 .5rem 1rem}.app-header{margin:0 -.5rem 1rem}.app-header-inner{padding:0 .5rem}.brand{min-height:3rem}.brand-mark{width:1.6rem;height:1.6rem}.brand-word{font-size:1rem}.card{padding:1.5rem .85rem}.account-button{order:0;padding:.35rem .7rem}.top-tabs{gap:0;width:100%}.top-tab{text-align:center;white-space:normal;overflow-wrap:anywhere;flex:1;justify-content:center;min-width:0;min-height:2.75rem;padding:0 .25rem;font-size:.75rem}.top-tab-label{display:none}.top-tab-label-short{display:inline}}.chart-area-narrow .recharts-cartesian-axis-tick-value{font-size:12px}@media print{@page{margin:14mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff}.page{padding:0;display:block}.print-header{margin-bottom:1.5rem;display:block}.print-header h1{margin:0;font-size:1.4rem}.print-header p{color:var(--color-text-muted);margin:.25rem 0 0;font-size:.85rem}.app-header,.account-button,.save-bar,.import-toast,.help-cta,.chart-readout,.modal-backdrop{display:none!important}.card{max-width:none;box-shadow:none;border:none;padding:0 0 1rem}input{border-color:var(--color-border)!important;box-shadow:none!important;background:#fff!important}}.start{flex-direction:column;gap:1.5rem;width:100%;max-width:1100px;display:flex}.start-intro{max-width:var(--text-width);flex-direction:column;gap:.6rem;display:flex}.start-title{color:var(--color-text);margin:0;font-size:1.75rem;line-height:1.2}.start-lead{color:var(--color-text-muted);margin:0;font-size:1rem;line-height:1.6}.start-tools{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));align-items:stretch;gap:1.25rem;display:grid}.start-tool{flex-direction:column;gap:.85rem;padding:1.75rem;display:flex}.start-tool-head{align-items:center;gap:.75rem;display:flex}.start-tool-mark{width:2.5rem;height:2.5rem;color:var(--color-accent);flex:none}.start-tool-name{color:var(--color-text);margin:0;font-size:1.2rem;line-height:1.25}.start-tool-module{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.85rem}.start-tool-description{color:var(--color-text);margin:0;font-size:.95rem;line-height:1.6}.start-tool-parts{border-top:1px solid var(--color-border);color:var(--color-text-muted);margin:auto 0 .25rem;padding-top:.85rem;font-size:.85rem;line-height:1.5}.start-tool .button-primary{align-self:flex-start}.start-upcoming{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}.start-upcoming-heading{color:var(--color-text);margin:0;font-size:1.1rem;line-height:1.3}.start-upcoming-lead{max-width:var(--text-width);color:var(--color-text-muted);margin:0 0 .65rem;font-size:.9rem;line-height:1.6}.start-tool-coming{background:var(--color-inset)}.start-tool-coming .start-tool-mark{color:var(--color-text-disabled)}.start-tool-coming .start-tool-name,.start-tool-coming .start-tool-description{color:var(--color-text-muted)}.start-tool-status{color:var(--color-text-muted);margin:0;padding:.7rem 0;font-size:.95rem;font-weight:600}.start-info{color:var(--color-text);flex-direction:column;gap:.6rem;padding:1.75rem;font-size:.95rem;line-height:1.6;display:flex}.start-info p{margin:0}.start-info-heading{margin:.65rem 0 0;font-size:1.1rem;line-height:1.3}.start-info-heading:first-child{margin-top:0}.start-link{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:.25rem 0;font-size:.9rem;text-decoration:underline}@media (width<=560px){.start-title{font-size:1.45rem}.start-tool,.start-info{padding:1.35rem}}.account-gate{max-width:34rem}.account-gate .subtitle{margin-bottom:1.5rem}.account-gate-status{color:var(--color-text-muted);margin:0}
