/* Admin dashboard only ------------------------------------------------------ */
:root{
  --admin-bg:#f4f1ec;
  --admin-surface:#fffdf9;
  --admin-surface-2:#f8f3eb;
  --admin-sidebar:#48543e;
  --admin-sidebar-2:#3f4937;
  --admin-olive:#6f7a58;
  --admin-gold:#b58a42;
  --admin-gold-dark:#8f6928;
  --admin-text:#2e2a26;
  --admin-muted:#766e66;
  --admin-line:rgba(143,105,40,.16);
  --admin-shadow:0 12px 34px rgba(56,46,35,.08);
}

*{box-sizing:border-box}
body.admin-body{margin:0;min-width:0;height:100dvh;background:var(--admin-bg);color:var(--admin-text);overflow:hidden}
body.admin-body .hidden{display:none!important}

/* Login ------------------------------------------------------------------- */
.admin-login-page{width:100%!important;height:100dvh;min-height:100vh;overflow-y:auto;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#f5f1ea 0%,#ede7de 100%)}
.admin-login-card{width:min(460px,calc(100vw - 36px))!important;max-width:none!important;margin:0!important;background:var(--admin-surface)!important;border:1px solid var(--admin-line);border-radius:26px;padding:30px!important;box-shadow:0 24px 70px rgba(54,45,34,.15)!important}
.admin-login-card .script-title{margin-top:0}.admin-login-card .green-button{width:100%}.admin-login-card .back-link{display:block;text-align:center}

/* Remove the 540px wedding-page constraint from every admin section. */
.admin-body .dashboard-main section{width:100%!important;max-width:none!important;margin:0!important;background:transparent!important;box-shadow:none!important}

/* Main shell -------------------------------------------------------------- */
.dashboard-shell{width:100vw;max-width:none;height:100dvh;min-height:0;overflow:hidden;display:grid;grid-template-columns:280px minmax(0,1fr);background:var(--admin-bg)}
.dashboard-sidebar{position:relative;top:auto;height:100%;min-height:0;min-width:0;overflow:hidden;padding:24px 18px;background:linear-gradient(180deg,var(--admin-sidebar) 0%,var(--admin-sidebar-2) 100%);color:#fffaf4;display:flex;flex-direction:column;gap:22px;z-index:20;box-shadow:8px 0 30px rgba(40,37,31,.08)}
.sidebar-brand{display:flex;align-items:center;gap:13px;padding:3px 7px 20px;border-bottom:1px solid rgba(255,255,255,.14)}
.sidebar-monogram{width:52px;height:52px;flex:0 0 52px;border-radius:16px;display:grid;place-items:center;background:#fffaf4;color:var(--admin-gold-dark);font-weight:800;font-size:16px;box-shadow:0 7px 18px rgba(0,0,0,.12)}
.sidebar-brand strong{display:block;font-size:17px;line-height:1.15}.sidebar-brand span{display:block;font-size:12px;opacity:.72;margin-top:4px}
.sidebar-nav{display:grid;gap:7px;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.nav-item,.side-action{width:100%;border:0;border-radius:13px;padding:12px 14px;text-align:left;font:inherit;cursor:pointer;background:transparent;color:#fffaf4;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.nav-item{position:relative;padding-left:16px;font-weight:600;font-size:14px}
.nav-item:hover{background:rgba(255,255,255,.09)}
.nav-item.active{background:rgba(255,255,255,.15);box-shadow:inset 4px 0 0 #d7b16d}
.nav-item:active,.side-action:active{transform:translateY(1px)}
.sidebar-footer{margin-top:auto;display:grid;gap:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}
.side-action{border:1px solid rgba(255,255,255,.18);font-size:13px}.side-action:hover{background:rgba(255,255,255,.08)}.side-action.as-link{text-decoration:none;box-sizing:border-box}.side-action.danger{color:#ffe8e8}

.dashboard-main{width:100%;max-width:none;min-width:0;min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding:30px 34px 42px;box-sizing:border-box}
.dashboard-header{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid var(--admin-line)}
.dashboard-header h1{margin:0;color:var(--admin-text);font-size:36px;line-height:1.08;letter-spacing:-.02em}.eyebrow{margin:0 0 6px;text-transform:uppercase;letter-spacing:.15em;color:var(--admin-gold-dark);font-size:11px;font-weight:800}.header-date{font-size:13px;color:var(--admin-muted);text-transform:capitalize;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:999px;padding:9px 13px;white-space:nowrap}

.dashboard-section{display:none!important;width:100%!important}.dashboard-section.active{display:block!important}

/* Dashboard cards --------------------------------------------------------- */
.metric-grid{width:100%;display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:14px}
.metric-card{min-width:0;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:19px;padding:18px 18px 17px;box-shadow:var(--admin-shadow);position:relative;overflow:hidden}
.metric-card:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--admin-gold),#d5b574)}
.metric-card span,.metric-card small{display:block}.metric-card span{font-size:12px;color:var(--admin-muted);font-weight:700;text-transform:uppercase;letter-spacing:.045em}.metric-card strong{display:block;font-size:34px;line-height:1;color:var(--admin-gold-dark);margin:10px 0 8px}.metric-card small{font-size:12px;line-height:1.35;color:#8a8179}
.dashboard-columns{width:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px;margin-top:16px}
.dashboard-card,.form-card{width:100%;max-width:none;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:20px;padding:22px;box-shadow:var(--admin-shadow)}
.card-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.card-heading h2,.section-intro h2,.form-card h3{margin:0;color:var(--admin-gold-dark)}.card-heading h2,.section-intro h2{font-size:22px}.form-card h3{font-size:20px}.card-heading p,.section-intro p{margin:6px 0 0;color:var(--admin-muted);line-height:1.45}
.progress-row{display:flex;justify-content:space-between;margin-top:24px;font-size:14px}.progress-track{height:12px;border-radius:999px;background:#eee5d8;overflow:hidden;margin-top:9px}.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--admin-olive),#87936e);border-radius:999px;transition:width .35s ease}
.dashboard-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:19px}.dashboard-mini-grid>div{background:var(--admin-surface-2);border:1px solid rgba(143,105,40,.08);border-radius:15px;padding:15px}.dashboard-mini-grid span,.dashboard-mini-grid strong{display:block}.dashboard-mini-grid span{font-size:12px;color:var(--admin-muted)}.dashboard-mini-grid strong{font-size:25px;color:var(--admin-gold-dark);margin-top:5px}
.recent-list{display:grid;gap:9px;margin-top:15px}.recent-item{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:13px 14px;border-radius:14px;background:var(--admin-surface-2);border:1px solid rgba(143,105,40,.08)}.recent-item strong,.recent-item span{display:block}.recent-item strong{font-size:14px}.recent-item span{font-size:12px;color:var(--admin-muted);margin-top:3px}.recent-item b{font-size:11px;color:var(--admin-olive);text-transform:uppercase;letter-spacing:.05em}

/* Sections and invitation creation --------------------------------------- */
.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.section-intro>div{min-width:0}
.mode-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.mode-card{min-height:112px;border:1px solid rgba(143,105,40,.22);background:var(--admin-surface);border-radius:19px;padding:19px 20px;text-align:left;cursor:pointer;box-shadow:0 7px 20px rgba(54,45,34,.04);transition:.18s ease}.mode-card:hover{transform:translateY(-1px);border-color:rgba(111,122,88,.42)}.mode-card strong,.mode-card span{display:block}.mode-card strong{font-size:18px;color:var(--admin-gold-dark)}.mode-card span{font-size:13px;line-height:1.45;color:var(--admin-muted);margin-top:8px}.mode-card.active{border-color:var(--admin-olive);background:#fbfcf8;box-shadow:0 0 0 3px rgba(111,122,88,.11)}
.invite-mode-form{display:none!important}.invite-mode-form.active{display:block!important}
.form-card label{display:block;margin-top:15px}.form-help{font-size:13px;color:var(--admin-muted);margin:8px 0 2px;line-height:1.45}
.dashboard-main input,.dashboard-main textarea,.dashboard-main select{width:100%;max-width:none;background:#fff;border:1px solid rgba(143,105,40,.23);border-radius:13px;color:var(--admin-text);font:inherit;padding:11px 13px;box-shadow:none}.dashboard-main input,.dashboard-main select{height:44px}.dashboard-main textarea{min-height:150px;resize:vertical}.dashboard-main input:focus,.dashboard-main textarea:focus,.dashboard-main select:focus{outline:3px solid rgba(181,138,66,.12);border-color:var(--admin-gold)}
.dashboard-main .green-button{width:auto;min-width:210px;padding:12px 22px;margin-top:18px;border-radius:12px;background:var(--admin-olive);border:1px solid var(--admin-gold);color:#fffaf4}.dashboard-main .green-button:hover{filter:brightness(.98)}.dashboard-main .status{text-align:left}.generated-invite-box{margin-top:17px;padding:17px;border-radius:17px;background:#eef2e8;border:1px solid rgba(111,122,88,.27)}.generated-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:11px}.generated-link-row .mini-button{margin:0;width:auto}

/* Invitation list --------------------------------------------------------- */
.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{border:1px solid rgba(143,105,40,.22);background:var(--admin-surface);border-radius:999px;padding:8px 14px;cursor:pointer;color:#6d6358;font:inherit;font-size:13px}.filter-chip.active{background:var(--admin-olive);color:#fffaf4;border-color:var(--admin-olive)}
.personal-invites-list{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.personal-invite-card{min-width:0;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:19px;padding:18px;box-shadow:0 7px 22px rgba(54,45,34,.05)}.personal-invite-card.is-inactive{opacity:.62}.invite-card-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.invite-card-top>div{min-width:0}.invite-card-top h3{margin:0 0 8px;color:var(--admin-gold-dark);font-size:18px;overflow-wrap:anywhere}.type-badge,.response-badge{display:inline-block;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.type-badge.lista_cerrada{background:#efe5cf;color:#805f24}.type-badge.familia_libre{background:#e6eee3;color:#526247}.response-badge.answered{background:#e1efdf;color:#466441}.response-badge.pending{background:#f1ece4;color:#776d60}.invite-meta{font-size:13px;line-height:1.5;color:var(--admin-muted);margin:10px 0}.personal-invite-card input{font-size:12px;background:#faf8f4}.invite-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.invite-card-actions .mini-button{width:auto;margin:0}.empty-text{color:#857b70;text-align:center;padding:24px}

/* Confirmations / guests -------------------------------------------------- */
.family-card{width:100%!important;max-width:none!important;background:var(--admin-surface)!important;border:1px solid var(--admin-line)!important;border-radius:18px!important;padding:18px!important;margin:0 0 13px!important;box-shadow:0 7px 22px rgba(54,45,34,.04)!important}.family-header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.family-header h3{margin:0;color:var(--admin-gold-dark)}.family-header span{background:var(--admin-surface-2);border:1px solid var(--admin-line);border-radius:999px;padding:7px 10px;font-size:12px}
.admin-table-wrap{width:100%;max-width:none;overflow:auto;background:var(--admin-surface);border:1px solid var(--admin-line);border-radius:18px;box-shadow:0 7px 22px rgba(54,45,34,.04)}.admin-table,.mini-table{width:100%;min-width:760px;border-collapse:collapse}.admin-table th,.admin-table td,.mini-table th,.mini-table td{padding:11px 12px;border-bottom:1px solid rgba(143,105,40,.12);text-align:left;font-size:13px;vertical-align:top}.admin-table th,.mini-table th{position:sticky;top:0;background:#f7f1e8;color:var(--admin-gold-dark);font-weight:800;z-index:1}.whatsapp-small{display:inline-block;background:var(--admin-olive);color:#fffaf4;text-decoration:none;border-radius:999px;padding:7px 11px;font-size:12px}.family-message{background:var(--admin-surface-2);border-radius:12px;padding:10px 12px}.small-muted{color:var(--admin-muted)}.compact-button{padding:9px 13px}.mini-button{border-radius:10px}

/* Wide screens ------------------------------------------------------------ */
@media(min-width:1500px){
  .dashboard-shell{grid-template-columns:300px minmax(0,1fr)}
  .dashboard-main{padding:34px 42px 48px}
  .metric-grid{gap:16px}.metric-card{padding:20px}
  .personal-invites-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Tablet ------------------------------------------------------------------ */
@media(max-width:1200px){
  .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .personal-invites-list{grid-template-columns:1fr 1fr}
}
@media(max-width:980px){
  .dashboard-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden}
  .dashboard-sidebar{position:relative;height:auto;max-height:42dvh;overflow:hidden;padding:14px 16px;gap:12px}
  .sidebar-brand{padding-bottom:12px}.sidebar-nav{display:flex;overflow-x:auto;overflow-y:hidden;gap:7px;padding-bottom:2px}.nav-item{flex:0 0 auto;width:auto;white-space:nowrap;padding:10px 13px}.nav-item.active{box-shadow:inset 0 -3px 0 #d7b16d}.sidebar-footer{grid-template-columns:repeat(3,1fr);margin-top:0;padding-top:10px}.dashboard-main{height:100%;min-height:0;overflow-y:auto;padding:22px}.dashboard-columns{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.personal-invites-list{grid-template-columns:1fr 1fr}
}

/* Mobile ------------------------------------------------------------------ */
@media(max-width:700px){
  .dashboard-main{padding:15px 12px 28px}.dashboard-header{display:block;margin-bottom:18px}.header-date{display:inline-block;margin-top:10px}.dashboard-header h1{font-size:29px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric-card{padding:14px}.metric-card strong{font-size:28px}.dashboard-columns,.mode-grid,.personal-invites-list{grid-template-columns:1fr}.dashboard-card,.form-card{padding:17px}.generated-link-row{grid-template-columns:1fr}.dashboard-main .green-button{width:100%;min-width:0}.sidebar-footer{grid-template-columns:1fr}.section-intro{display:block}.invite-card-top,.family-header{display:block}.response-badge{margin-top:8px}.dashboard-mini-grid{grid-template-columns:1fr 1fr}.admin-table,.mini-table{min-width:680px}
}


/* Secciones novio / novia ------------------------------------------------ */
.invite-owner-selection{padding:18px 20px;margin-bottom:18px;border:1px solid var(--admin-line);border-radius:18px;background:var(--admin-surface);box-shadow:var(--admin-shadow)}
.invite-owner-selection label{display:block;margin:0 0 10px;font-size:14px;font-weight:800;color:var(--admin-gold-dark)}
.invite-owner-selection select{max-width:500px}
.invite-owner-selection .form-help{margin:10px 0 0}
.invitation-side-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.invitation-side-card{display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-height:205px;padding:25px;border:1px solid rgba(143,105,40,.2);border-radius:21px;background:var(--admin-surface);box-shadow:var(--admin-shadow);color:var(--admin-muted);font:inherit;text-align:left;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}
.invitation-side-card:hover,.invitation-side-card:focus-visible{transform:translateY(-2px);border-color:var(--admin-olive);box-shadow:0 16px 35px rgba(56,46,35,.13)}
.invitation-side-card:focus-visible{outline:3px solid rgba(111,122,88,.24);outline-offset:2px}
.invitation-side-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--admin-gold-dark);font-size:11px;font-weight:800}
.invitation-side-card strong{font-size:24px;line-height:1.2;color:var(--admin-gold-dark)}
.invitation-side-card>span:not(.invitation-side-eyebrow):not(.invitation-side-count){font-size:13px;line-height:1.5}
.invitation-side-count{margin-top:auto;display:inline-block;border-radius:999px;padding:7px 12px;background:#edf1e8;color:#506245;font-size:13px;font-weight:800}
.invitation-side-header{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:0 0 22px}
.invitation-side-header h2{margin:0;color:var(--admin-gold-dark);font-size:23px}
.invitation-side-header .mini-button{margin:0;width:auto}
.unassigned-invites{border:1px solid rgba(143,105,40,.22);border-radius:17px;padding:15px 18px;background:var(--admin-surface);margin-top:14px}
.unassigned-invites summary{font-size:14px;font-weight:800;color:var(--admin-gold-dark);cursor:pointer}
.unassigned-invites .small-muted{margin:13px 0}
.unassigned-invites-list{display:grid;gap:8px;margin-top:14px}
.unassigned-invite-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--admin-line);border-radius:12px;background:var(--admin-surface-2);padding:12px 14px}
.unassigned-invite-row>div:first-child{min-width:0;overflow-wrap:anywhere}
.unassigned-invite-row strong,.unassigned-invite-row small{display:block}
.unassigned-invite-row small{margin-top:5px;color:var(--admin-muted)}
.unassigned-invite-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
.unassigned-invite-actions .mini-button{margin:0;width:auto}
@media(max-width:720px){
  .invitation-side-grid{grid-template-columns:1fr}
  .invitation-side-card{min-height:160px;padding:19px}
  .invitation-side-card strong{font-size:21px}
  .unassigned-invite-row{align-items:stretch;flex-direction:column}
  .unassigned-invite-actions{flex-shrink:1}
}
