:root {
  --ink: #1f1f1f;
  --paper: #f7f5ef;
  --sand: #e4d7b8;
  --accent: #b23a2e;
  --road: #d6d6d6;
  --building: #c59f6a;
  --named: #8f6b40;
  --helipad: #2f9e44;
  --zombie: #395b2f;
  --player: #2d6a9f;

  --subtile-road: #74787d;
  --subtile-parking: #4a4a4a;
  --subtile-blocked: #ffd6d6;
  --subtile-grass: linear-gradient(135deg, #b6e7a7 60%, #7fd97f 100%);
  --subtile-grass-border: #4caf50;
  --subtile-water: linear-gradient(135deg, #5ba8d4 60%, #2e86c1 100%);
  --subtile-water-border: #1565c0;
  --subtile-wooded: linear-gradient(135deg, #3a5e2a 60%, #254018 100%);
  --subtile-wooded-border: #1a2e10;

  /* Font scale */
  --font-xs:  0.65rem;   /* tiny labels, tags */
  --font-sm:  0.72rem;   /* secondary text, tooltips */
  --font-ui:  0.8rem;    /* standard UI text */
  --font-body: 0.85rem;  /* body / card text */

  /* Border radius */
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;

  /* Warm UI tone (brown family) */
  --tone-warm:  #5a4020;   /* headings, accents */
  --tone-muted: #9a8060;   /* secondary labels */

  /* Tooltip */
  --tooltip-bg:     #2a1f0f;
  --tooltip-fg:     #f5ead0;
  --tooltip-border: #5a4020;

  /* Action panel theme colors */
  --panel-zombie-border: #7c4a4a;
  --panel-zombie-bg:     #fff0f0;
  --panel-event-border:  #4a7c59;
  --panel-event-bg:      #eef7f1;
  --panel-combat-border: #b76a48;
  --panel-combat-bg:     #fff5eb;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  color: var(--ink);
  background:
    radial-gradient(circle at 20% 15%, #fff9d8 0%, transparent 28%),
    radial-gradient(circle at 80% 10%, #ffd8c9 0%, transparent 32%),
    linear-gradient(160deg, #f3ead2 0%, #f7f5ef 65%, #efe3c4 100%);
}

.site-footer {
  text-align: center;
  padding: 0.6rem;
  font-size: 0.75rem;
  opacity: 0.5;
}

button,
input {
  border: 1px solid #8f7d56;
  border-radius: 6px;
  padding: 0.4rem 0.55rem;
  font: inherit;
}

button {
  background: #f4eddd;
  cursor: pointer;
}

button:hover {
  background: #eadfca;
}

button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

button.needs-restart {
  background: #e8a020;
  color: #fff;
  font-weight: 700;
  animation: pulse-restart 1.2s ease-in-out infinite;
}

button.needs-restart:hover {
  background: #c98010;
}

@keyframes pulse-restart {
  0%, 100% { box-shadow: 0 0 0 0 rgba(232, 160, 32, 0.6); }
  50%       { box-shadow: 0 0 0 6px rgba(232, 160, 32, 0); }
}

input[type="number"] {
  width: 72px;
}

.small {
  font-size: 0.68rem;
  opacity: 0.92;
}
