/* Admin panel — reuses the public site's tokens/fonts from style.css,
   which every admin page loads first. This file only adds the bits
   specific to forms, tables and the dashboard shell. */

.admin-shell{max-width:920px;margin:0 auto;padding:40px var(--gutter) 100px;}
.admin-topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px var(--gutter);border-bottom:1px solid var(--line);
  background:var(--bg-raised);
}
.admin-topbar a{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.admin-topbar a:hover{color:var(--accent);}
.admin-topbar .admin-brand{font-family:var(--serif-display);font-weight:700;color:var(--ink);letter-spacing:.02em;}
.admin-topbar .admin-links{display:flex;gap:24px;align-items:center;}

.admin-h1{font-size:clamp(21.5px, 2.7vw, 29px);margin-bottom:6px;}
.admin-sub{color:var(--muted);font-size:12.5px;margin-bottom:32px;}

.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:24px;}
.admin-tile{
  display:block;border:1px solid var(--line);padding:22px;background:var(--card);
  box-shadow:0 1px 2px rgba(20,19,15,.05);
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.admin-tile:hover{border-color:var(--accent);box-shadow:0 10px 24px rgba(20,19,15,.12);transform:translateY(-2px);}
.admin-tile h3{font-size:16px;margin-bottom:6px;}
.admin-tile p{color:var(--muted);font-size:11.5px;}

.admin-card{border:1px solid var(--line);padding:28px;margin-bottom:24px;background:var(--card);box-shadow:0 1px 2px rgba(20,19,15,.05);}
.admin-card + .admin-card{margin-top:0;}
.admin-card h2{font-size:16px;margin-bottom:18px;}

.admin-field{margin-bottom:18px;}
.admin-field label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.admin-field input[type="text"],
.admin-field input[type="password"],
.admin-field input[type="email"],
.admin-field input[type="url"],
.admin-field textarea,
.admin-field select{
  width:100%;
  font-family:var(--sans-body);font-size:12.5px;color:var(--ink);
  background:var(--bg);border:1px solid var(--line);padding:10px 12px;
}
.admin-field textarea{min-height:90px;resize:vertical;}
.admin-field .hint{color:var(--muted);font-size:11px;margin-top:6px;}
.admin-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:640px){.admin-field-row{grid-template-columns:1fr;}}

.admin-check{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink);}
.admin-check input{width:auto;}

.admin-repeat-item{border:1px solid var(--line);padding:18px;margin-bottom:14px;position:relative;}
.admin-repeat-item .admin-repeat-index{
  position:absolute;top:-10px;left:16px;background:var(--card);padding:0 8px;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.admin-repeat-item.new{border-style:dashed;}

.admin-actions{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap;}

.admin-alert{padding:14px 16px;margin-bottom:24px;font-size:12.5px;border:1px solid var(--line);}
.admin-alert-error{border-color:var(--danger);color:var(--danger);}
.admin-alert-success{border-color:var(--ink);color:var(--ink);}

.admin-login-wrap{max-width:380px;margin:14vh auto 0;padding:0 var(--gutter);}
.admin-table-hint{color:var(--muted);font-size:11px;margin-bottom:20px;}
