:root{
  --fg:#111827; --muted:#6b7280; --border:#d1d5db;
  --accent:#4f46e5; --accent2:#16a34a;
  --card:#ffffff; --bg:#ffffff;
  --s1:#eef2ff; --s2:#fff7ed; --s3:#e8faef; --result:#f0f4f8;
}
[data-theme="teal"]{ --accent:#0f766e; --accent2:#22c55e; --s1:#e6fffb; --s2:#ecfeff; --s3:#effdf5; }
[data-theme="rose"]{ --accent:#e11d48; --accent2:#fb7185; --s1:#fff1f2; --s2:#fef2f2; --s3:#fff7ed; }

*{box-sizing:border-box}
body{margin:0;font:15px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu;background:var(--bg);color:var(--fg)}
#app{max-width:1000px;margin:0 auto;padding:20px}

h1{font-size:24px;margin:.2rem 0}
h2{margin:.5rem 0}
.muted{color:var(--muted)}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;margin:16px 0}
.header-flex{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0}
.pill{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--border);border-radius:999px;padding:6px 10px;background:#fff}

select,input,button,label{font:inherit}
input[type="text"],input[type="number"],select{width:100%;padding:8px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--fg)}

.btn{cursor:pointer;border:none;padding:10px 14px;border-radius:10px;font-weight:700}
.btn.primary{background:var(--accent);color:#fff}
.btn.warn{background:#f59e0b;color:#111827}
.btn.reset{background:#ef4444;color:#fff}
.btn.ghost{background:#fff;border:1px solid var(--border)}

.row{display:grid;gap:8px}
.row.header{font-weight:600;background:#f3f4f6;padding:10px;border-radius:8px}
.result{background:var(--result);border:1px dashed #cbd5e1;border-radius:10px;padding:12px;display:none;margin-top:10px}

.section-1{background:var(--s1)}
.section-2{background:var(--s2)}
.section-3{background:var(--s3)}
.mode-toggle{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.hint{font-size:13px;color:#6b7280}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}

@media (min-width: 901px){
  .row.wgt{grid-template-columns:1.6fr 1fr 1fr .7fr}
  .row.pts{grid-template-columns:1.6fr 1fr 1fr .7fr}
}
@media (max-width: 900px){
  .row.wgt{grid-template-columns:1.6fr 1fr 1fr .7fr}
  .row.pts{grid-template-columns:1.6fr 1fr 1fr .7fr}
}
@media (max-width: 720px){
  .grid3{grid-template-columns:1fr}
}
@media print{
  body{background:#fff;color:#000}
  .controls,.mode-toggle,.toolbar,.hint{display:none!important}
  .card{page-break-inside:avoid}
  input, select {
    border: 1px solid #000 !important;
    background: #fff !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact;
  }
  .result {
    border: 1px solid #000 !important;
    background: #f9f9f9 !important;
    -webkit-print-color-adjust: exact;
  }
}