:root {
  --dwc-bg: #ffffff;
  --dwc-panel: #f8fafc;
  --dwc-text: #172033;
  --dwc-muted: #64748b;
  --dwc-border: #dbe2ea;
  --dwc-accent: #2563eb;
  --dwc-accent-dark: #1d4ed8;
  --dwc-soft: #eff6ff;
  --dwc-success: #0f766e;
  --dwc-danger: #b91c1c;
  --dwc-radius: 18px;
}

.dwc-shell, .dwc-shell * { box-sizing: border-box; }
.dwc-shell {
  width: 100%;
  max-width: 1080px;
  margin: 24px auto;
  color: var(--dwc-text);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
}
.dwc-header {
  display:flex; justify-content:space-between; gap:24px; align-items:flex-start;
  margin-bottom:18px;
}
.dwc-header h2 { margin:4px 0 5px; font-size:clamp(1.55rem,3vw,2.15rem); line-height:1.15; }
.dwc-header p { margin:0; color:var(--dwc-muted); max-width:650px; }
.dwc-eyebrow { font-size:.72rem; font-weight:800; letter-spacing:.11em; color:var(--dwc-accent); }
.dwc-area-badge {
  flex:0 0 auto; min-width:150px; padding:12px 16px; border:1px solid var(--dwc-border);
  border-radius:14px; background:var(--dwc-soft);
}
.dwc-area-badge span { display:block; color:var(--dwc-muted); font-size:.78rem; }
.dwc-area-badge strong { display:block; margin-top:2px; font-size:1.3rem; }
.dwc-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.dwc-panel { border:1px solid var(--dwc-border); border-radius:var(--dwc-radius); background:var(--dwc-bg); padding:22px; }
.dwc-panel h3 { margin:0 0 16px; font-size:1.08rem; }
.dwc-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.dwc-field { min-width:0; }
.dwc-label { display:block; margin:0 0 6px; font-size:.88rem; font-weight:650; }
.dwc-input-wrap { position:relative; }
.dwc-input {
  width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--dwc-border);
  border-radius:11px; background:#fff; color:var(--dwc-text); font:inherit;
}
.dwc-input:focus { outline:3px solid rgba(37,99,235,.16); border-color:var(--dwc-accent); }
.dwc-unit { position:absolute; right:12px; top:50%; transform:translateY(-50%); color:var(--dwc-muted); font-size:.8rem; pointer-events:none; }
.dwc-options { display:grid; gap:10px; margin-top:18px; padding-top:18px; border-top:1px solid var(--dwc-border); }
.dwc-check { display:flex; align-items:center; gap:9px; font-size:.9rem; margin-bottom:4px; }
.dwc-check input { width:17px; height:17px; accent-color:var(--dwc-accent); }
.dwc-actions { display:flex; gap:10px; align-items:center; margin-top:20px; }
.dwc-button {
  min-height:48px; border:0; border-radius:12px; padding:0 18px; background:var(--dwc-accent);
  color:#fff; font:inherit; font-weight:750; cursor:pointer;
}
.dwc-button:hover { background:var(--dwc-accent-dark); }
.dwc-button:disabled { opacity:.65; cursor:wait; }
.dwc-reset { border:0; background:transparent; color:var(--dwc-muted); cursor:pointer; font:inherit; padding:10px; }
.dwc-error { color:var(--dwc-danger); margin:14px 0 0; font-size:.9rem; }
.dwc-results { background:var(--dwc-panel); }
.dwc-empty { min-height:390px; display:grid; place-content:center; text-align:center; padding:25px; }
.dwc-empty-icon { width:52px; height:52px; display:grid; place-items:center; margin:0 auto 12px; border-radius:15px; background:var(--dwc-soft); color:var(--dwc-accent); font-size:1.5rem; }
.dwc-empty h3 { margin:0 0 5px; }
.dwc-empty p { margin:0 auto; max-width:360px; color:var(--dwc-muted); }
.dwc-results-heading { margin-bottom:14px; }
.dwc-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.dwc-result-card { padding:14px; border:1px solid var(--dwc-border); border-radius:13px; background:#fff; }
.dwc-result-card--total { border-color:var(--dwc-accent); background:var(--dwc-soft); }
.dwc-result-label { display:block; color:var(--dwc-muted); font-size:.78rem; }
.dwc-result-value { display:block; margin-top:3px; font-size:1.2rem; }
.dwc-result-card--total .dwc-result-value { color:var(--dwc-accent-dark); font-size:1.45rem; }
.dwc-breakdown { margin-top:16px; padding-top:16px; border-top:1px solid var(--dwc-border); }
.dwc-breakdown h4 { margin:0 0 8px; font-size:.95rem; }
.dwc-breakdown dl { margin:0; }
.dwc-breakdown dl div { display:flex; justify-content:space-between; gap:20px; padding:7px 0; border-bottom:1px solid #e8edf3; font-size:.87rem; }
.dwc-breakdown dt { color:var(--dwc-muted); }
.dwc-breakdown dd { margin:0; font-weight:700; }
.dwc-disclaimer { margin:14px 0 0; color:var(--dwc-muted); font-size:.75rem; }

@media (max-width: 760px) {
  .dwc-header { flex-direction:column; }
  .dwc-area-badge { width:100%; }
  .dwc-grid { grid-template-columns:1fr; }
}
@media (max-width: 480px) {
  .dwc-shell { margin:16px auto; }
  .dwc-panel { padding:16px; }
  .dwc-fields, .dwc-result-grid { grid-template-columns:1fr; }
  .dwc-actions { align-items:stretch; }
  .dwc-button { flex:1; }
}
