:root {
  --bg:#fff; --card:#f8f6f2; --text:#111; --muted:#6b6b6b; --beige:#efe7dc;
  --radius:12px; --border:1px solid rgba(0,0,0,.12);
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:960px;margin:24px auto;padding:0 16px}
h1{margin:0 0 8px} .muted{color:var(--muted)}
.panel{background:var(--card);border:var(--border);border-radius:var(--radius);padding:16px;margin:16px 0}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
label{font-weight:600} input{padding:8px;border:var(--border);border-radius:8px}
button{padding:8px 12px;border:var(--border);background:#fff;border-radius:10px;cursor:pointer}
button.primary{background:var(--beige)}
button.ghost{background:#fff}
button:disabled{opacity:.5;cursor:not-allowed}
.result{margin-top:8px;padding:8px;border-radius:8px;background:#fff;border:var(--border)}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;border:var(--border)}
th,td{padding:8px;border-bottom:1px solid rgba(0,0,0,.08);text-align:left}
.totals{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}
dialog{border:var(--border);border-radius:12px;padding:16px}
pre{white-space:pre-wrap;margin:0}
