* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #0f172a;
  color: #e2e8f0;
}
.hero {
  padding: 20px 16px;
  background: linear-gradient(140deg, #1d4ed8, #0ea5e9);
}
.hero h1 { margin: 0 0 8px; font-size: clamp(22px, 4vw, 32px); }
.hero p { margin: 0; color: #dbeafe; }
.container {
  max-width: 960px;
  margin: 0 auto;
  padding: 16px;
  display: grid;
  gap: 14px;
}
.panel {
  background: #111827;
  border: 1px solid #334155;
  border-radius: 12px;
  padding: 14px;
}
.panel h2 {
  margin: 0 0 10px;
  font-size: 18px;
}
.panel.muted { color: #cbd5e1; }
.row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}
label, fieldset {
  display: grid;
  gap: 6px;
  font-size: 13px;
  color: #94a3b8;
}
fieldset {
  border: 1px solid #334155;
  border-radius: 10px;
  padding: 10px;
}
legend {
  color: #cbd5e1;
  font-weight: 700;
  padding: 0 6px;
}
input, select, button {
  border-radius: 8px;
  border: 1px solid #475569;
  background: #0b1220;
  color: #f8fafc;
  padding: 9px 10px;
  font-size: 14px;
}
button {
  cursor: pointer;
  border-color: #0ea5e9;
  background: #0284c7;
  font-weight: 700;
}
button.sub {
  border-color: #64748b;
  background: #334155;
}
.buttons {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.card {
  border: 1px solid #1e293b;
  background: #0b1220;
  border-radius: 10px;
  padding: 10px;
  color: #cbd5e1;
}
.compact { font-size: 13px; }
.hidden { display: none; }
.status {
  margin-bottom: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #172554;
  border: 1px solid #1d4ed8;
  color: #dbeafe;
  font-size: 13px;
}
.hp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 10px 0;
}
.hp-box {
  border-radius: 8px;
  padding: 8px 10px;
  background: #1e293b;
  border: 1px solid #475569;
  font-weight: 700;
}
.log {
  display: grid;
  gap: 6px;
  max-height: 240px;
  overflow: auto;
  padding-right: 4px;
}
.save-status {
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
}
.save-status.ok { background: #052e16; border: 1px solid #16a34a; color: #86efac; }
.save-status.err { background: #450a0a; border: 1px solid #dc2626; color: #fca5a5; }
