    :root {
      --bg: #f4f1ea;
      --panel: rgba(255, 252, 246, 0.92);
      --panel-strong: #fffdf9;
      --line: rgba(74, 60, 42, 0.14);
      --text: #2d241a;
      --muted: #6d5b49;
      --accent: #b76d2b;
      --accent-soft: rgba(183, 109, 43, 0.12);
      --accent-strong: #8f4f17;
      --good: #1f7a55;
      --shadow: 0 18px 40px rgba(74, 60, 42, 0.12);
      --radius-xl: 26px;
      --radius-lg: 20px;
      --radius-md: 14px;
      --radius-sm: 10px;
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      font-family: "Segoe UI", "Helvetica Neue", sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at top left, rgba(183, 109, 43, 0.16), transparent 34%),
        radial-gradient(circle at top right, rgba(78, 125, 91, 0.12), transparent 28%),
        linear-gradient(180deg, #f8f4ee 0%, var(--bg) 100%);
    }

    .page {
      width: min(1440px, calc(100% - 32px));
      margin: 0 auto;
      padding: 32px 0 48px;
    }

    .hero-card,
    .section,
    .summary {
      background: var(--panel);
      border: 1px solid var(--line);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow);
      backdrop-filter: blur(12px);
    }

    .hero-card {
      padding: 18px 22px;
      margin-bottom: 18px;
    }

    h1 {
      margin: 0 0 8px;
      font-size: clamp(28px, 4vw, 42px);
      line-height: 0.95;
      letter-spacing: -0.03em;
    }

    .hero-card p {
      margin: 0;
      color: var(--muted);
      font-size: 14px;
      line-height: 1.45;
      max-width: 980px;
    }

    .layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 380px;
      gap: 20px;
      align-items: start;
    }

    .main {
      display: grid;
      gap: 20px;
    }

    .section {
      padding: 18px 20px;
    }

    .section-head {
      display: flex;
      justify-content: space-between;
      gap: 16px;
      align-items: end;
      margin-bottom: 12px;
    }

    .section-head h2 {
      margin: 0;
      font-size: 22px;
      letter-spacing: -0.03em;
    }

    .section-head p {
      margin: 8px 0 0;
      color: var(--muted);
      line-height: 1.55;
      max-width: 820px;
    }

    .input-grid,
    .result-grid {
      display: grid;
      gap: 14px;
      grid-template-columns: 1fr;
    }

    .input-card,
    .result-card {
      border: 1px solid var(--line);
      border-radius: 20px;
      background: var(--panel-strong);
      padding: 14px 16px;
    }

    .input-group {
      display: grid;
      gap: 4px;
      padding-bottom: 4px;
    }

    .input-group + .input-group {
      margin-top: 2px;
      padding-top: 10px;
      border-top: 1px solid rgba(74, 60, 42, 0.08);
    }

    .input-group-title {
      margin: 0 0 2px;
      font-size: 18px;
      font-weight: 800;
      letter-spacing: -0.03em;
      text-transform: uppercase;
    }

    .input-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 260px;
      gap: 14px;
      align-items: center;
      min-height: 40px;
    }

    .input-row-label {
      font-size: 15px;
      line-height: 1.25;
    }

    .input-row-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
    }

    .impact-btn {
      border: 1px solid rgba(74, 60, 42, 0.2);
      border-radius: 10px;
      background: rgba(74, 60, 42, 0.08);
      color: var(--text);
      font: inherit;
      font-size: 12px;
      padding: 4px 8px;
      cursor: pointer;
      white-space: nowrap;
    }

    .impact-btn:hover {
      background: rgba(74, 60, 42, 0.14);
    }

    .impact-overlay {
      position: fixed;
      inset: 0;
      z-index: 50;
      background: rgba(20, 16, 10, 0.38);
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.14s ease;
    }

    .impact-overlay.visible {
      opacity: 1;
      pointer-events: auto;
    }

    .impact-panel {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: min(760px, calc(100vw - 24px));
      height: min(86vh, 900px);
      max-height: min(86vh, 900px);
      background: #fffdf8;
      border: 1px solid rgba(74, 60, 42, 0.2);
      border-radius: 16px;
      box-shadow: 0 22px 60px rgba(39, 31, 21, 0.28);
      display: grid;
      grid-template-rows: auto 1fr;
    }

    .impact-panel-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding: 12px 14px;
      border-bottom: 1px solid rgba(74, 60, 42, 0.12);
    }

    .impact-panel-head h4 {
      margin: 0;
      font-size: 15px;
      line-height: 1.35;
    }

    .impact-close {
      border: 1px solid rgba(74, 60, 42, 0.24);
      border-radius: 10px;
      background: rgba(74, 60, 42, 0.08);
      color: var(--text);
      font: inherit;
      font-size: 12px;
      padding: 4px 8px;
      cursor: pointer;
    }

    .impact-close:hover {
      background: rgba(74, 60, 42, 0.14);
    }

    .impact-panel-body {
      overflow: auto;
      min-height: 0;
      padding: 12px 14px 14px;
      display: grid;
      gap: 10px;
    }

    .impact-panel-note {
      margin: 0;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.4;
    }

    .impact-live-row {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 220px;
      gap: 10px;
      align-items: center;
      padding: 8px 10px;
      border: 1px solid rgba(74, 60, 42, 0.14);
      border-radius: 10px;
      background: rgba(255, 255, 255, 0.75);
    }

    .impact-live-label {
      font-size: 15px;
      line-height: 1.25;
    }

    .impact-live-row label {
      display: grid;
      gap: 4px;
      font-size: 12px;
      color: var(--muted);
    }

    .impact-live-row input {
      width: 100%;
      min-height: 34px;
      border-radius: 8px;
      border: 1px solid rgba(74, 60, 42, 0.22);
      padding: 0 8px;
      font: inherit;
      color: var(--text);
      background: #fff;
    }

    .impact-section h5 {
      margin: 0;
      font-size: 13px;
      line-height: 1.35;
    }

    .impact-section ul {
      margin: 6px 0 0;
      padding: 0 0 0 16px;
      display: grid;
      gap: 2px;
      font-size: 12px;
      line-height: 1.35;
    }

    .result-item-head {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 10px;
    }

    .input-card h3,
    .result-card h3 {
      margin: 0 0 4px;
      font-size: 15px;
      letter-spacing: -0.02em;
    }

    .input-card p,
    .result-card p,
    .result-table td small {
      margin: 0;
      color: var(--muted);
      line-height: 1.4;
      font-size: 13px;
    }

    .field-row {
      margin-top: 0;
      display: grid;
      gap: 6px;
    }

    .field-row label {
      font-size: 12px;
      font-weight: 700;
      color: var(--muted);
    }

    .field-row input,
    .field-row select {
      width: 100%;
      border: 1px solid rgba(74, 60, 42, 0.14);
      border-radius: 14px;
      background: rgba(74, 60, 42, 0.08);
      color: var(--text);
      padding: 8px 12px;
      font: inherit;
      font-size: 13px;
    }

    .field-row.checkbox {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 8px 12px;
      border: 1px solid rgba(74, 60, 42, 0.14);
      border-radius: 14px;
      background: rgba(74, 60, 42, 0.08);
    }

    .field-row.checkbox input {
      width: 20px;
      height: 20px;
      margin: 0;
      accent-color: var(--good);
    }

    .field-row.checkbox span {
      font-size: 14px;
      font-weight: 700;
    }

    .field-row.checkbox.compact {
      justify-content: flex-start;
      min-height: 38px;
    }

    .field-row.checkbox.compact span {
      font-size: 14px;
      font-weight: 600;
    }

    .summary {
      position: sticky;
      top: 20px;
      padding: 22px;
      max-height: calc(100vh - 40px);
      overflow: auto;
    }

    .summary h2 {
      margin: 0 0 4px;
      font-size: 28px;
      letter-spacing: -0.03em;
    }

    .summary p {
      margin: 0 0 18px;
      color: var(--muted);
      line-height: 1.5;
    }

    .summary-total {
      display: grid;
      grid-template-columns: 1fr auto;
      align-items: end;
      gap: 12px;
      padding: 18px;
      border-radius: 20px;
      background: linear-gradient(180deg, rgba(183, 109, 43, 0.15), rgba(255, 255, 255, 0.92));
      margin-bottom: 18px;
    }

    .summary-total span {
      color: var(--muted);
      font-size: 13px;
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }

    .summary-total strong {
      font-size: 36px;
      letter-spacing: -0.04em;
      line-height: 1;
    }

    .summary-list {
      display: grid;
      gap: 10px;
      margin-bottom: 18px;
    }

    .summary-item {
      border: 1px solid var(--line);
      border-radius: 16px;
      padding: 13px 14px;
      background: rgba(255, 255, 255, 0.78);
    }

    .summary-item-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 6px;
      font-weight: 700;
    }

    .summary-item small {
      color: var(--muted);
      line-height: 1.5;
    }

    .summary-actions {
      display: grid;
      gap: 10px;
      margin-top: 18px;
    }

    .ghost-button {
      width: 100%;
      border: 0;
      border-radius: 999px;
      background: rgba(74, 60, 42, 0.08);
      color: var(--text);
      padding: 11px 16px;
      font: inherit;
      font-weight: 700;
      cursor: pointer;
    }

    .excel-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      margin-top: 8px;
      background: #1d6f42;
      color: #fff;
      box-shadow: 0 10px 24px rgba(29, 111, 66, 0.2);
    }

    .excel-button:hover {
      background: #185c37;
    }

    .button-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 34px;
      height: 34px;
      padding: 0 10px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.16);
      font-size: 12px;
      font-weight: 800;
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

    .result-card-head {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: start;
      margin-bottom: 12px;
    }

    .price-badge {
      display: inline-flex;
      width: fit-content;
      padding: 8px 11px;
      border-radius: 999px;
      background: var(--accent-soft);
      color: var(--accent-strong);
      font-weight: 700;
      font-size: 13px;
      white-space: nowrap;
    }

    .result-table {
      width: 100%;
      border-collapse: collapse;
    }

    .result-table td {
      padding: 10px 0;
      border-top: 1px solid rgba(74, 60, 42, 0.1);
      vertical-align: top;
    }

    .result-table tr:first-child td {
      border-top: 0;
      padding-top: 0;
    }

    .result-table td:last-child {
      text-align: right;
      white-space: nowrap;
      font-weight: 700;
    }

    .empty-state {
      color: var(--muted);
      line-height: 1.55;
      padding: 14px 0 2px;
    }

    @media (max-width: 1120px) {
      .layout {
        grid-template-columns: 1fr;
      }

      .summary {
        position: static;
        max-height: none;
        overflow: visible;
      }
    }

    @media (max-width: 720px) {
      .page {
        width: min(100% - 20px, 1440px);
        padding-top: 18px;
      }

      .hero-card,
      .section,
      .summary {
        padding: 18px;
        border-radius: 20px;
      }

      h1 {
        font-size: 36px;
      }

      .section-head,
      .result-card-head,
      .summary-item-head,
      .summary-total {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: start;
      }

      .input-row {
        grid-template-columns: 1fr;
        gap: 8px;
      }
    }
