:root { --pad: 12px; --gap: 14px; --radius: 8px; }
* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; margin: 0; }
.container { max-width: 960px; margin: 24px auto; padding: 0 var(--pad); }
h1 { margin: 0 0 var(--gap) 0; }
form { display: grid; gap: var(--gap); padding: var(--pad); border: 1px solid #ddd; border-radius: var(--radius); }
label { display: grid; gap: 6px; }
input[type="file"], input[type="text"], input[type="number"] { padding: 8px; border: 1px solid #ccc; border-radius: 6px; }
fieldset { border: 1px solid #ddd; border-radius: var(--radius); padding: var(--pad); }
legend { padding: 0 6px; }
.hint { color: #666; font-size: 0.9rem; }
button, .btn {
  display: inline-block; padding: 10px 14px; border: 1px solid #222;
  border-radius: 6px; background: #222; color: #fff; text-decoration: none; cursor: pointer;
}
.flash { background: #fff4d6; border: 1px solid #f1d38a; padding: var(--pad); border-radius: var(--radius); }
.charts { display: grid; gap: var(--gap); margin-top: var(--gap); }
figure { margin: 0; }
img { width: 100%; height: auto; display: block; border: 1px solid #eee; border-radius: 6px; }
.downloads { display: flex; gap: var(--gap); flex-wrap: wrap; margin: var(--gap) 0; }

