* { box-sizing: border-box; }
:root { --bg:#f4f4f4; --panel:#fff; --text:#181818; --muted:#666; --line:#d8d8d8; --dark:#111; --danger:#8d0000; --success:#155d2b; }
body { margin:0; font-family:Arial,Helvetica,sans-serif; background:var(--bg); color:var(--text); }
.wrap { width:min(1180px,calc(100% - 32px)); margin:0 auto; }
.site-header { background:var(--dark); color:#fff; padding:52px 0 42px; border-bottom:5px solid #444; }
.compact-header { padding:38px 0 30px; }
.eyebrow { margin:0 0 10px; text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; color:#bdbdbd; }
.dark-eyebrow { color:#666; }
h1 { margin:0; font-size:clamp(2rem,5vw,4.4rem); line-height:.98; }
.admin-main-heading,.contact-heading { font-size:clamp(1.8rem,4vw,3rem); }
.subtitle { margin:16px 0 0; color:#d1d1d1; font-size:1.05rem; }
main { padding:30px 0 50px; }
.toolbar { display:flex; gap:12px; justify-content:space-between; margin-bottom:18px; }
.toolbar input { width:min(520px,100%); }
input,textarea { width:100%; border:1px solid #cfcfcf; border-radius:6px; padding:11px 12px; font:inherit; background:#fff; }
textarea { resize:vertical; }
label { font-size:.9rem; font-weight:700; display:grid; gap:7px; }
.button { appearance:none; border:1px solid #222; background:#fff; color:#111; padding:10px 14px; border-radius:6px; cursor:pointer; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; justify-content:center; }
.button:hover { background:#ececec; }
.button.primary { background:#111; color:#fff; }
.button.primary:hover { background:#333; }
.button.secondary { border-color:#aaa; }
.button.light { border-color:#fff; background:transparent; color:#fff; }
.button.full { width:100%; margin-top:16px; }
.table-wrap { overflow-x:auto; background:#fff; border:1px solid var(--line); }
table { width:100%; border-collapse:collapse; min-width:900px; }
th,td { padding:14px 13px; border-bottom:1px solid #e4e4e4; text-align:left; vertical-align:middle; }
th { background:#161616; color:#fff; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; }
tbody tr:hover { background:#fafafa; }
.center { text-align:center; }
.message-button { display:inline-block; border:0; background:transparent; font-size:1.35rem; text-decoration:none; line-height:1; }
.empty { text-align:center; padding:30px 0; color:var(--muted); }
.hidden { display:none!important; }
footer { border-top:1px solid var(--line); color:var(--muted); padding:22px 0 35px; font-size:.88rem; }
.footer-row,.header-row,.section-heading-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.admin-link,.back-link { color:#555; text-decoration:none; }
.admin-link:hover,.back-link:hover { text-decoration:underline; }
.admin-body { min-height:100vh; display:grid; place-items:center; }
.login-wrap { width:min(480px,calc(100% - 32px)); padding:28px 0; }
.login-card,.contact-card,.admin-panel { background:#fff; border:1px solid var(--line); padding:24px; }
.login-card h1 { font-size:2rem; margin-bottom:16px; }
.login-card .back-link { display:inline-block; margin-top:18px; }
.admin-main { display:grid; gap:24px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.form-actions,.manage-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:18px; }
.manage-actions { margin-top:0; }
.manage-actions form { margin:0; }
.small-button { border:1px solid #bbb; background:#fff; color:#111; padding:6px 8px; cursor:pointer; border-radius:5px; text-decoration:none; font:inherit; }
.danger-text { color:var(--danger); border-color:#d2a9a9; }
.alert { padding:12px 14px; border-radius:6px; margin-bottom:14px; }
.alert.error { background:#fff0f0; border:1px solid #e0b7b7; color:#701313; }
.alert.success { background:#effaf2; border:1px solid #b9d9c1; color:var(--success); }
.narrow-panel { max-width:760px; }
.password-grid { display:grid; gap:14px; margin-bottom:16px; }
.contact-wrap { max-width:760px; }
.contact-card { display:grid; gap:14px; }
.contact-card form { display:grid; gap:16px; }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
@media (max-width:720px) { .toolbar,.footer-row,.header-row,.section-heading-row { flex-direction:column; align-items:stretch; } .form-grid { grid-template-columns:1fr; } .site-header { padding-top:36px; } .button.light { width:100%; } }

.section-note { margin:.25rem 0 0; color:var(--muted); font-size:.9rem; }
.count-badge { display:inline-flex; min-width:28px; height:28px; align-items:center; justify-content:center; padding:0 8px; border-radius:999px; background:#ececec; color:#333; font-size:.8rem; vertical-align:middle; }
.admin-list-tools { margin:16px 0 12px; }
.admin-list-tools input { max-width:520px; }
.backup-actions { display:grid; gap:18px; align-items:start; }
.backup-actions form { display:grid; gap:12px; }
tr[hidden] { display:none; }


select {
  width: 100%;
  border: 1px solid #cfcfcf;
  border-radius: 6px;
  padding: 11px 12px;
  font: inherit;
  background: white;
  color: inherit;
}


.footer-links {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:16px;
  flex-wrap:wrap;
}
.footer-links a {
  color:#555;
  text-decoration:none;
}
.footer-links a:hover,
.footer-links a[aria-current="page"] {
  text-decoration:underline;
}
.privacy-note {
  margin:0;
  padding:12px 14px;
  background:#f7f7f7;
  border:1px solid var(--line);
  border-radius:6px;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.5;
}
.privacy-note a {
  color:inherit;
}
.legal-heading {
  font-size:clamp(2rem,4vw,3.2rem);
}
.legal-wrap {
  max-width:900px;
}
.legal-card {
  background:#fff;
  border:1px solid var(--line);
  padding:28px;
  line-height:1.65;
}
.legal-card h2 {
  margin-top:30px;
  margin-bottom:8px;
  font-size:1.2rem;
}
.legal-card h2:first-child {
  margin-top:0;
}
.legal-card a {
  overflow-wrap:anywhere;
}
.legal-placeholder {
  display:inline-block;
  background:#fff3cd;
  color:#5f4600;
  padding:1px 5px;
  border-radius:4px;
}
.legal-warning {
  margin:28px 0 18px;
  padding:14px 16px;
  border:1px solid #d7b660;
  background:#fff8df;
  color:#5f4600;
  border-radius:6px;
}
@media (max-width:720px) {
  .footer-links {
    justify-content:flex-start;
  }
  .legal-card {
    padding:20px;
  }
}
