.calculator-wrap { position: relative; z-index: 10; margin-top: -42px; }
.calculator-shell { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr); background: white; border: 1px solid var(--line-strong); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; }
.calculator-form-panel { padding: 31px; }
.calculator-result-panel { padding: 31px; color: var(--ink-950); background: #f0f1f4; border-left: 1px solid var(--line); }
.calculator-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 25px; }
.calculator-heading p { margin-top: 6px; color: var(--ink-500); font-size: .85rem; }
.calculator-version { flex: 0 0 auto; padding: 4px 8px; color: var(--primary-strong); background: #eceef4; border: 1px solid #d2d6e1; border-radius: var(--radius-sm); font-size: .69rem; font-weight: 850; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.field { display: grid; gap: 6px; }
.field--full { grid-column: 1 / -1; }
.field label { color: var(--ink-700); font-size: .79rem; font-weight: 800; }
.input-wrap { position: relative; }
.field input, .field select { width: 100%; min-height: 48px; padding: 0 13px; color: var(--ink-950); background: #fff; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); transition: border .18s, box-shadow .18s, background .18s; }
.field input:focus, .field select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(102,83,111,.1); background: white; outline: 0; }
.input-wrap input { padding-right: 42px; }
.input-suffix { position: absolute; top: 50%; right: 13px; color: var(--ink-500); transform: translateY(-50%); font-size: .8rem; font-weight: 750; }
.field-help { color: var(--ink-500); font-size: .73rem; }
.check-row { display: flex; align-items: flex-start; gap: 9px; padding: 12px 13px; background: var(--surface-soft); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.check-row input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--primary); }
.check-row label { font-size: .81rem; }
.form-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 21px; }
.form-actions .btn { flex: 1; }
.quick-values { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.quick-value { padding: 5px 9px; color: var(--ink-700); background: white; border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: .73rem; font-weight: 800; }
.quick-value:hover { color: var(--ink-950); border-color: #9da5b7; background: var(--surface-warm); }

.result-top { display: grid; grid-template-columns: 1fr 124px; gap: 20px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--line-strong); }
.result-kicker { color: var(--ink-500); font-size: .73rem; font-weight: 800; letter-spacing: .03em; }
.result-value { margin-top: 4px; font-size: clamp(2.25rem, 4vw, 3.65rem); font-weight: 850; letter-spacing: -.045em; }
.result-value small { font-size: .93rem; letter-spacing: 0; }
.result-sub { color: var(--ink-500); font-size: .78rem; }
.result-ring { --rate: 78%; position: relative; display: grid; place-items: center; width: 118px; height: 118px; border-radius: 50%; background: conic-gradient(var(--primary) var(--rate), #d5d8df 0); }
.result-ring::before { content: ""; position: absolute; inset: 10px; background: #f0f1f4; border-radius: 50%; }
.result-ring-content { position: relative; text-align: center; }
.result-ring-content strong { display: block; color: var(--ink-950); font-size: 1.28rem; }
.result-ring-content span { color: var(--ink-500); font-size: .65rem; }
.result-summary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin-top: 22px; border: 1px solid var(--line); }
.result-summary div { padding: 12px 13px; background: rgba(255,255,255,.65); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.result-summary div:nth-child(2n) { border-right: 0; }
.result-summary div:nth-last-child(-n+2) { border-bottom: 0; }
.result-summary span { display: block; color: var(--ink-500); font-size: .68rem; }
.result-summary strong { color: var(--ink-950); font-size: .94rem; }
.breakdown { margin-top: 22px; padding-top: 0; border-top: 0; }
.breakdown-heading { display: flex; justify-content: space-between; margin-bottom: 11px; color: var(--ink-700); font-size: .75rem; font-weight: 850; }
.breakdown-list { display: grid; gap: 9px; }
.breakdown-row { display: grid; grid-template-columns: 112px 1fr auto; gap: 11px; align-items: center; font-size: .75rem; }
.breakdown-row span:first-child { color: var(--ink-700); }
.breakdown-row strong { color: var(--ink-950); }
.breakdown-bar { height: 5px; background: #d5d8df; border-radius: 1px; overflow: hidden; }
.breakdown-bar i { display: block; width: var(--w, 30%); height: 100%; background: var(--teal); border-radius: 0; }
.breakdown-row:nth-child(2n) .breakdown-bar i { background: var(--primary); }
.result-note { margin-top: 17px; color: var(--ink-500); font-size: .68rem; line-height: 1.62; }

.calc-tabs { display: flex; gap: 0; margin-bottom: 19px; padding: 0; background: white; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow-x: auto; }
.calc-tabs a { flex: 1 0 auto; padding: 8px 11px; color: var(--ink-500); border-right: 1px solid var(--line); border-radius: 0; text-align: center; font-size: .75rem; font-weight: 850; }
.calc-tabs a:last-child { border-right: 0; }
.calc-tabs a:hover { color: var(--ink-950); background: var(--surface-soft); }
.calc-tabs a[aria-current="page"] { color: white; background: var(--ink-950); }

.inline-explainer { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 24px; border: 1px solid var(--line); background: white; }
.inline-explainer div { padding: 16px 18px; background: white; border-right: 1px solid var(--line); border-radius: 0; }
.inline-explainer div:last-child { border-right: 0; }
.inline-explainer strong { display: block; font-size: .86rem; }
.inline-explainer span { color: var(--ink-500); font-size: .75rem; }
.home-calculator { padding: 72px 0 70px; background: #faf9fa; }
.home-calculator .calculator-wrap { margin-top: 0; }

/* v0.3 interaction and precision states */
.calculator-result-panel{position:relative}
.calculation-status{position:absolute;top:12px;right:16px;padding:5px 8px;background:#e7f2ef;border:1px solid #bfd8d2;color:var(--success);font-size:.69rem;font-weight:800;opacity:0;transform:translateY(-4px);transition:.18s;pointer-events:none}
.calculation-status.is-visible{opacity:1;transform:none}
.form-error{grid-column:1/-1;padding:10px 12px;background:#fff2f3;border:1px solid #e3bbc2;color:var(--danger);font-size:.78rem}
.field.has-error input{border-color:var(--danger);background:#fffafb}
.quick-value.is-active{color:#fff;background:var(--primary-strong);border-color:var(--primary-strong)}
.result-tools{display:flex;gap:7px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.result-tool{flex:1;min-height:36px;padding:0 10px;background:#fff;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink-700);font-size:.73rem;font-weight:800}
.result-tool:hover{color:var(--ink-950);background:var(--surface-warm)}
.precision-meta{display:grid;grid-template-columns:repeat(2,1fr);margin-top:14px;border:1px solid var(--line);background:rgba(255,255,255,.54)}
.precision-meta div{padding:10px 12px;border-right:1px solid var(--line)}
.precision-meta div:last-child{border-right:0}
.precision-meta span{display:block;color:var(--ink-500);font-size:.64rem}
.precision-meta strong{font-size:.78rem}
@media (min-width:1041px){.calculator-result-panel{position:sticky;top:68px;align-self:start}}

/* v0.7 detailed calculation conditions */
.advanced-conditions{border:1px solid #cbd5e1;background:#f8fafc;padding:0;margin-top:.35rem}
.advanced-conditions summary{cursor:pointer;font-weight:700;padding:.85rem 1rem;color:#172554;list-style:none}
.advanced-conditions summary::-webkit-details-marker{display:none}
.advanced-conditions summary::after{content:"＋";float:right;font-size:1.1rem}
.advanced-conditions[open] summary::after{content:"−"}
.advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:0 1rem 1rem}
.advanced-note{margin:0;padding:.8rem 1rem 1rem;font-size:.84rem;line-height:1.65;color:#334155;border-top:1px solid #e2e8f0}
.result-assumptions{margin:1rem 0;padding:1rem;border-left:4px solid #2563eb;background:#eff6ff;color:#172554}
.result-assumptions strong{display:block;margin-bottom:.35rem}
.result-assumptions ul{margin:.35rem 0 .65rem;padding-left:1.2rem;font-size:.84rem;line-height:1.6}
.result-assumptions p{margin:0;font-size:.78rem}
.result-assumptions a{font-weight:700;text-decoration:underline}
.methodology-version{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#cbd5e1;border:1px solid #cbd5e1;margin:1.2rem 0}
.methodology-version>div{background:#fff;padding:1rem}
.methodology-version span{display:block;font-size:.78rem;color:#64748b;margin-bottom:.25rem}
.methodology-version strong{color:#0f172a}
.source-list{display:grid;gap:.75rem;margin:1rem 0}
.source-list a{display:block;border:1px solid #cbd5e1;padding:1rem;background:#fff;font-weight:700;text-decoration:none}
.source-list a small{display:block;font-weight:400;color:#475569;margin-top:.3rem}
@media(max-width:720px){.advanced-grid,.methodology-version{grid-template-columns:1fr}}


@media print {
  body.print-result-only * {
    visibility: hidden !important;
  }
  body.print-result-only .calculator-result-panel,
  body.print-result-only .calculator-result-panel * {
    visibility: visible !important;
  }
  body.print-result-only .calculator-result-panel {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    max-width: none;
    border: 0;
    box-shadow: none;
    background: #fff;
  }
  body.print-result-only .result-tools,
  body.print-result-only .calculation-status {
    display: none !important;
  }
}
