/* Authentication views must respect the native hidden attribute.
   This intentionally overrides component display declarations such as
   .admin-login { display: grid; }. */
[hidden] {
  display: none !important;
}

.admin-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 10% 10%, rgba(183,150,93,.10), transparent 30rem),
    var(--color-pina-50);
}

.admin-login {
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.72fr);
  gap:clamp(3rem,6vw,6rem);
  align-items:center;
  width:min(calc(100% - 3rem),1220px);
  margin:auto;
  padding:clamp(5.5rem,8vw,7rem) 0 3rem;
}
.admin-login__brand {
  min-width:0;
  max-width:680px;
}
.admin-login__brand h1 {
  max-width:100%;
  margin-bottom:clamp(2rem,4vw,3rem);
  color:var(--color-heritage-900);
  font-size:clamp(3rem,5vw,5rem);
  line-height:.96;
  letter-spacing:-.045em;
  text-wrap:balance;
}
.admin-login__brand p { color:var(--color-muted); }
.login-card {
  display:grid;
  gap:1.1rem;
  padding:clamp(1.25rem,4vw,2.2rem);
  border:1px solid rgba(183,150,93,.25);
  background:var(--color-capiz);
  box-shadow:var(--shadow-soft);
}

.dashboard {
  width:min(100%,1400px);
  margin:auto;
  padding:2rem clamp(1rem,3vw,2.5rem) 4rem;
}
.dashboard__header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:2rem;
}
.dashboard__header h1 {
  margin:0;
  color:var(--color-heritage-900);
  font-size:clamp(2.3rem,5vw,4.2rem);
}
.dashboard__actions { display:flex; gap:.65rem; }

.metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:1rem;
}
.metrics article {
  padding:1.25rem;
  border:1px solid rgba(183,150,93,.22);
  background:var(--color-capiz);
  box-shadow:var(--shadow-card);
}
.metrics span {
  display:block;
  color:var(--color-muted);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.metrics strong {
  display:block;
  margin-top:.35rem;
  color:var(--color-heritage-900);
  font-family:var(--font-display);
  font-size:2.3rem;
  font-weight:500;
}

.admin-panel {
  padding:1rem;
  border:1px solid rgba(183,150,93,.22);
  background:var(--color-capiz);
  box-shadow:var(--shadow-card);
}
.toolbar {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.25rem .25rem 1rem;
}
.search-field { flex:1; }
.search-field input {
  width:100%;
  min-height:46px;
  border:1px solid #D1CCBE;
  border-radius:var(--radius-pill);
  padding:.65rem 1rem;
  background:var(--color-pina-50);
}
.filter-pills { display:flex; gap:.5rem; flex-wrap:wrap; }
.filter-pill {
  min-height:44px;
  border:1px solid #D1CCBE;
  border-radius:var(--radius-pill);
  padding:.55rem .85rem;
  background:transparent;
  cursor:pointer;
}
.filter-pill.is-active {
  border-color:var(--color-heritage-800);
  background:var(--color-heritage-800);
  color:white;
}

.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th,td {
  padding:.9rem .75rem;
  border-top:1px solid rgba(16,43,35,.08);
  text-align:left;
  white-space:nowrap;
}
th {
  color:var(--color-muted);
  font-size:.73rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
td { font-size:.9rem; }
.status-chip {
  display:inline-flex;
  border-radius:var(--radius-pill);
  padding:.3rem .6rem;
  font-size:.75rem;
  font-weight:800;
}
.status-chip--attending { background:#E4F0E8; color:#28563F; }
.status-chip--declined { background:#F5E5E1; color:#843D35; }
.view-button {
  border:0;
  background:transparent;
  color:var(--color-heritage-800);
  font-weight:800;
  cursor:pointer;
}
.mobile-cards { display:none; }
.empty-state { padding:2rem; color:var(--color-muted); text-align:center; }

.guest-dialog {
  width:min(92vw,560px);
  border:1px solid rgba(183,150,93,.28);
  padding:2rem;
  background:var(--color-capiz);
  box-shadow:var(--shadow-soft);
}
.guest-dialog::backdrop { background:rgba(5,12,10,.68); }
.guest-dialog__close {
  position:absolute;
  right:.6rem; top:.4rem;
  border:0; background:transparent;
  font-size:2rem; cursor:pointer;
}
.guest-dialog h2 { color:var(--color-heritage-900); }
.guest-dialog dl { display:grid; gap:.9rem; }
.guest-dialog dl div {
  display:grid;
  grid-template-columns:140px 1fr;
  gap:1rem;
  padding-top:.75rem;
  border-top:1px solid rgba(16,43,35,.08);
}
.guest-dialog dt { color:var(--color-muted); }
.guest-dialog dd { margin:0; word-break:break-word; }

@media(max-width:1100px) {
  .admin-login {
    width:min(calc(100% - 2.5rem),1040px);
    grid-template-columns:minmax(0,1fr) minmax(340px,.78fr);
    gap:clamp(2rem,4vw,3.5rem);
  }
  .admin-login__brand h1 { font-size:clamp(3rem,5.4vw,4.35rem); }
}

@media(max-width:850px) {
  .admin-login { grid-template-columns:1fr; min-height:auto; padding-block:4rem; }
  .metrics { grid-template-columns:repeat(2,1fr); }
  .dashboard__header { align-items:flex-start; flex-direction:column; }
  .dashboard__actions { width:100%; }
  .dashboard__actions .button { flex:1; }
  .toolbar { flex-direction:column; }
}
@media(max-width:650px) {
  .metrics { grid-template-columns:1fr 1fr; }
  .table-wrap { display:none; }
  .mobile-cards { display:grid; gap:.75rem; }
  .guest-card {
    display:grid;
    gap:.7rem;
    padding:1rem;
    border:1px solid rgba(16,43,35,.10);
    background:var(--color-pina-50);
  }
  .guest-card__top { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
  .guest-card h3 { margin:0; font-family:var(--font-body); font-size:1rem; font-weight:800; }
  .guest-card p { margin:0; color:var(--color-muted); font-size:.85rem; }
  .guest-dialog dl div { grid-template-columns:1fr; gap:.2rem; }
}

.admin-back{position:fixed;z-index:20;top:1rem;left:1rem;display:inline-flex;align-items:center;min-height:42px;padding:.55rem .85rem;border:1px solid var(--color-line);border-radius:var(--radius-pill);background:rgba(251,248,240,.9);color:var(--color-heritage-900);font-size:.78rem;font-weight:760;text-decoration:none;backdrop-filter:blur(12px)}
.admin-brandmark{width:64px;height:64px;display:grid;place-items:center;margin-bottom:1.3rem;border:1px solid var(--color-gold-300);border-radius:50%;color:var(--color-heritage-900);font-family:var(--font-display);font-size:1.15rem}.admin-login__brand small{display:block;max-width:430px;margin-top:1rem;color:var(--color-muted);font-size:.8rem}.password-field{position:relative}.password-field input{padding-right:4.6rem}.password-field button{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);min-height:36px;border:0;border-radius:var(--radius-pill);padding:.3rem .7rem;background:var(--color-pina-100);color:var(--color-heritage-800);font-size:.74rem;font-weight:760;cursor:pointer}.dashboard__header{padding-bottom:1.5rem;border-bottom:1px solid var(--color-line)}.metrics article{border-radius:.35rem}.admin-panel{border-radius:.35rem}.search-field input:focus{outline:none;border-color:var(--color-heritage-700);box-shadow:0 0 0 3px rgba(36,75,61,.1)}.filter-pill{font-weight:700}.view-button{text-underline-offset:4px}.view-button:hover{text-decoration:underline}.guest-dialog{border-radius:.35rem}.guest-dialog__close{width:42px;height:42px;display:grid;place-items:center;border-radius:50%}.guest-dialog__close:hover{background:var(--color-pina-100)}
@media(max-width:650px){.admin-back{position:absolute}.admin-login{padding-top:5.5rem}.admin-login__brand h1{font-size:clamp(2.7rem,14vw,4.4rem)}.dashboard{padding-top:5.5rem}.dashboard__actions{display:grid;grid-template-columns:1fr 1fr}.metrics article{padding:1rem}.metrics strong{font-size:2rem}}
