
:root{--primary:#b30000;--text:#111827;--border:#e5e7eb;--card:#fff;--bg:#fafafa;--muted:#6b7280}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial}
.container{max-width:1200px;margin:0 auto;padding:24px}
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}
.topbar a{color:var(--text);text-decoration:none}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px;margin-bottom:18px}
.table{width:100%;border-collapse:separate;border-spacing:0 8px}
.table th,.table td{padding:10px 12px;text-align:left;background:#fff}
.badge{padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border)}
.badge.green{background:#ecfdf5;border-color:#10b981;color:#065f46}
.badge.gray{background:#f3f4f6;color:#4b5563}
.input, textarea, select{width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff}
.row{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:860px){.row{grid-template-columns:1fr 1fr}}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{display:inline-block;padding:10px 14px;border-radius:10px;border:1px solid var(--border);background:#fff;text-decoration:none;color:var(--text);cursor:pointer}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.danger{background:#991b1b;border-color:#991b1b;color:#fff}
.help{font-size:12px;color:var(--muted)}
.thumb{width:100px;height:100px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.grid-24{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.grid-24{grid-template-columns:repeat(6,1fr)}}
.cell{background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px;text-align:center}
.cell .num{font-weight:700;margin-bottom:6px}
.cell .imgwrap{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;border:1px dashed var(--border);display:flex;align-items:center;justify-content:center}
.cell input[type=file]{display:none}
.cell label{display:block;margin-top:6px;font-size:12px;cursor:pointer}
.preview{max-width:100%;max-height:100%;object-fit:cover;width:100%;height:100%}
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:900px){.statgrid{grid-template-columns:repeat(4,1fr)}}
.stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px}
