
:root{
  --brand:#dc2626; /* red */
  --ink:#111827;
  --bg:#f6f7fb;
  --card:#ffffff;
  --muted:#6b7280;
  --ok:#16a34a;
  --warn:#f59e0b;
  --danger:#dc2626;
  --ring: rgba(220, 38, 38, .2);
  --br:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:System-ui,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
header.site{background:#000;border-bottom:2px solid var(--brand);}
header.site .inner{display:flex;align-items:center;gap:14px;max-width:1100px;margin:0 auto;padding:12px 16px;}
header.site img.logo{height:40px}
header.site .title{font-weight:800;color:#fff;font-size:18px}
.container{max-width:1100px;margin:0 auto;padding:20px 16px}
.card{background:var(--card);border:1px solid #e5e7eb;border-radius:var(--br);padding:18px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.center{display:flex;align-items:center;justify-content:center;min-height:60vh}
h1{margin:0 0 12px 0;color:var(--brand);font-size:24px}
h2{margin:12px 0;color:#000;font-size:20px}
h3{margin:8px 0;color:#111;font-size:16px}
label{display:block;margin:6px 0 4px 0;color:#374151}
input[type=text],input[type=password],input[type=email],input[type=date],select,textarea{
  width:100%;border:1px solid #d1d5db;border-radius:10px;padding:10px 12px;font-size:14px;background:white;outline:none;
}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring)}
button,.btn{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--brand);background:var(--brand);color:white;
  border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;
}
button.secondary,.btn.secondary{background:#111827;border-color:#111827}
.btn.gray{background:#6b7280;border-color:#6b7280}
.btn.outline{background:white;color:var(--brand);border-color:var(--brand)}
.badge{display:inline-block;border-radius:999px;background:#fee2e2;color:#991b1b;padding:3px 8px;font-size:12px;border:1px solid #fecaca}
table{width:100%;border-collapse:collapse;border-radius:10px;overflow:hidden;border:1px solid #e5e7eb;background:white}
th,td{padding:10px 12px;border-bottom:1px solid #f3f4f6;text-align:left;font-size:14px}
tfoot td{background:#f9fafb}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.help{color:var(--muted);font-size:12px}
footer.site{margin:24px 0;color:#6b7280;text-align:center;font-size:12px}
.controls{display:flex;gap:8px;flex-wrap:wrap}
.group{border:1px dashed #e5e7eb;border-radius:12px;padding:10px;margin-bottom:10px}
.group h3{display:flex;align-items:center;justify-content:space-between}
ul.file-list{list-style:none;padding:0;margin:0}
ul.file-list li{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f3f4f6;padding:8px 0}
.code{font-family:ui-monospace,Menlo,Consolas,monospace;background:#fee2e2;border-radius:8px;padding:8px 10px}
.notice{padding:10px;border-radius:10px;background:#fef3c7;border:1px solid #fde68a;font-size:13px;color:#7c2d12}
.success{background:#dcfce7;border-color:#bbf7d0;color:#065f46}
.error{background:#fee2e2;border-color:#fecaca;color:#7f1d1d}
input[type=checkbox]{transform:scale(1.15)}
.searchbar{display:flex;gap:8px;margin-bottom:12px}
.small{font-size:12px;color:#6b7280}
hr{border:0;border-top:1px solid #e5e7eb;margin:14px 0}

.input-lg{font-size:16px;padding:12px 14px;width:100%}
.card + .card{margin-top:12px}

details.group{border:1px dashed #e5e7eb;border-radius:12px;padding:10px;margin-bottom:10px}
details.group summary::-webkit-details-marker{display:none}
details.group summary{list-style:none}
