:root{--bg:#f7f4ef;--card:#fff;--text:#272727;--muted:#6b6b6b;--brand:#24745a;--brand2:#66cdaa;--dark:#202020;--line:#e6dfd4;--danger:#a62929;--shadow:0 12px 35px rgba(0,0,0,.12)}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}.container{width:min(1120px,92vw);margin:0 auto}.site-header{position:sticky;top:0;z-index:1000;background:rgba(32,32,32,.96);box-shadow:0 2px 20px rgba(0,0,0,.15)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:70px}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800}.brand img{width:42px;height:42px;object-fit:contain}.nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.nav a,.nav-user{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem}.nav a:hover{color:var(--brand2)}.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:1.8rem}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;background:var(--brand);color:#fff!important;text-decoration:none;border:0;border-radius:999px;font-weight:700;cursor:pointer;box-shadow:0 6px 16px rgba(36,116,90,.22)}.btn:hover{background:#1b5f49}.btn.small{padding:8px 14px;font-size:.9rem}.btn.secondary{background:#333}.hero{min-height:480px;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(rgba(0,0,0,.38),rgba(0,0,0,.45)),url('/assets/img/banner1.jpg') center/cover no-repeat}.hero h1{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.05;margin:0 0 18px}.hero p{font-size:clamp(1.05rem,2vw,1.35rem);max-width:720px;margin:0 auto 26px}.section{padding:70px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--shadow)}.muted{color:var(--muted)}.notice{background:#e8f7f0;border:1px solid #badfce;color:#174f3d;padding:14px 16px;border-radius:14px;margin:18px 0}.error{background:#fdecec;border-color:#efb2b2;color:#7b1f1f}.form{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow)}label{display:block;font-weight:700;margin:14px 0 6px}input,textarea,select{width:100%;padding:12px 13px;border:1px solid #cec7bc;border-radius:12px;font:inherit;background:#fff}textarea{min-height:120px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.table-wrap{overflow:auto;background:#fff;border-radius:20px;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f0ebe3}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}.gallery-item{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.08)}.gallery-item img,.gallery-item video{width:100%;height:210px;object-fit:cover;display:block}.gallery-item .caption{padding:12px;font-size:.92rem}.admin-layout{display:grid;grid-template-columns:260px 1fr;gap:24px}.admin-menu{position:sticky;top:88px;align-self:start}.admin-menu a{display:block;padding:10px 12px;border-radius:12px;color:var(--text);text-decoration:none}.admin-menu a:hover{background:#eee5d8}code{background:#eee5d8;padding:2px 5px;border-radius:5px}.site-footer{background:#202020;color:#fff;padding:26px 0;text-align:center}.site-footer a{color:var(--brand2)}@media(max-width:760px){.nav-toggle{display:block}.nav{display:none;position:absolute;left:0;right:0;top:70px;background:#202020;padding:18px 4vw;flex-direction:column;align-items:flex-start}.nav.open{display:flex}.admin-layout{grid-template-columns:1fr}.hero{min-height:400px}.section{padding:48px 0}}
.album-bar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 22px}.album-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 14px;font-weight:700;cursor:pointer}.album-chip.active,.album-chip:hover{background:var(--brand);color:#fff}.gallery-item{cursor:pointer;text-align:left;padding:0;border:1px solid var(--line);font:inherit;color:inherit}.gallery-item .caption{display:block}.modal{display:none;position:fixed;z-index:5000;inset:0;background:rgba(0,0,0,.86);align-items:center;justify-content:center;padding:4vw}.modal.open{display:flex}.modal img,.modal video{max-width:92vw;max-height:86vh;border-radius:16px;box-shadow:0 18px 60px rgba(0,0,0,.5)}.modal-close{position:absolute;top:22px;right:28px;background:#fff;border:0;border-radius:999px;width:44px;height:44px;font-size:30px;line-height:1;cursor:pointer}.admin-edit-box{border:1px solid var(--line);border-radius:16px;padding:16px;margin:14px 0;background:#fbfaf7}h3{margin-top:28px}

.captcha-wrap{margin:18px 0}.btn.danger{background:var(--danger)}.actions-cell{white-space:nowrap;display:flex;gap:6px;align-items:center}.actions-cell form{margin:0}.admin-layout>.card{height:max-content}@media(max-width:760px){.actions-cell{white-space:normal}.table-wrap table{min-width:720px}.brand span{font-size:.95rem}}

.soft-rule{border:0;border-top:1px solid var(--line);margin:18px 0}.event-detail-strong{font-weight:800;font-size:1.08rem}
.status-pill{display:inline-block;border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:800;background:#eee;color:#333}.status-yes{background:#e8f7f0;color:#174f3d}.status-waitlist{background:#fff4d7;color:#6a4a00}.status-no{background:#fdecec;color:#7b1f1f}.poker-summary{grid-column:1/-1}.calendar-actions{margin-top:16px}.notice.error{display:inline-block}.table-wrap td .notice.error{padding:6px 8px;margin:6px 0 0;font-size:.85rem}


/* Responsive admin/page layout polish */
html,body{max-width:100%;overflow-x:hidden}.admin-section{padding-top:42px}.admin-container{width:min(1480px,94vw);margin-left:auto;margin-right:auto}.admin-layout{grid-template-columns:minmax(190px,230px) minmax(0,1fr);align-items:start}.admin-content{min-width:0;width:100%}.admin-layout>.card,.admin-content>.card,.admin-content>.form,.admin-content section{min-width:0}.admin-menu{top:92px}.admin-menu.card{padding:18px}.admin-menu a{font-size:.95rem}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:900px}.admin-content #attendees .table-wrap table{min-width:1180px}.actions-cell{white-space:normal;flex-wrap:wrap;min-width:260px}.actions-cell .btn{margin-bottom:2px}.status-pill{white-space:nowrap}td,th{overflow-wrap:anywhere}.admin-edit-box{max-width:100%}.form .btn,.admin-content .btn{max-width:100%}.nav-wrap{position:relative}.nav a.btn{white-space:nowrap}

@media(max-width:1100px){.admin-container{width:min(1000px,94vw)}.admin-layout{grid-template-columns:1fr}.admin-menu{position:static;display:flex;gap:8px;overflow-x:auto;white-space:nowrap;padding:12px;margin-bottom:18px}.admin-menu a{display:inline-flex;flex:0 0 auto;background:#f8f3ea}.admin-content #attendees .table-wrap table{min-width:1120px}}

@media(max-width:760px){.container,.admin-container{width:min(100% - 24px,720px)}.nav-wrap{min-height:62px}.brand img{width:34px;height:34px}.nav{top:62px}.hero{min-height:360px;padding:52px 0}.card,.form{padding:18px;border-radius:18px}.section{padding:40px 0}.admin-section{padding-top:28px}.admin-menu.card{border-radius:16px;margin-left:0;margin-right:0}.admin-menu a{padding:9px 11px}.table-wrap{border-radius:14px}.table-wrap table{min-width:760px}.admin-content #attendees .table-wrap table{min-width:1040px}th,td{padding:10px 12px}.actions{gap:8px}.btn,button.btn{padding:10px 14px}.btn.small{padding:7px 10px;font-size:.82rem}.actions-cell{min-width:220px}.form-row{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}.gallery-item img,.gallery-item video{height:155px}.calendar-actions .btn,.actions .btn{width:auto}.site-footer{padding:20px 12px}}

@media(max-width:480px){.container,.admin-container{width:calc(100% - 18px)}.brand span{font-size:.9rem}.hero h1{font-size:2.15rem}.hero p{font-size:1rem}.card,.form{padding:15px}.admin-content #attendees .table-wrap table{min-width:980px}.actions-cell{min-width:205px}.btn,button.btn{width:100%;justify-content:center}.actions-cell .btn,.admin-menu .btn,.nav .btn{width:auto}.album-chip{padding:8px 10px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item img,.gallery-item video{height:135px}}

/* Admin usability pass: sticky left menu, viewport-relative notices, less cramped attendee grid */
.admin-toast-stack{
  position:fixed;
  top:86px;
  left:50%;
  transform:translateX(-50%);
  z-index:6000;
  width:min(900px,calc(100vw - 32px));
  pointer-events:none;
}
.admin-toast-stack .admin-toast{
  margin:0 0 10px;
  box-shadow:0 14px 42px rgba(0,0,0,.18);
  pointer-events:auto;
}
.admin-layout{
  grid-template-columns:minmax(210px,240px) minmax(0,1fr);
  gap:28px;
}
.admin-menu{
  position:sticky;
  top:92px;
  max-height:calc(100vh - 116px);
  overflow:auto;
  z-index:10;
}
.admin-content{
  max-width:100%;
}
.admin-content #attendees .table-wrap{
  overflow-x:auto;
  overflow-y:visible;
}
.admin-content #attendees .table-wrap table{
  min-width:1480px;
}
.admin-content #attendees th{
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
}
.admin-content #attendees th:nth-child(1),
.admin-content #attendees td:nth-child(1){min-width:140px;width:140px;}
.admin-content #attendees th:nth-child(2),
.admin-content #attendees td:nth-child(2){min-width:130px;width:130px;}
.admin-content #attendees th:nth-child(3),
.admin-content #attendees td:nth-child(3){min-width:260px;width:260px;overflow-wrap:break-word;}
.admin-content #attendees th:nth-child(4),
.admin-content #attendees td:nth-child(4){min-width:90px;width:90px;text-align:left;}
.admin-content #attendees th:nth-child(5),
.admin-content #attendees td:nth-child(5){min-width:180px;width:180px;}
.admin-content #attendees th:nth-child(6),
.admin-content #attendees td:nth-child(6){min-width:210px;width:210px;}
.admin-content #attendees th:nth-child(7),
.admin-content #attendees td:nth-child(7){min-width:210px;width:210px;}
.admin-content #attendees th:nth-child(8),
.admin-content #attendees td:nth-child(8){min-width:260px;width:260px;}
.admin-content #attendees .actions-cell{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:flex-start;
  min-width:260px;
}
.admin-content #attendees .actions-cell .btn{
  white-space:nowrap;
}
.admin-content #attendees td,
.admin-content #attendees th{
  vertical-align:top;
}

@media(max-width:1100px){
  .admin-toast-stack{top:76px;width:calc(100vw - 24px)}
  .admin-layout{grid-template-columns:1fr;gap:18px}
  .admin-menu{
    position:sticky;
    top:72px;
    display:flex;
    gap:8px;
    max-height:none;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    z-index:900;
  }
  .admin-menu a{flex:0 0 auto;}
  .admin-content #attendees .table-wrap table{min-width:1400px;}
}

@media(max-width:760px){
  .admin-toast-stack{top:70px;width:calc(100vw - 18px)}
  .admin-menu{top:64px;margin-bottom:14px;}
  .admin-content #attendees .table-wrap table{min-width:1320px;}
  .admin-content #attendees th:nth-child(3),
  .admin-content #attendees td:nth-child(3){min-width:230px;width:230px;}
  .admin-content #attendees th:nth-child(8),
  .admin-content #attendees td:nth-child(8){min-width:250px;width:250px;}
}

/* QOL upgrades */
.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:18px 0}.summary-strip>div{background:#fbfaf7;border:1px solid var(--line);border-radius:16px;padding:14px}.summary-strip strong{display:block;font-size:1.5rem;line-height:1}.summary-strip span{display:block;color:var(--muted);font-size:.9rem;margin-top:5px}.preview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.email-preview-body{white-space:pre-wrap;background:#f6f1e8;border:1px solid var(--line);border-radius:14px;padding:14px;overflow:auto;max-height:420px}.attendee-card-list{display:none}.attendee-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;margin:12px 0;box-shadow:0 8px 22px rgba(0,0,0,.08)}.attendee-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.thanks-card{text-align:left}.copy-link-btn.copied{background:#1b5f49!important}
@media(max-width:720px){.admin-content #attendees>.table-wrap{display:none}.attendee-card-list{display:block}.attendee-card .actions-cell{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.attendee-card .actions-cell form{display:inline-block}.attendee-card .btn{width:auto}.summary-strip{grid-template-columns:1fr 1fr}.preview-grid{grid-template-columns:1fr}}
.admin-content #attendees th:nth-child(9),
.admin-content #attendees td:nth-child(9){min-width:300px;width:300px;}
@media(max-width:1100px){.admin-content #attendees .table-wrap table{min-width:1560px;}}
@media(max-width:760px){.admin-content #attendees .table-wrap table{min-width:1500px;}}

/* Super polish pass: admin layout, compressed RSVP table, toast behavior, RSVP choices */
.admin-section{padding-top:42px;}
.admin-container{width:min(1500px,calc(100% - 48px));margin-inline:auto;}
.admin-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:26px;align-items:start;overflow:visible;}
.admin-content{min-width:0;}
.admin-menu.card{position:sticky!important;top:88px;align-self:start;max-height:calc(100vh - 110px);overflow:auto;padding:16px;z-index:20;}
.admin-menu a{line-height:1.25;}
.admin-content #attendees .compact-attendee-wrap{overflow-x:visible;}
.admin-content #attendees .compact-attendee-wrap table,
.admin-content #attendees .table-wrap table.admin-attendee-table{min-width:0!important;width:100%;table-layout:fixed;}
.admin-attendee-table th:nth-child(1){width:31%;}
.admin-attendee-table th:nth-child(2){width:25%;}
.admin-attendee-table th:nth-child(3){width:18%;}
.admin-attendee-table th:nth-child(4){width:26%;}
.attendee-primary,.rsvp-cell{display:grid;gap:4px;min-width:0;}
.attendee-primary strong{font-size:1rem;}
.attendee-primary span,.attendee-primary a,.rsvp-cell span{overflow-wrap:anywhere;word-break:break-word;}
.comment-preview{color:var(--muted);font-size:.92rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.inline-error{display:inline-block;background:#fdecec;color:#7b1f1f;border:1px solid #efb2b2;border-radius:10px;padding:5px 7px;margin-top:5px;font-size:.82rem;}
.admin-content #attendees .actions-cell{min-width:0;display:flex;gap:7px;flex-wrap:wrap;align-items:flex-start;white-space:normal;}
.admin-content #attendees .actions-cell form{display:inline-flex;margin:0;}
.admin-content #attendees .actions-cell .btn{padding:7px 11px;font-size:.82rem;box-shadow:0 5px 12px rgba(0,0,0,.14);}
.admin-toast-stack{position:fixed!important;top:86px;left:50%;transform:translateX(-50%);width:min(860px,calc(100vw - 32px));z-index:3000;pointer-events:none;}
.admin-toast-stack .admin-toast{box-shadow:0 14px 34px rgba(0,0,0,.18);animation:toast-in .18s ease-out, toast-out .35s ease-in 3s forwards;pointer-events:auto;}
@keyframes toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes toast-out{to{opacity:0;transform:translateY(-10px);visibility:hidden}}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:8px 0 14px;}
.choice-card{display:flex;align-items:flex-start;gap:10px;margin:0;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff;cursor:pointer;}
.choice-card input{width:auto;margin-top:5px;}
.choice-card strong{display:block;}
.choice-card small{display:block;color:var(--muted);font-weight:500;}
.upload-hint{font-size:.92rem;color:var(--muted);}
@media(max-width:900px){
  .admin-container{width:min(100% - 24px,900px)}
  .admin-layout{grid-template-columns:1fr;gap:18px;}
  .admin-menu.card{position:sticky!important;top:62px;max-height:none;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;border-radius:16px;z-index:900;}
  .admin-menu a{flex:0 0 auto;background:#f8f3ea;}
  .admin-content #attendees .compact-attendee-wrap{display:none;}
  .attendee-card-list{display:block;}
}
@media(min-width:901px){.admin-content #attendees .compact-attendee-wrap{display:block}.attendee-card-list{display:none!important}}
@media(max-width:640px){
  .admin-toast-stack{top:70px;width:calc(100vw - 18px)}
  .summary-strip{grid-template-columns:1fr 1fr;}
  .choice-grid{grid-template-columns:1fr;}
  .attendee-card .actions-cell .btn{width:auto;}
}


/* 2026-05-04 full-site upgrade polish */
.nav a.active{color:var(--brand2)}
.update-link-card{margin-top:28px}.compact-form{margin-top:10px}.form-button-cell{display:flex;align-items:end}.sticky-rsvp{display:none;position:fixed;left:16px;right:16px;bottom:16px;z-index:1200;text-align:center;text-decoration:none;background:var(--brand);color:#fff;border-radius:999px;padding:14px 18px;font-weight:800;box-shadow:var(--shadow)}
.gallery-grid .gallery-item{position:relative;overflow:hidden}.gallery-grid .caption{background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-weight:800;font-size:.78rem;background:#ede7dc}.status-yes{background:#dff3e9;color:#14513d}.status-waitlist{background:#fff3c9;color:#725200}.status-no{background:#f8d8d8;color:#7b1f1f}.danger{background:var(--danger)!important;color:#fff!important}.danger:hover{filter:brightness(.95)}
.table-wrap{overflow:auto}.email-preview-body code, pre.email-preview-body{white-space:pre-wrap;overflow:auto}
@media(max-width:720px){.sticky-rsvp{display:block}.site-footer{padding-bottom:74px}.form-button-cell .btn{width:100%}}


/* v3 experience/admin polish */
.section-tight{padding-top:1.25rem;padding-bottom:1.25rem}.event-hub-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border:1px solid rgba(255,255,255,.14)}.hub-actions{justify-content:flex-end}.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;opacity:.75}.mini-albums{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.15rem}.mini-album{display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--text);box-shadow:0 10px 28px rgba(0,0,0,.08);transition:transform .18s ease,box-shadow .18s ease}.mini-album:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.12)}.mini-album-media{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#ece6dc}.mini-album-media img,.mini-album-media video{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}.mini-album-body{display:block;padding:.9rem 1rem 1rem}.mini-album-body strong{display:block;color:var(--text);font-size:1rem;line-height:1.2}.mini-album-body em{display:block;margin-top:.28rem;color:var(--muted);font-style:normal;font-size:.88rem}.mini-album-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f7a5a,#282828);color:#fff;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.feature-card{padding:2rem}.event-guide-card .nice-list{margin:.75rem 0 1rem;padding-left:1.2rem}.event-guide-card li{margin:.45rem 0}.checkin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-top:1rem}.checkin-card h2{margin-bottom:.25rem}.status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .6rem;font-weight:800;font-size:.8rem}.status-pill.ok{background:rgba(25,135,84,.18);color:#55d98b}.status-pill.bad{background:rgba(220,53,69,.18);color:#ff7b86}.admin-overview h3{margin-top:1.4rem}.form-button-cell{display:flex;align-items:end}.compact-form .form-row{align-items:end}.event-detail-strong{font-size:1.1rem;font-weight:800}.choice-card input[type=checkbox]{width:auto}.table-wrap code{white-space:normal}.admin-menu a[href="/admin/checkin.php"],.admin-menu a[href="/admin/health.php"]{font-weight:800}
@media (max-width:760px){.event-hub-card{display:block}.hub-actions{justify-content:flex-start;margin-top:1rem}.checkin-grid{grid-template-columns:1fr}.form-button-cell{align-items:stretch}.form-button-cell .btn{width:100%}}


.album-cover-card{position:relative;overflow:hidden;min-height:138px;padding:0;background:#151515;color:#fff;box-shadow:0 16px 44px rgba(0,0,0,.16)}
.album-cover-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .25s ease,filter .25s ease}
.album-cover-card:hover img{transform:scale(1.04);filter:saturate(1.08)}
.album-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.72));}
.album-cover-text{position:absolute;left:14px;right:14px;bottom:13px;z-index:2;text-shadow:0 2px 14px rgba(0,0,0,.65)}
.album-cover-text strong{display:block;color:#fff;font-size:1rem;line-height:1.15}.album-cover-text em{display:block;color:rgba(255,255,255,.88);font-style:normal;font-size:.86rem;margin-top:.25rem}.album-cover-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f7a5a,#282828);font-weight:900;letter-spacing:.08em;text-transform:uppercase}.reminder-schedule-card code{white-space:normal;word-break:break-word}


/* v5 mini gallery hardening */
.album-cover-card,.album-cover-shade,.album-cover-text,.album-cover-fallback{all:unset}
@media (max-width:760px){.mini-albums{grid-template-columns:1fr 1fr}.mini-album-media{aspect-ratio:1/1}}
@media (max-width:560px){.mini-albums{grid-template-columns:1fr}}


/* v7 admin speed/polish */
.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:1.2rem 0 1.6rem}
.health-tile{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1rem;box-shadow:0 8px 24px rgba(0,0,0,.07);display:grid;gap:.45rem}
.health-tile.ok{border-color:#cde8d8}.health-tile.bad{border-color:#efb2b2}
.health-tile code{display:block;white-space:normal;word-break:break-word;font-size:.82rem}
.split-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.checkin-edit-card{margin:1rem 0}.checkin-table-wrap{margin-top:1rem}.checkin-table th,.checkin-table td{vertical-align:middle}.checkin-table .actions-cell{min-width:260px}
.admin-menu a{transition:background .15s ease,color .15s ease}.admin-menu a:hover{background:#e8f7f0;color:#174f3d}
.admin-overview .summary-strip,.summary-strip{margin:1rem 0}
@media(max-width:760px){.split-header{display:block}.checkin-table{min-width:860px}.health-grid{grid-template-columns:1fr}}


/* v9 optional seat prepay */
.payment-card{grid-column:1/-1;border:1px solid #d7eadf;background:linear-gradient(180deg,#ffffff,#f7fffb)}
.payment-card-compact{grid-column:auto}.payment-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin:1rem 0}
.payment-price-grid div{background:#eef9f3;border:1px solid #cfeadb;border-radius:16px;padding:1rem;text-align:center}
.payment-price-grid strong{display:block;font-size:1.45rem;color:#174f3d}.payment-price-grid span{display:block;color:var(--muted);font-weight:700}
.payment-method-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.85rem;margin:1rem 0}
.payment-method{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;display:grid;gap:.45rem}
.payment-method code{display:block;word-break:break-word}.payment-method small{color:var(--muted)}
.payment-claim-form{margin-top:1rem}.payment-mini{display:grid;gap:.2rem}.payment-mini span{color:var(--muted);font-size:.9rem}.inline-payment-form select{padding:7px 8px;border-radius:10px;margin-top:.35rem}
.payment-method-admin{background:#fbfaf7}.payment-method-admin h4{margin-top:0}


/* v10 RSVP/prepay placement and calendar fix polish */
.rsvp-payment-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);gap:1.25rem;align-items:start}
.rsvp-main-form{height:max-content}.rsvp-payment-side{position:sticky;top:92px}.rsvp-payment-side .payment-card{margin:0}
.rsvp-payment-side .payment-card h2{margin-top:.15rem}.rsvp-payment-side .payment-price-grid{grid-template-columns:repeat(3,1fr)}
.rsvp-payment-side .payment-price-grid strong{font-size:1.18rem}.rsvp-payment-side .payment-method-grid{grid-template-columns:1fr}
@media(max-width:950px){.rsvp-payment-layout{grid-template-columns:1fr}.rsvp-payment-side{position:static;order:-1}.rsvp-payment-side .payment-price-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}}


/* v11 payment click/copy helpers */
.payment-actions{margin-top:.35rem;gap:.45rem}.payment-actions .btn{width:max-content}
.copyable{cursor:pointer}.payment-method .btn.small{padding:.55rem .8rem}
.rsvp-payment-side .payment-actions{align-items:flex-start}.rsvp-payment-side .payment-actions .btn{width:100%}
@media(max-width:950px){.payment-actions .btn{width:auto}.rsvp-payment-side .payment-actions .btn{width:auto}}


/* v12 compact audit page */
.compact-audit-wrap table{min-width:900px}.compact-audit-table th,.compact-audit-table td{padding:.55rem .7rem;font-size:.9rem;vertical-align:top}
.compact-audit-table td:nth-child(4){max-width:520px;white-space:normal;overflow-wrap:anywhere}.compact-audit-table code{font-size:.82rem}


/* v13 event flow + Immich share */
.event-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;align-items:stretch}
.event-overview-grid>.card{min-width:0}
.event-overview-grid .poker-summary{grid-column:1/-1}
.event-overview-grid .event-guide-card{grid-column:1/-1}
.event-overview-grid .payment-card{grid-column:1/-1}
.guide-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin:.75rem 0 1rem!important;padding-left:0!important;list-style:none}
.guide-list li{margin:0!important;background:#fbfaf7;border:1px solid var(--line);border-radius:14px;padding:.85rem}
.immich-share-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,220px);gap:1.25rem;align-items:center;background:linear-gradient(180deg,#fff,#f7fffb);border-color:#d7eadf}
.immich-share-card-compact{grid-column:auto}
.immich-share-copy{min-width:0}.immich-url{word-break:break-all;font-size:.9rem;margin-bottom:0}.immich-qr{display:block;justify-self:end;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 8px 24px rgba(0,0,0,.08)}.immich-qr img{display:block;width:min(100%,190px);height:auto}
@media(max-width:980px){.event-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.guide-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.event-overview-grid{grid-template-columns:1fr}.guide-list{grid-template-columns:1fr}.immich-share-card{grid-template-columns:1fr}.immich-qr{justify-self:start}.immich-qr img{width:180px}}

/* v14 editable emails + Immich gallery link cards */
.template-editor{min-height:220px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.92rem;line-height:1.45;white-space:pre-wrap}
.external-gallery-link{text-decoration:none;color:inherit;background:#101010}
.external-gallery-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:180px;background:linear-gradient(135deg,#1f7a5a,#282828);color:#fff;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.gallery-grid a.gallery-item{display:block;border:0;text-align:left;cursor:pointer}

/* v15 Immich public-share gallery previews */
.gallery-grid .gallery-item .caption{position:absolute;left:0;right:0;bottom:0;padding:34px 12px 12px;z-index:2;min-height:76px}
.external-gallery-fallback{font-size:.95rem;text-align:center;padding:0 16px;line-height:1.25}
.gallery-grid a.gallery-item{min-height:210px;color:inherit}
.gallery-grid a.gallery-item img{height:210px}
.gallery-grid button.gallery-item[data-external-url]::after{content:'Open in Immich';position:absolute;right:10px;top:10px;background:rgba(0,0,0,.65);color:#fff;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800;z-index:3}
@media(max-width:760px){.gallery-grid a.gallery-item{min-height:155px}.gallery-grid a.gallery-item img{height:155px}.gallery-grid .gallery-item .caption{padding:28px 10px 10px;min-height:68px;font-size:.82rem}}
@media(max-width:480px){.gallery-grid a.gallery-item{min-height:135px}.gallery-grid a.gallery-item img{height:135px}}

/* v17 compartmentalized admin dashboard */
.admin-content [hidden], .admin-landing[hidden], .admin-config-save-actions[hidden]{display:none!important}
.admin-start-card{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;margin-bottom:1rem;background:linear-gradient(180deg,#fff,#fbfaf7)}
.admin-start-card h2{margin:.1rem 0 .3rem}
.admin-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1rem 0 1.25rem}
.admin-category-card{display:block;text-decoration:none;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:18px;padding:1rem;box-shadow:0 10px 28px rgba(0,0,0,.07);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.admin-category-card:hover,.admin-category-card.active{transform:translateY(-2px);border-color:#b9dfcf;background:#f7fffb;box-shadow:0 16px 34px rgba(0,0,0,.1)}
.admin-category-card strong{display:block;margin-bottom:.35rem;font-size:1rem}
.admin-category-card span{display:block;color:var(--muted);font-size:.92rem;line-height:1.35}
.admin-menu a.active{background:#1f7a5a;color:#fff}
.admin-panel-active{animation:adminPanelIn .14s ease-out}
@keyframes adminPanelIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.admin-config-save-actions{position:sticky;bottom:12px;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:.85rem;box-shadow:0 16px 38px rgba(0,0,0,.12);margin-top:1rem}
@media(max-width:900px){.admin-start-card{display:block}.admin-start-card .actions{margin-top:.9rem}.admin-category-grid{grid-template-columns:1fr 1fr}.admin-config-save-actions{bottom:8px}}
@media(max-width:560px){.admin-category-grid{grid-template-columns:1fr}.admin-start-card .actions .btn{width:100%}}

/* v18 gallery modal navigation */
body.modal-open{overflow:hidden}
.modal{touch-action:pan-y}
.modal-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5001;width:54px;height:54px;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:#111;font-size:44px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.modal-prev{left:28px}
.modal-next{right:28px}
.modal-nav:hover,.modal-close:hover{background:#fff}
@media(max-width:760px){.modal{padding:60px 18px 28px}.modal-nav{width:46px;height:46px;font-size:38px;background:rgba(255,255,255,.82)}.modal-prev{left:12px}.modal-next{right:12px}.modal-close{top:12px;right:12px}.modal img,.modal video{max-width:calc(100vw - 36px);max-height:calc(100vh - 110px)}}


/* v19 finish polish */
.calendar-menu{position:relative;display:inline-block}.calendar-menu-list{display:none;position:absolute;left:0;top:calc(100% + 8px);min-width:220px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 42px rgba(0,0,0,.16);z-index:40;overflow:hidden}.calendar-menu.open .calendar-menu-list{display:block}.calendar-menu-list a{display:block;padding:.82rem 1rem;color:var(--text);text-decoration:none;font-weight:800}.calendar-menu-list a:hover{background:#f7fffb;color:#174f3d}.readiness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin:1rem 0 1.4rem}.readiness-item{border:1px solid var(--line);border-radius:16px;padding:.85rem;background:#fff}.readiness-item.ok{border-color:#cfeadb;background:#f7fffb}.readiness-item.bad{border-color:#efc2c2;background:#fff8f8}.readiness-item strong{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.readiness-item span{display:block;font-weight:900;margin:.2rem 0}.readiness-item small{display:block;color:var(--muted);overflow-wrap:anywhere}.event-update-box textarea{min-height:140px}.archive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.25rem}.archive-card{position:relative;display:block;min-height:210px;border-radius:22px;overflow:hidden;text-decoration:none;color:#fff;background:linear-gradient(135deg,#1f7a5a,#282828);box-shadow:0 16px 36px rgba(0,0,0,.16)}.archive-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.archive-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.74))}.archive-body{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;text-shadow:0 2px 14px rgba(0,0,0,.55)}.archive-body strong{display:block;color:#fff;font-size:1.12rem}.archive-body em,.archive-body small{display:block;color:rgba(255,255,255,.9);font-style:normal;margin-top:.25rem}.inline-attended-form{display:inline-block}.attendee-card .actions-cell form{display:inline-block}
@media(max-width:700px){.calendar-menu,.calendar-menu-button{width:100%}.calendar-menu-list{position:static;margin-top:.5rem;width:100%}.archive-grid{grid-template-columns:1fr}}


.like-badge{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.62);color:#fff;border-radius:999px;padding:5px 9px;font-weight:800;font-size:.88rem;backdrop-filter:blur(8px)}
.gallery-item{position:relative;overflow:hidden}.modal-like{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1002;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:#9f1239;font-weight:900;font-size:1.05rem;padding:10px 16px;box-shadow:0 12px 40px rgba(0,0,0,.22);cursor:pointer}.modal-like:hover{background:#fff}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{border-bottom:1px solid rgba(255,255,255,.12);padding:8px;text-align:left;vertical-align:top}.data-table code{font-size:.82rem}.db-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.db-stat{border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:14px;background:rgba(255,255,255,.04)}.db-stat strong{font-size:1.45rem;display:block}


.gallery-item { position: relative; }
.gallery-like-btn {
  position: absolute;
  right: 10px;
  top: 10px;
  z-index: 3;
  border: 0;
  border-radius: 999px;
  background: rgba(0,0,0,.72);
  color: #fff;
  padding: 7px 10px;
  font-weight: 800;
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
  cursor: pointer;
  line-height: 1;
}
.gallery-like-btn:hover,
.gallery-like-btn.liked,
.gallery-like-btn:focus { transform: scale(1.04); outline: 2px solid rgba(255,255,255,.6); }
.gallery-item .caption { padding-right: 72px; }
.modal-like { cursor: pointer; }
.db-stat-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap:12px; }
.db-stat { border:1px solid var(--border, #ddd); border-radius:14px; padding:12px; background: rgba(255,255,255,.72); }
.db-stat strong { display:block; font-size:1.35rem; }

/* Gallery like polish and toggle state */
.gallery-like-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 44px;
  justify-content: center;
  padding: 7px 10px;
}
.gallery-like-heart { line-height: 1; }
.gallery-like-count {
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  background: transparent !important;
  color: inherit !important;
  border-radius: 0 !important;
  padding: 0 !important;
  font-weight: 900;
  font-size: .86rem;
  line-height: 1;
  backdrop-filter: none !important;
}
.gallery-like-btn.liked,
.modal-like.liked {
  background: rgba(159,18,57,.94);
  color: #fff;
}


/* Admin nav cleanup and analytics tables */
.admin-menu-heading{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900;color:var(--muted);margin:14px 10px 6px}.admin-menu-heading:first-child{margin-top:0}.admin-menu-grouped a{margin-bottom:2px}.data-table td,.data-table th{overflow-wrap:normal;word-break:normal}.data-table code{white-space:nowrap}.db-stat span{color:var(--muted);font-size:.9rem}

/* Public attendees table column polish */
body .table-wrap table th:nth-child(2),body .table-wrap table td:nth-child(2){min-width:72px;white-space:nowrap}body .table-wrap table th:nth-child(3),body .table-wrap table td:nth-child(3){min-width:70px;white-space:nowrap}body .table-wrap table th:nth-child(4),body .table-wrap table td:nth-child(4){min-width:120px}body .table-wrap table th:nth-child(5),body .table-wrap table td:nth-child(5){min-width:220px}body .table-wrap table th:nth-child(7),body .table-wrap table td:nth-child(7){min-width:180px}

/* Stronger gallery like badge layout */
.gallery-like-btn{display:inline-flex!important;align-items:center!important;gap:6px!important;min-width:52px!important;line-height:1!important;padding:8px 11px!important}.gallery-like-btn .gallery-like-heart{display:inline-block!important;line-height:1!important}.gallery-like-btn .gallery-like-count{display:inline-block!important;position:static!important;transform:none!important;background:transparent!important;color:inherit!important;padding:0!important;margin:0!important;min-width:1.2em!important;text-align:left!important;line-height:1!important}

/* Upload album is intentionally fixed */
#galleryUploadForm input[readonly]{background:#f8f3ea;color:var(--muted);cursor:not-allowed}

/* Event platform admin polish */
.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:14px 0}.summary-strip>div{background:#faf7f1;border:1px solid #e7ded1;border-radius:14px;padding:12px}.summary-strip strong{display:block;font-size:1.35rem}.danger{background:#8b1e1e!important;color:#fff!important}.admin-menu a[href$="events-manager.php"],.admin-menu a[href$="event-dashboard.php"],.admin-menu a[href$="guest-history.php"],.admin-menu a[href$="invite-list.php"],.admin-menu a[href$="privacy-retention.php"],.admin-menu a[href$="backups.php"]{font-weight:600}

/* v12 admin shell and structured Immich editor */
.admin-page-actions{margin:.5rem 0 1rem}
.admin-menu .active{background:#dff3e9;color:#174f3d;font-weight:900}
.admin-content .container{width:100%;padding:0;margin:0}
.inline-check{display:inline-flex!important;align-items:center;gap:.45rem;margin:.3rem 0 0;font-weight:700;color:var(--text)}
.inline-check input{width:auto!important;margin:0}
.immich-link-rows{display:grid;gap:1rem;margin:1rem 0}
.immich-link-row{border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.06);padding:.75rem 1rem 1rem}
.immich-link-row summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;font-weight:900;color:var(--text);list-style:none}
.immich-link-row summary::-webkit-details-marker{display:none}
.immich-link-row summary span{overflow-wrap:anywhere}
.immich-link-row[open] summary{border-bottom:1px solid var(--line);padding-bottom:.75rem;margin-bottom:.9rem}
.clickable-table tbody tr{transition:background .12s ease}
.clickable-table tbody tr:hover{background:#f8f3ea}
.admin-menu-grouped{align-self:start}
@media(max-width:900px){.admin-page-actions{display:flex;overflow:auto;white-space:nowrap}.immich-link-row summary{align-items:flex-start}.immich-link-row summary .btn{flex:0 0 auto}}

/* v13.2 polish */
.btn.danger { background: #7f1d1d; border-color: #7f1d1d; color: #fff; }
.btn.danger:hover { filter: brightness(1.08); }
.subtle-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); margin: 14px 0; }
.inline-form { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }


/* v14 admin polish */
.admin-table.nowrap-table th,.admin-table.nowrap-table td{white-space:nowrap;word-break:normal;overflow-wrap:normal;vertical-align:top}.admin-table .email-cell{min-width:220px}.admin-table .actions-cell{min-width:160px}.inline-form{display:inline-flex;gap:.5rem;align-items:center;flex-wrap:wrap}.badge{display:inline-block;padding:.25rem .55rem;border-radius:999px;background:#efe9de;font-weight:700}.admin-notices{display:grid;gap:.5rem;margin:0 0 1rem}.admin-notice{padding:.7rem 1rem;border-radius:12px;background:#fff8df;border:1px solid #e8d9a9}.admin-notice.error{background:#fdecec;border-color:#efb0b0}.admin-notice.warning{background:#fff8df;border-color:#e8d9a9}.admin-notice a{font-weight:700}.subtle-card{background:#faf8f3}


/* v14.1 user-facing polish */
.captcha-inline{margin:12px 0 18px 0}.captcha-inline .captcha-wrap{margin:0;padding:0;background:transparent;border:0;box-shadow:none}.disabled-like{opacity:.72;cursor:not-allowed}.gallery-like-notice{margin:14px 0}.account-hero{display:flex;align-items:center;justify-content:space-between;gap:18px}.account-summary{display:flex;flex-direction:column;gap:6px;text-align:right;color:var(--muted)}.small-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.small-stat-grid div{padding:14px;border-radius:14px;background:rgba(0,0,0,.035);text-align:center}.small-stat-grid strong{display:block;font-size:1.5rem}.small-stat-grid span{font-size:.85rem;color:var(--muted)}.account-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;border-bottom:1px solid rgba(0,0,0,.08);padding:10px 0}.account-event-row:last-child{border-bottom:0}.checkline{display:flex;gap:10px;align-items:center}.admin-table.nowrap-table th,.admin-table.nowrap-table td{white-space:nowrap}.admin-table.nowrap-table td:first-child,.admin-table.nowrap-table th:first-child{white-space:normal}@media(max-width:700px){.account-hero{align-items:flex-start;flex-direction:column}.account-summary{text-align:left}.account-event-row{grid-template-columns:1fr}.small-stat-grid{grid-template-columns:1fr}}

/* v14.2 end-user and event manager polish */
.account-actions-inline{display:inline-flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.mini-list{margin-top:18px}.mini-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid rgba(0,0,0,.08)}.wrap-cell{white-space:normal!important;min-width:240px}.admin-table.nowrap-table .wrap-cell{white-space:normal!important}.form input[type=datetime-local],.form select,.admin-form select{min-height:42px}.account-event-row .account-actions-inline .btn{white-space:nowrap}@media(max-width:800px){.mini-row{grid-template-columns:1fr}.account-actions-inline{justify-content:flex-start}.form-row{grid-template-columns:1fr!important}}

/* v14.3 role based admin polish */
.user-role-table td{vertical-align:top}.user-role-table .nowrap,.nowrap{white-space:nowrap}.role-form{min-width:360px}.role-form select{min-width:180px}.priv-grid{display:grid;grid-template-columns:repeat(3,minmax(105px,1fr));gap:6px 12px;margin:8px 0}.priv-grid label{font-size:.86rem;white-space:nowrap}.small-label{font-size:.85rem;font-weight:700}.badge{display:inline-block;white-space:nowrap;padding:.16rem .45rem;border-radius:999px;background:rgba(0,0,0,.07)}


/* v14.4 user management and referral polish */
.user-card-list,.referral-card-list{display:grid;gap:18px;margin-top:18px}.user-admin-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);gap:22px;align-items:start}.user-id-block h2,.referral-admin-card h2{margin:.1rem 0 .25rem;font-size:1.25rem}.user-email-link{display:inline-block;max-width:100%;overflow-wrap:anywhere}.user-pill-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.user-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.user-metrics span{background:#f7f2ea;border:1px solid var(--line);border-radius:14px;padding:10px}.user-metrics strong{display:block;font-size:.95rem;line-height:1.3;overflow-wrap:anywhere}.user-privileges-form{background:#fbf8f3;border:1px solid var(--line);border-radius:18px;padding:16px}.user-privileges-form select{max-width:360px}.priv-chip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.priv-chip{display:flex;align-items:center;gap:8px;margin:0;padding:9px 10px;background:#fff;border:1px solid var(--line);border-radius:999px;font-size:.9rem;white-space:nowrap}.priv-chip input{width:auto;margin:0}.user-action-row{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);padding-top:14px}.referral-admin-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr) auto;gap:18px;align-items:start}.referral-meta{display:grid;gap:6px}.referral-note{margin:.75rem 0 0}.referral-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}.referral-actions .btn{white-space:nowrap}.notice.small{padding:8px 10px;margin:4px 0;font-size:.85rem}
@media(max-width:1180px){.user-admin-card,.referral-admin-card{grid-template-columns:1fr}.user-action-row{justify-content:flex-start}.referral-actions{flex-direction:row;flex-wrap:wrap}.referral-actions .btn{width:auto}.priv-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.user-metrics,.priv-chip-grid{grid-template-columns:1fr}.user-privileges-form select{max-width:100%}.user-action-row .btn,.referral-actions .btn{width:100%}}


/* v14.5 polish */
.user-admin-card { overflow: visible; }
.user-privileges-form { display: grid; gap: 12px; align-items: start; }
.priv-chip-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px 12px; }
.priv-chip { white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.user-action-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.referral-admin-card { display: grid; gap: 14px; }
.referral-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gallery-item video { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px) { .priv-chip-grid { grid-template-columns: 1fr 1fr; } }


/* v14.6 permissions and RSVP polish */
.desktop-rsvp-jump{position:sticky;top:0;z-index:950;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 8px 20px rgba(0,0,0,.06);backdrop-filter:blur(10px)}
.desktop-rsvp-jump-inner{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:10px 0}.desktop-rsvp-jump-inner span{color:var(--muted);font-weight:600}.desktop-rsvp-jump .btn{white-space:nowrap}.user-privileges-form .small-label{display:block}.priv-chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px;margin:10px 0 14px}.priv-chip{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid rgba(0,0,0,.10);border-radius:999px;background:rgba(255,255,255,.72);white-space:nowrap}.priv-chip input{width:auto}.user-card-list{display:grid;gap:16px}.user-admin-card{display:grid;gap:16px}.user-action-row{display:flex;flex-wrap:wrap;gap:10px}.user-pill-row,.user-metrics{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}.user-email-link{overflow-wrap:anywhere}
@media(max-width:720px){.desktop-rsvp-jump{display:none}}


/* v14.7 RSVP shortcut and dark mode */
html{color-scheme:light;scroll-behavior:smooth}
html[data-theme="dark"]{color-scheme:dark;--bg:#111412;--card:#1b211e;--text:#f2f4f0;--muted:#b5bdb6;--brand:#2f9b73;--brand2:#7ee0ba;--dark:#0c0f0d;--line:#344039;--danger:#d24d4d;--shadow:0 12px 35px rgba(0,0,0,.42)}
html[data-theme="dark"] body{background:var(--bg);color:var(--text)}
html[data-theme="dark"] .site-header{background:rgba(10,12,11,.96);border-bottom:1px solid rgba(255,255,255,.08)}
html[data-theme="dark"] .card,html[data-theme="dark"] .form,html[data-theme="dark"] .table-wrap,html[data-theme="dark"] .gallery-item,html[data-theme="dark"] .health-tile,html[data-theme="dark"] .admin-edit-box,html[data-theme="dark"] .user-privileges-form{background:var(--card);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] input,html[data-theme="dark"] textarea,html[data-theme="dark"] select{background:#121714;color:var(--text);border-color:#47554d}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:#89938c}
html[data-theme="dark"] th{background:#232b26;color:var(--text)}
html[data-theme="dark"] td,html[data-theme="dark"] th{border-color:var(--line)}
html[data-theme="dark"] .muted{color:var(--muted)}
html[data-theme="dark"] .btn.secondary{background:#3a423d}
html[data-theme="dark"] .site-footer{background:#090b0a;border-top:1px solid rgba(255,255,255,.08)}
html[data-theme="dark"] .admin-menu a{color:var(--text)}
html[data-theme="dark"] .admin-menu a:hover,html[data-theme="dark"] .admin-menu a.active{background:#25382f;color:#a6f0d2}
html[data-theme="dark"] .admin-menu-heading{color:#cad3cc}
html[data-theme="dark"] .desktop-rsvp-jump{background:rgba(23,28,25,.96);border-bottom-color:rgba(255,255,255,.10);box-shadow:0 8px 20px rgba(0,0,0,.25)}
html[data-theme="dark"] .notice{background:#10271c;border-color:#285e43;color:#b9f2d2}
html[data-theme="dark"] .notice.error,html[data-theme="dark"] .error{background:#301717;border-color:#7f3434;color:#ffbaba}
html[data-theme="dark"] code,html[data-theme="dark"] .user-metrics span,html[data-theme="dark"] .guide-list li,html[data-theme="dark"] .payment-price-grid div,html[data-theme="dark"] .payment-method,html[data-theme="dark"] .payment-method-admin{background:#151b18;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .priv-chip{background:#151b18;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .album-chip{background:#151b18;border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .album-chip.active,html[data-theme="dark"] .album-chip:hover{background:var(--brand);color:#fff}
.rsvp-nav-btn{background:#2f9b73!important;color:#fff!important;box-shadow:0 6px 16px rgba(47,155,115,.24)}
.rsvp-nav-btn:hover{background:#247a5c!important;color:#fff!important}
.theme-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.10);color:#fff;border-radius:999px;padding:8px 12px;font:inherit;font-weight:800;cursor:pointer;line-height:1;white-space:nowrap}
.theme-toggle:hover{background:rgba(255,255,255,.18)}
.theme-icon{font-size:1rem;line-height:1}.theme-label{font-size:.88rem}
html[data-theme="dark"] .theme-toggle{border-color:rgba(126,224,186,.38);background:rgba(47,155,115,.18)}
@media(max-width:760px){.theme-toggle{margin-top:4px}.rsvp-nav-btn{order:-2}.theme-toggle{order:99}}

/* v14.8 dark mode RSVP choice card readability */
html[data-theme="dark"] .choice-card{
  background:#17211c;
  border-color:#4a5c52;
  color:var(--text);
}
html[data-theme="dark"] .choice-card strong{
  color:#f6fff9;
}
html[data-theme="dark"] .choice-card small{
  color:#c5d2c8;
}
html[data-theme="dark"] .choice-card:has(input:checked){
  background:#1f3a2e;
  border-color:var(--brand2);
  box-shadow:0 0 0 2px rgba(126,224,186,.18);
}
html[data-theme="dark"] .choice-card:hover{
  border-color:var(--brand2);
}
html[data-theme="dark"] .choice-card input[type="radio"]{
  accent-color:var(--brand2);
}


/* v14.9 dark mode home/index readability and phone field polish */
html[data-theme="dark"] .mini-album,
html[data-theme="dark"] .mini-album-body{
  background:var(--card);
  border-color:var(--line);
  color:var(--text);
}
html[data-theme="dark"] .mini-album-body strong{color:var(--text);}
html[data-theme="dark"] .mini-album-body em{color:var(--muted);}
html[data-theme="dark"] .mini-album-media{background:#111714;}
html[data-theme="dark"] .event-hub-card,
html[data-theme="dark"] .section .grid .card{
  background:var(--card);
  border-color:var(--line);
  color:var(--text);
}
html[data-theme="dark"] .home-card,
html[data-theme="dark"] .feature-card{background:var(--card);color:var(--text);}
input[data-phone-format="1"]{letter-spacing:.02em;}
input[data-phone-format="1"]:invalid:not(:placeholder-shown){border-color:var(--danger);box-shadow:0 0 0 3px rgba(166,41,41,.12)}

/* v14.10 profile/logout nav polish */
.nav{flex:1;justify-content:flex-end;}
.profile-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.10);color:#fff!important;line-height:1;white-space:nowrap;}
.profile-btn:hover{background:rgba(255,255,255,.18);color:#fff!important;}
.profile-icon{font-size:.95rem;line-height:1;}
.profile-label{font-weight:800;}
.profile-name{font-weight:700;opacity:.86;}
.logout-btn{margin-left:auto;background:#1f2a25!important;border:1px solid rgba(255,255,255,.18);box-shadow:none;}
.logout-btn:hover{background:#a62929!important;color:#fff!important;}
html[data-theme="dark"] .profile-btn{border-color:rgba(126,224,186,.38);background:rgba(47,155,115,.18);}
html[data-theme="dark"] .profile-btn:hover{background:rgba(47,155,115,.30);}
html[data-theme="dark"] .logout-btn{background:#222a25!important;border-color:#3d4942;}
html[data-theme="dark"] .logout-btn:hover{background:#b73a3a!important;}
@media(max-width:760px){.nav{align-items:stretch;}.profile-btn{width:100%;justify-content:flex-start;}.logout-btn{margin-left:0;margin-top:8px;width:100%;}.profile-name{margin-left:auto;}.theme-toggle{width:100%;justify-content:center;}}


/* v14.11 nav/admin/modal/mobile polish */
.admin-nav-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;background:#b42323!important;color:#fff!important;border:1px solid rgba(255,255,255,.22);font-weight:900;box-shadow:0 6px 16px rgba(180,35,35,.24);white-space:nowrap;}
.admin-nav-btn:hover{background:#8f1d1d!important;color:#fff!important;}
.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font-weight:900;line-height:1;}
.profile-btn:hover .profile-avatar{background:rgba(255,255,255,.28);}
html[data-theme="dark"] .profile-avatar{background:rgba(126,224,186,.22);color:#d7ffef;}
html[data-theme="dark"] .admin-nav-btn{background:#c23838!important;border-color:rgba(255,255,255,.22);}
html[data-theme="dark"] .admin-nav-btn:hover{background:#e34a4a!important;}
html[data-theme="dark"] .modal-close,
html[data-theme="dark"] .modal-nav{background:rgba(18,24,21,.94);color:#f3fff9;border:1px solid rgba(255,255,255,.25);box-shadow:0 10px 34px rgba(0,0,0,.45);}
html[data-theme="dark"] .modal-close:hover,
html[data-theme="dark"] .modal-nav:hover{background:rgba(34,45,39,.98);color:#fff;}
@media(max-width:760px){
  .profile-btn{width:auto;align-self:flex-start;padding:8px 12px;}
  .profile-avatar{width:34px;height:34px;font-size:1rem;}
  .profile-label{font-weight:900;}
  .profile-name{display:none;}
  .admin-nav-btn{width:auto;align-self:flex-start;}
  .mini-albums{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;}
  .mini-album{border-radius:14px;}
  .mini-album-media{aspect-ratio:4/3;}
  .mini-album-body{padding:.55rem .65rem .7rem;}
  .mini-album-body strong{font-size:.82rem;line-height:1.15;}
  .mini-album-body em{font-size:.72rem;line-height:1.2;}
}
@media(max-width:420px){
  .mini-albums{grid-template-columns:repeat(2,minmax(0,1fr));}
  .mini-album-body strong{font-size:.78rem;}
  .mini-album-body em{font-size:.68rem;}
}


/* v14.12 fixed header and mobile profile placement */
body{padding-top:70px;}
.site-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:10000;}
.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto;}
.mobile-header-profile{display:none;}
.desktop-nav-profile{display:inline-flex;}
.profile-btn{min-height:38px;}
.profile-btn .profile-label::after{content:':';}
@media(max-width:760px){
  body{padding-top:62px;}
  .nav-wrap{min-height:62px;}
  .brand{min-width:0;}
  .brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw;}
  .mobile-header-profile{display:inline-flex!important;width:auto!important;max-width:46vw;justify-content:center;align-self:center;padding:7px 10px;font-size:.82rem;gap:5px;}
  .mobile-header-profile .profile-name{display:inline;max-width:24vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:0;}
  .mobile-header-profile .profile-label{display:inline;font-weight:900;}
  .nav .desktop-nav-profile{display:none!important;}
  .nav{position:fixed;top:62px;z-index:9999;max-height:calc(100vh - 62px);overflow-y:auto;}
  .header-actions{margin-left:auto;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);}
  html[data-theme="dark"] .nav-toggle{background:rgba(126,224,186,.10);border-color:rgba(126,224,186,.28);}
}
@media(max-width:420px){
  .brand span{display:none;}
  .mobile-header-profile{max-width:62vw;}
  .mobile-header-profile .profile-name{max-width:35vw;}
}


/* v14.13 compact single-row header button polish */
@media (min-width: 761px){
  body{padding-top:58px;}
  .site-header .container.nav-wrap{
    width:calc(100% - 28px);
    max-width:none;
    min-height:58px;
    gap:12px;
  }
  .site-header .brand{
    flex:0 1 auto;
    min-width:0;
    gap:8px;
    margin-right:8px;
  }
  .site-header .brand img{width:34px;height:34px;}
  .site-header .brand span{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:210px;
    font-size:.92rem;
  }
  .site-header .nav{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:nowrap!important;
    gap:7px;
  }
  .site-header .nav > a,
  .site-header .nav > button,
  .site-header .nav-user,
  .site-header .theme-toggle{
    flex:0 0 auto;
    white-space:nowrap;
    min-height:34px;
    line-height:1;
    font-size:.84rem;
  }
  .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn){
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.14);
    color:#fff!important;
    font-weight:800;
  }
  .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn):hover,
  .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn).active{
    background:rgba(47,155,115,.26);
    border-color:rgba(126,224,186,.38);
    color:#d9fff0!important;
  }
  .site-header .btn.small,
  .site-header .admin-nav-btn,
  .site-header .profile-btn,
  .site-header .theme-toggle{
    padding:8px 12px;
    min-height:34px;
  }
  .site-header .logout-btn{
    margin-left:0!important;
    padding:8px 12px;
    background:#26322c!important;
    border:1px solid rgba(255,255,255,.16);
  }
  .site-header .profile-btn{
    max-width:210px;
  }
  .site-header .profile-name{
    display:inline-block;
    max-width:115px;
    overflow:hidden;
    text-overflow:ellipsis;
    vertical-align:bottom;
  }
  .site-header .theme-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    border-radius:999px;
    width:auto;
  }
}
@media (min-width: 761px) and (max-width: 1120px){
  .site-header .container.nav-wrap{width:calc(100% - 18px);gap:7px;}
  .site-header .brand span{max-width:150px;font-size:.86rem;}
  .site-header .nav{gap:5px;}
  .site-header .nav > a,
  .site-header .nav > button,
  .site-header .nav-user,
  .site-header .theme-toggle{font-size:.76rem;}
  .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn),
  .site-header .btn.small,
  .site-header .admin-nav-btn,
  .site-header .profile-btn,
  .site-header .theme-toggle,
  .site-header .logout-btn{padding:7px 9px;}
  .site-header .profile-name{max-width:82px;}
  .site-header .rsvp-nav-btn{padding-left:11px;padding-right:11px;}
}
@media (min-width: 761px) and (max-width: 960px){
  .site-header .brand span{display:none;}
  .site-header .profile-label{display:none;}
  .site-header .profile-btn .profile-label::after{content:'';}
  .site-header .profile-name{max-width:90px;}
}
html[data-theme="dark"] .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn){
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.10);
}
html[data-theme="dark"] .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn):hover,
html[data-theme="dark"] .site-header .nav > a:not(.btn):not(.profile-btn):not(.admin-nav-btn).active{
  background:rgba(47,155,115,.28);
  border-color:rgba(126,224,186,.34);
}


/* v14.14 favorites limit, modal layering, and admin dark-mode polish */
/* Keep gallery image viewer above the fixed header. */
.modal{z-index:30000!important;}
.modal-close{z-index:30003!important;}
.modal-nav{z-index:30002!important;}
.modal-like{z-index:30004!important;}
body.modal-open .site-header{z-index:9000;}

/* Admin dark mode: cards, shortcuts, panels, and sticky save bars. */
html[data-theme="dark"] .admin-start-card{
  background:linear-gradient(180deg,#17211c,#141b17)!important;
  border-color:var(--line)!important;
  color:var(--text)!important;
}
html[data-theme="dark"] .admin-category-card{
  background:#17211c!important;
  border-color:#334238!important;
  color:#f4fff9!important;
  box-shadow:0 12px 30px rgba(0,0,0,.28)!important;
}
html[data-theme="dark"] .admin-category-card strong{color:#f4fff9!important;}
html[data-theme="dark"] .admin-category-card span{color:#b9c8bf!important;}
html[data-theme="dark"] .admin-category-card:hover,
html[data-theme="dark"] .admin-category-card.active{
  background:#1f3429!important;
  border-color:#58c496!important;
  color:#fff!important;
  box-shadow:0 18px 42px rgba(0,0,0,.38)!important;
}
html[data-theme="dark"] .admin-config-save-actions{
  background:rgba(19,26,22,.94)!important;
  border-color:var(--line)!important;
  color:var(--text)!important;
  box-shadow:0 16px 42px rgba(0,0,0,.42)!important;
}
html[data-theme="dark"] .summary-strip>div,
html[data-theme="dark"] .readiness-item,
html[data-theme="dark"] .immich-link-row,
html[data-theme="dark"] .subtle-card,
html[data-theme="dark"] .admin-notice,
html[data-theme="dark"] .calendar-menu-list,
html[data-theme="dark"] .referral-admin-card,
html[data-theme="dark"] .user-admin-card{
  background:#17211c!important;
  border-color:var(--line)!important;
  color:var(--text)!important;
}
html[data-theme="dark"] .summary-strip strong,
html[data-theme="dark"] .readiness-item span,
html[data-theme="dark"] .immich-link-row summary,
html[data-theme="dark"] .calendar-menu-list a,
html[data-theme="dark"] .referral-admin-card h2,
html[data-theme="dark"] .user-id-block h2{color:var(--text)!important;}
html[data-theme="dark"] .readiness-item strong,
html[data-theme="dark"] .readiness-item small,
html[data-theme="dark"] .admin-notice,
html[data-theme="dark"] .calendar-menu-list a{color:#c7d3cc!important;}
html[data-theme="dark"] .readiness-item.ok{background:#10271c!important;border-color:#285e43!important;}
html[data-theme="dark"] .readiness-item.bad{background:#301717!important;border-color:#7f3434!important;}
html[data-theme="dark"] .calendar-menu-list a:hover{background:#1f3429!important;color:#d8ffef!important;}
html[data-theme="dark"] .clickable-table tbody tr:hover{background:#1d2a23!important;}
html[data-theme="dark"] .badge,
html[data-theme="dark"] .status-pill{background:#223027;color:#f4fff9;}
html[data-theme="dark"] .admin-menu .active{background:#25382f!important;color:#a6f0d2!important;}
html[data-theme="dark"] .db-stat{background:#17211c!important;border-color:var(--line)!important;color:var(--text)!important;}
html[data-theme="dark"] .data-table th,
html[data-theme="dark"] .data-table td{border-color:var(--line)!important;}

/* Favorites should feel like a ranked list, not an unbounded album dump. */
#galleryHeading{scroll-margin-top:80px;}

/* v14.15: single Immich upload flow */
.gallery-immich-cta{border-style:solid;}
.gallery-immich-cta .actions{margin-top:14px;}
.anchor-target{display:block;position:relative;top:-88px;visibility:hidden;}
body.dark .gallery-immich-cta{background:var(--card);border-color:var(--border);}

/* v14.17: compact admin RSVP table polish */
.admin-content #attendees .compact-attendee-wrap{
  overflow-x:auto !important;
  border-radius:18px;
}
.admin-content #attendees .table-wrap table.admin-attendee-table{
  width:100% !important;
  min-width:980px !important;
  table-layout:fixed !important;
  border-collapse:separate;
  border-spacing:0;
}
.admin-content #attendees .admin-attendee-table th,
.admin-content #attendees .admin-attendee-table td{
  padding:10px 14px !important;
  vertical-align:top !important;
  line-height:1.32;
}
.admin-content #attendees .admin-attendee-table th:nth-child(1),
.admin-content #attendees .admin-attendee-table td:nth-child(1){width:27% !important;min-width:0 !important;}
.admin-content #attendees .admin-attendee-table th:nth-child(2),
.admin-content #attendees .admin-attendee-table td:nth-child(2){width:29% !important;min-width:0 !important;}
.admin-content #attendees .admin-attendee-table th:nth-child(3),
.admin-content #attendees .admin-attendee-table td:nth-child(3){width:18% !important;min-width:0 !important;}
.admin-content #attendees .admin-attendee-table th:nth-child(4),
.admin-content #attendees .admin-attendee-table td:nth-child(4){width:26% !important;min-width:0 !important;}
.admin-content #attendees .attendee-primary,
.admin-content #attendees .rsvp-cell{
  gap:3px !important;
}
.admin-content #attendees .attendee-primary strong{
  font-size:1rem;
  line-height:1.2;
}
.admin-content #attendees .attendee-primary span,
.admin-content #attendees .rsvp-cell span,
.admin-content #attendees .admin-attendee-table .muted{
  font-size:.92rem;
}
.admin-content #attendees .comment-preview{
  font-size:.9rem !important;
  line-height:1.28;
  -webkit-line-clamp:2 !important;
}
.admin-content #attendees .status-pill{
  max-width:100%;
  min-height:24px;
  padding:3px 9px;
}
.admin-content #attendees .actions-cell{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(86px,1fr));
  gap:6px !important;
  align-items:center !important;
  min-width:0 !important;
  white-space:normal !important;
}
.admin-content #attendees .actions-cell form,
.admin-content #attendees .actions-cell button,
.admin-content #attendees .actions-cell a,
.admin-content #attendees .actions-cell select{
  min-width:0 !important;
}
.admin-content #attendees .actions-cell form{
  display:block !important;
  margin:0 !important;
}
.admin-content #attendees .actions-cell .btn,
.admin-content #attendees .actions-cell button.btn{
  width:100% !important;
  min-height:31px;
  padding:6px 8px !important;
  font-size:.78rem !important;
  line-height:1.1;
  text-align:center;
  justify-content:center;
  border-radius:999px;
  box-shadow:none !important;
}
.admin-content #attendees .actions-cell select{
  width:100% !important;
  height:32px;
  padding:4px 8px;
  font-size:.78rem;
  border-radius:10px;
}
.admin-content #attendees .inline-payment-form{
  grid-column:auto;
}
.admin-content #attendees .inline-payment-form select{
  background-position:right 8px center;
}
@media (min-width:1280px){
  .admin-content #attendees .table-wrap table.admin-attendee-table{min-width:0 !important;}
  .admin-content #attendees .admin-attendee-table th:nth-child(1),
  .admin-content #attendees .admin-attendee-table td:nth-child(1){width:28% !important;}
  .admin-content #attendees .admin-attendee-table th:nth-child(2),
  .admin-content #attendees .admin-attendee-table td:nth-child(2){width:30% !important;}
  .admin-content #attendees .admin-attendee-table th:nth-child(3),
  .admin-content #attendees .admin-attendee-table td:nth-child(3){width:18% !important;}
  .admin-content #attendees .admin-attendee-table th:nth-child(4),
  .admin-content #attendees .admin-attendee-table td:nth-child(4){width:24% !important;}
}
@media (max-width:900px){
  .admin-content #attendees .compact-attendee-wrap{display:none !important;}
}
html[data-theme="dark"] .admin-content #attendees .admin-attendee-table th{
  background:#1f2a23 !important;
  color:#f4fff9 !important;
}
html[data-theme="dark"] .admin-content #attendees .admin-attendee-table td{
  background:#17211c !important;
  border-color:var(--line) !important;
}
html[data-theme="dark"] .admin-content #attendees .admin-attendee-table tr:hover td{
  background:#1b2921 !important;
}
html[data-theme="dark"] .admin-content #attendees .actions-cell select{
  background-color:#111a15 !important;
  border-color:#334238 !important;
  color:#f4fff9 !important;
}


/* v15 SPA shell */
.spa-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:99999;background:linear-gradient(90deg,#2bb889,#35d6a2);box-shadow:0 0 18px rgba(43,184,137,.65);opacity:0;transition:width .25s ease, opacity .18s ease}
.spa-progress.active{opacity:1;width:78%;animation:spaProgressPulse 1.2s ease-in-out infinite alternate}
@keyframes spaProgressPulse{from{width:42%}to{width:88%}}
html.spa-loading main{cursor:progress}
#app-root{min-height:calc(100vh - 180px)}
@media (prefers-reduced-motion: reduce){.spa-progress.active{animation:none;width:72%}}


/* v15.1 full-site SPA polish */
.nicalicious-spa-shell { min-height: 100vh; }
.spa-progress { position: fixed; left: 0; top: 0; width: 0; height: 3px; z-index: 2147483647; background: linear-gradient(90deg, #20b486, #6ee7b7); opacity: 0; transition: width .22s ease, opacity .12s ease; }
.spa-progress.active { width: 88%; opacity: 1; animation: spa-progress-pulse 1.1s ease-in-out infinite alternate; }
@keyframes spa-progress-pulse { from { filter: brightness(1); } to { filter: brightness(1.35); } }
#app-root { outline: none; }
#app-root.spa-view-entering { opacity: .55; transform: translateY(3px); transition: opacity .12s ease, transform .12s ease; }
#app-root.spa-view-ready { opacity: 1; transform: translateY(0); transition: opacity .16s ease, transform .16s ease; }
.spa-loading .btn, .spa-loading button, .spa-loading a[data-spa-link="1"] { cursor: progress; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }


/* v15.3 app polish */
.command-stats .stat-card,.stat-card{text-decoration:none;display:flex;flex-direction:column;gap:.25rem}.stat-card strong{font-size:2rem}.command-row,.mini-row,.account-event-row,.template-row,.search-result,.referral-status-card{display:flex;gap:.75rem;align-items:center;justify-content:space-between;padding:.7rem .85rem;border:1px solid var(--line);border-radius:14px;margin:.55rem 0;background:rgba(255,255,255,.04)}.command-row div,.account-event-row{flex-wrap:wrap}.actions.stacked{display:flex;flex-direction:column;align-items:stretch}.btn.huge{font-size:1.15rem;padding:1rem 1.25rem;text-align:center}.activity-timeline{position:relative}.activity-item{border-left:4px solid var(--accent,#2bb889);padding:.7rem 1rem;margin:.6rem 0;background:rgba(255,255,255,.04);border-radius:12px}.activity-item span{display:block;font-size:.8rem;opacity:.75}.search-result{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);align-items:start}.search-result small{grid-column:1/-1;white-space:pre-wrap;word-break:break-word;opacity:.7}.account-quick-actions{margin:1rem 0;display:flex;flex-wrap:wrap}.toast-wrap{position:fixed;right:18px;bottom:18px;z-index:2147483647;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 28px))}.toast{opacity:0;transform:translateY(10px);transition:.22s ease;background:#12251c;color:#f4fff9;border:1px solid #2a6f52;border-radius:16px;box-shadow:0 16px 46px rgba(0,0,0,.25);padding:.85rem 1rem;font-weight:700}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#2a1212;border-color:#7f1d1d}.kiosk-launch{text-align:center}.referral-status-card{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,1fr) auto;align-items:center}.referral-status-card p{grid-column:1/-1;margin:.2rem 0 0}.admin-page-header{margin-bottom:1rem}.wizard-form input[type=datetime-local],.wizard-form select{min-height:42px}html[data-theme="dark"] .command-row,html[data-theme="dark"] .mini-row,html[data-theme="dark"] .account-event-row,html[data-theme="dark"] .template-row,html[data-theme="dark"] .search-result,html[data-theme="dark"] .referral-status-card,html[data-theme="dark"] .activity-item{background:#17211c;border-color:#2d3d33;color:#f4fff9}@media(max-width:760px){.search-result,.referral-status-card{grid-template-columns:1fr}.command-row,.mini-row,.account-event-row{align-items:flex-start}.command-row{flex-direction:column}.toast-wrap{left:14px;right:14px;bottom:14px}.toast{max-width:none}.account-actions-inline{display:flex;flex-wrap:wrap;gap:.4rem}}


/* v15.4 SPA anchor/admin panel polish */
html{scroll-padding-top:96px;}
#rsvp,#update-link,#photos,.anchor-target,.section[id]{scroll-margin-top:96px;}
.admin-hash-panel{display:block;width:100%;}
.admin-hash-panel > .admin-panel-header{margin-bottom:18px;}
.admin-hash-panel #admin-config-form{display:block;}
.admin-hash-panel #admin-config-form > section,
.admin-hash-panel > section.card,
.admin-hash-panel .card{margin-top:0;}
html[data-theme="dark"] .admin-hash-panel .card,
html[data-theme="dark"] .admin-hash-panel section.card,
html[data-theme="dark"] .admin-hash-panel #admin-config-form > section{background:#17211c;color:#f4f7f4;border-color:rgba(255,255,255,.15);}
html[data-theme="dark"] .admin-hash-panel h1,
html[data-theme="dark"] .admin-hash-panel h2,
html[data-theme="dark"] .admin-hash-panel h3{color:#fff;}

/* v15.7 admin SPA hash panel and dark-mode email preview polish */
html[data-theme="dark"] .email-preview-body,
[data-theme="dark"] .email-preview-body,
body[data-theme="dark"] .email-preview-body {
  background: #0b1511 !important;
  color: #ecfdf5 !important;
  border-color: rgba(148, 163, 184, 0.34) !important;
  text-shadow: none !important;
}
html[data-theme="dark"] .admin-hash-panel .email-preview-body,
[data-theme="dark"] .admin-hash-panel .email-preview-body,
html[data-theme="dark"] pre.email-preview-body,
[data-theme="dark"] pre.email-preview-body {
  background: #0b1511 !important;
  color: #ecfdf5 !important;
  white-space: pre-wrap;
}
html[data-theme="dark"] .admin-hash-panel .admin-edit-box,
[data-theme="dark"] .admin-hash-panel .admin-edit-box {
  background: rgba(15, 25, 21, 0.92) !important;
  color: #f8fafc !important;
  border-color: rgba(148, 163, 184, 0.24) !important;
}
.admin-hash-panel [hidden] { display: block !important; }
.admin-hash-panel .admin-panel-header { margin-bottom: 1rem; }


/* v16.2 landing page, navigation self-heal, and real calendar UI */
.hero-home{padding:58px 0 34px}
.hero-home-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.95fr);gap:1.25rem;align-items:stretch}
.hero-home-copy p{max-width:62ch}
.hero-home-actions{justify-content:flex-start;margin-top:1.1rem}
.hero-event-panel{display:flex;flex-direction:column;gap:.9rem;justify-content:space-between}
.hero-event-panel-head,.featured-event-topline,.section-heading-row,.month-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.hero-inline-link{font-weight:800;text-decoration:none;color:var(--primary)}
.hero-inline-link:hover{text-decoration:underline}
.feature-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.feature-stat{border:1px solid var(--line);border-radius:16px;padding:.85rem .95rem;background:rgba(255,255,255,.72)}
.feature-stat strong{display:block;font-size:1.4rem;line-height:1.1}
.feature-stat span{display:block;margin-top:.28rem;color:var(--muted);font-size:.9rem;font-weight:700}
.quick-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.quick-link-card{text-decoration:none;color:var(--text);transition:transform .18s ease, box-shadow .18s ease}
.quick-link-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(0,0,0,.12)}
.quick-link-card h3{margin:.15rem 0 .45rem}
.home-split-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:1.1rem}
.featured-event-card,.agenda-preview-card{height:100%}
.agenda-preview-list{display:grid;gap:.8rem}
.agenda-preview-item{display:block;text-decoration:none;color:var(--text);border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem;background:rgba(255,255,255,.72)}
.agenda-preview-item strong,.agenda-preview-item span,.agenda-preview-item em{display:block}
.agenda-preview-item span{margin-top:.2rem;font-weight:700}
.agenda-preview-item em{margin-top:.35rem;color:var(--muted);font-style:normal}
.section-heading-row{margin:1rem 0 .85rem}
.section-heading-row h2{margin:0}
.calendar-page-section{padding-top:36px}
.calendar-page-shell{display:grid;gap:1rem}
.calendar-page-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid rgba(255,255,255,.12)}
.calendar-hero-actions{justify-content:flex-end;align-items:center}
.calendar-shell-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:1rem;align-items:start}
.month-calendar-card,.calendar-agenda-card,.calendar-help-card{height:auto}
.month-calendar-summary{font-weight:800;color:var(--muted)}
.calendar-grid-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem;margin-bottom:.55rem}
.calendar-grid-labels div{font-size:.84rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 .3rem}
.calendar-grid-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}
.calendar-day{min-height:130px;border:1px solid var(--line);border-radius:18px;padding:.75rem;background:rgba(255,255,255,.68);display:flex;flex-direction:column;gap:.55rem}
.calendar-day.is-other-month{opacity:.48}
.calendar-day.is-today{box-shadow:inset 0 0 0 2px rgba(33,166,116,.42)}
.calendar-day.has-event{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(230,248,240,.76))}
.calendar-day-number{font-weight:900;font-size:1rem}
.calendar-day-events{display:grid;gap:.45rem}
.calendar-event-pill{display:block;text-decoration:none;border-radius:14px;padding:.45rem .55rem;background:rgba(33,166,116,.14);color:var(--text);border:1px solid rgba(33,166,116,.22)}
.calendar-event-pill strong,.calendar-event-pill span{display:block}
.calendar-event-pill strong{font-size:.88rem;line-height:1.2}
.calendar-event-pill span{margin-top:.12rem;font-size:.78rem;color:var(--muted);font-weight:700}
.calendar-sidebar-stack{display:grid;gap:1rem}
.calendar-agenda-list{display:grid;gap:.9rem}
.calendar-agenda-item{border:1px solid var(--line);border-radius:18px;padding:1rem;background:rgba(255,255,255,.72)}
.calendar-agenda-copy strong,.calendar-agenda-copy span,.calendar-agenda-copy em{display:block}
.calendar-agenda-copy span{margin-top:.22rem;font-weight:800}
.calendar-agenda-copy em{margin-top:.28rem;color:var(--muted);font-style:normal}
.calendar-agenda-copy p{margin:.55rem 0 0}
.calendar-agenda-actions{margin-top:.75rem}
.quick-links-inline{display:grid;gap:.7rem}
.quick-links-inline a{display:block;text-decoration:none;font-weight:800;color:var(--text);padding:.78rem .9rem;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.68)}
.quick-links-inline a:hover,.agenda-preview-item:hover,.calendar-event-pill:hover{transform:translateY(-1px)}
@media (max-width:980px){.hero-home-grid,.home-split-grid,.calendar-shell-grid{grid-template-columns:1fr}.calendar-page-hero{align-items:flex-start;flex-direction:column}.calendar-hero-actions{justify-content:flex-start}}
@media (max-width:760px){.feature-stats{grid-template-columns:1fr}.calendar-grid-labels,.calendar-grid-month{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-grid-labels div:nth-child(n+3){display:none}.calendar-day{min-height:120px}.hero-home{padding:42px 0 28px}}
html[data-theme="dark"] .feature-stat,html[data-theme="dark"] .agenda-preview-item,html[data-theme="dark"] .calendar-day,html[data-theme="dark"] .calendar-agenda-item,html[data-theme="dark"] .quick-links-inline a{background:rgba(17,26,24,.92)!important;border-color:rgba(151,180,165,.18)!important;color:#edf4ef!important}
html[data-theme="dark"] .calendar-day.has-event{background:linear-gradient(180deg,rgba(22,34,31,.95),rgba(18,47,37,.95))!important}
html[data-theme="dark"] .calendar-event-pill{background:rgba(37,154,114,.18)!important;border-color:rgba(90,218,173,.22)!important;color:#edf4ef!important}
html[data-theme="dark"] .feature-stat span,html[data-theme="dark"] .agenda-preview-item em,html[data-theme="dark"] .calendar-event-pill span,html[data-theme="dark"] .calendar-agenda-copy em,html[data-theme="dark"] .month-calendar-summary{color:#b3c4ba!important}


/* v16.3 admin polish, landscape upcoming events, and backup/changelog views */
.home-upcoming-landscape{display:grid;grid-template-columns:minmax(0,.95fr) minmax(420px,1.25fr);gap:1.25rem;align-items:stretch}
.home-upcoming-copy{display:flex;flex-direction:column;justify-content:center}
.home-upcoming-table-wrap{border:1px solid var(--line);border-radius:20px;padding:1rem;background:rgba(255,255,255,.62)}
.home-upcoming-table{display:grid;gap:.65rem}
.home-upcoming-row{display:grid;grid-template-columns:160px minmax(220px,1fr) minmax(220px,1.3fr);gap:.85rem;align-items:center;text-decoration:none;color:var(--text);border:1px solid var(--line);border-radius:16px;padding:.85rem .95rem;background:rgba(255,255,255,.78);transition:transform .18s ease,box-shadow .18s ease}
.home-upcoming-row:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.1)}
.home-upcoming-title{font-weight:900}
.home-upcoming-when{font-weight:800;color:var(--text)}
.home-upcoming-details{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.guest-actions-col{min-width:190px;white-space:nowrap}
.guest-actions-cell{white-space:nowrap;min-width:190px}
.guest-actions-cell .guest-edit-details,.guest-actions-cell .inline-delete-form{display:inline-block;vertical-align:top;margin-right:.35rem}
.guest-edit-summary{list-style:none;display:inline-flex!important;width:auto!important;white-space:nowrap}
.guest-edit-summary::-webkit-details-marker{display:none}
.guest-edit-form{position:absolute;right:1rem;z-index:25;min-width:320px;max-width:min(420px,calc(100vw - 32px));margin-top:.55rem;padding:1rem;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 20px 50px rgba(0,0,0,.22)}
.btn.danger,button.danger{background:#b42318!important;color:#fff!important;border-color:#b42318!important}
.btn.disabled,.btn[aria-disabled="true"]{opacity:.48;pointer-events:none}
.duplicate-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:.8rem}
.duplicate-profile-card{border:1px solid var(--line);border-radius:16px;padding:.85rem;background:rgba(255,255,255,.7)}
.duplicate-profile-card strong,.duplicate-profile-card span,.duplicate-profile-card small{display:block}
.merge-direction-actions{align-items:flex-start}
.backup-center-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:1rem}
.backup-wide-card{grid-column:1/-1}
.changelog-card h1{margin-top:0}
.changelog-card h2{margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line)}
.changelog-card ul{margin-top:.5rem}
.captcha-wrap{margin:1rem 0}
.captcha-misconfigured{margin:1rem 0}
@media (max-width:980px){.home-upcoming-landscape,.backup-center-grid{grid-template-columns:1fr}.home-upcoming-row{grid-template-columns:1fr}.duplicate-profile-grid{grid-template-columns:1fr}.home-upcoming-details{white-space:normal}.guest-edit-form{position:static}}
@media (max-width:760px){.home-upcoming-table-wrap{padding:.75rem}.home-upcoming-row{padding:.8rem}.guest-actions-cell .guest-edit-details,.guest-actions-cell .inline-delete-form{display:block;margin:.25rem 0}.guest-actions-col,.guest-actions-cell{min-width:130px}}
html[data-theme="dark"] .home-upcoming-table-wrap,html[data-theme="dark"] .home-upcoming-row,html[data-theme="dark"] .duplicate-profile-card{background:rgba(17,26,24,.92)!important;border-color:rgba(151,180,165,.18)!important;color:#edf4ef!important}
html[data-theme="dark"] .home-upcoming-details{color:#b3c4ba!important}
html[data-theme="dark"] .guest-edit-form{background:#121d1a!important;border-color:rgba(151,180,165,.22)!important}


/* v16.4 layout fixes for home hero, schedule card, Immich albums, and backup imports */
.hero-home-grid{grid-template-columns:minmax(260px,.85fr) minmax(540px,1.55fr)!important;align-items:center!important}
.hero-event-panel-landscape{max-width:none!important;width:100%!important;text-align:left!important;gap:.85rem!important}
.hero-event-landscape-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.72fr);gap:1rem;align-items:center}
.hero-event-main-copy h2,.hero-event-main-copy p{text-align:left!important}.hero-event-details{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.hero-event-side-copy{display:grid;gap:.8rem}.hero-event-panel-landscape .compact-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.hero-event-panel-landscape .feature-stat{padding:.65rem .6rem;text-align:center}.hero-event-panel-landscape .feature-stat strong{font-size:1.15rem}.hero-event-panel-landscape .feature-stat span{font-size:.78rem}.hero-panel-actions{justify-content:flex-start!important;flex-wrap:wrap}.home-split-grid{grid-template-columns:minmax(0,1fr)!important}.featured-event-card{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);gap:1.1rem;align-items:center}.featured-event-card>.featured-event-topline,.featured-event-card>h2,.featured-event-card>.event-detail-strong,.featured-event-card>p:not(:last-child){grid-column:1}.featured-event-card>.hub-actions{grid-column:1;align-self:start}.agenda-preview-card{min-width:0;overflow:hidden}.agenda-preview-list{display:grid;gap:.65rem}.agenda-preview-item{display:grid!important;grid-template-columns:minmax(130px,.8fr) minmax(210px,1fr) minmax(220px,1.2fr);gap:.8rem;align-items:center;min-width:0;overflow:hidden}.agenda-preview-item strong,.agenda-preview-item span,.agenda-preview-item em{min-width:0;overflow:hidden;text-overflow:ellipsis}.agenda-preview-item em{white-space:nowrap}.mini-albums{grid-template-columns:repeat(auto-fit,minmax(220px,280px))!important;justify-content:start}.mini-album{max-width:280px}.mini-album-media{aspect-ratio:4/3!important;max-height:210px}.mini-album-media img,.mini-album-media video{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}.backup-import-form input[type=file]{padding:.85rem;background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:14px}.backup-center-grid .actions.stacked{align-items:flex-start}
@media(max-width:980px){.hero-home-grid{grid-template-columns:1fr!important}.hero-event-landscape-body,.featured-event-card{grid-template-columns:1fr}.featured-event-card>.featured-event-topline,.featured-event-card>h2,.featured-event-card>.event-detail-strong,.featured-event-card>p:not(:last-child),.featured-event-card>.hub-actions{grid-column:auto}.agenda-preview-item{grid-template-columns:1fr}.agenda-preview-item em{white-space:normal}.mini-albums{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important}.mini-album{max-width:none}.mini-album-media{max-height:180px}}
@media(max-width:560px){.hero-event-panel-landscape .compact-stats{grid-template-columns:1fr}.mini-album-media{max-height:155px}}


/* v16.5 gallery, guest table, and home schedule overflow fixes */
.home-upcoming-landscape{overflow:hidden!important;grid-template-columns:minmax(300px,.86fr) minmax(0,1.14fr)!important;max-width:100%!important}
.home-upcoming-table-wrap{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.home-upcoming-table{min-width:0!important;max-width:100%!important}
.home-upcoming-row{grid-template-columns:minmax(105px,.75fr) minmax(180px,1fr) minmax(160px,1fr)!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.home-upcoming-title,.home-upcoming-when,.home-upcoming-details{min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}

.mini-albums{grid-template-columns:repeat(auto-fit,minmax(180px,240px))!important;gap:1rem!important}
.mini-album{max-width:240px!important;min-height:0!important}
.mini-album-media{aspect-ratio:4/3!important;height:auto!important;max-height:170px!important;background:#121d1a!important}
.gallery-item.media-error::before,.mini-album-media:empty::before{content:'Image unavailable';display:flex;align-items:center;justify-content:center;position:absolute;inset:0;color:#a8beb2;font-weight:800;background:#121d1a}

.guest-directory-wrap,.guest-history-wrap{overflow-x:auto!important;max-width:100%!important}
.guest-directory-table,.guest-history-table{min-width:1120px!important;width:100%!important;table-layout:fixed!important}
.guest-directory-table th,.guest-directory-table td,.guest-history-table th,.guest-history-table td{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:normal!important;overflow-wrap:normal!important;vertical-align:middle!important}
.guest-directory-table th:nth-child(1),.guest-directory-table td:nth-child(1){width:180px!important}
.guest-directory-table th:nth-child(2),.guest-directory-table td:nth-child(2){width:255px!important}
.guest-directory-table th:nth-child(3),.guest-directory-table td:nth-child(3){width:135px!important}
.guest-directory-table th:nth-child(4),.guest-directory-table td:nth-child(4),.guest-directory-table th:nth-child(5),.guest-directory-table td:nth-child(5){width:86px!important;text-align:center!important}
.guest-directory-table th:nth-child(6),.guest-directory-table td:nth-child(6){width:150px!important}
.guest-directory-table th:nth-child(7),.guest-directory-table td:nth-child(7){width:90px!important}
.guest-directory-table th:nth-child(8),.guest-directory-table td:nth-child(8){width:230px!important;overflow:visible!important}
.guest-history-table th:nth-child(1),.guest-history-table td:nth-child(1){width:190px!important}
.guest-history-table th:nth-child(2),.guest-history-table td:nth-child(2){width:285px!important}
.guest-history-table th:nth-child(3),.guest-history-table td:nth-child(3){width:150px!important}
.guest-history-table th:nth-child(4),.guest-history-table td:nth-child(4),.guest-history-table th:nth-child(5),.guest-history-table td:nth-child(5){width:110px!important;text-align:center!important}
.guest-history-table th:nth-child(6),.guest-history-table td:nth-child(6){width:190px!important}
.guest-history-table th:nth-child(7),.guest-history-table td:nth-child(7){width:120px!important;overflow:visible!important}
.guest-actions-cell{display:flex!important;gap:.45rem!important;align-items:center!important;white-space:nowrap!important;min-width:0!important}
.guest-actions-cell .guest-edit-details,.guest-actions-cell .inline-delete-form{display:inline-flex!important;margin:0!important;flex:0 0 auto!important}
.guest-actions-cell .btn{white-space:nowrap!important;min-width:max-content!important}
@media(max-width:1100px){.home-upcoming-landscape{grid-template-columns:1fr!important}.home-upcoming-row{grid-template-columns:1fr!important}.home-upcoming-title,.home-upcoming-when,.home-upcoming-details{white-space:normal!important}.mini-albums{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}.mini-album{max-width:none!important}.mini-album-media{max-height:155px!important}}


/* v16.6 live Immich and compact admin table fixes */
.home-upcoming-fixed{min-width:0;overflow:hidden!important}
.home-schedule-table{display:grid;gap:.65rem;min-width:0;width:100%}
.home-schedule-row{display:grid;grid-template-columns:minmax(130px,.75fr) minmax(220px,1fr) minmax(240px,1.25fr);gap:.8rem;align-items:center;width:100%;min-width:0;max-width:100%;padding:.9rem 1rem;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.06);text-decoration:none;color:var(--text);overflow:hidden}
.home-schedule-title,.home-schedule-when,.home-schedule-details{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-schedule-title,.home-schedule-when{font-weight:900}.home-schedule-details{color:var(--muted)}
@media(max-width:900px){.home-schedule-row{grid-template-columns:1fr}.home-schedule-title,.home-schedule-when,.home-schedule-details{white-space:normal}}
.gallery-grid{align-items:start}.gallery-grid a.gallery-item,.gallery-grid button.gallery-item{background:#121d1a!important;min-height:210px!important}
.gallery-grid .gallery-item img,.gallery-grid .gallery-item video{display:block!important;width:100%!important;height:210px!important;object-fit:cover!important;background:#121d1a!important;opacity:1!important;visibility:visible!important;position:relative;z-index:1}
.gallery-grid .gallery-item .caption{position:absolute!important;left:0!important;right:0!important;bottom:0!important;z-index:3!important;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.78))!important;color:#fff!important}
.gallery-item.media-error::before{z-index:2!important}.gallery-item.media-error img{opacity:.18!important}
.mini-albums{grid-template-columns:repeat(auto-fit,minmax(180px,240px))!important;gap:1rem!important}.mini-album{max-width:240px!important}.mini-album-media{height:160px!important;aspect-ratio:auto!important;background:#121d1a!important}.mini-album-media img,.mini-album-media video{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:1!important;visibility:visible!important}
.guest-directory-wrap,.guest-history-wrap{max-width:100%;overflow-x:auto!important}.guest-directory-table,.guest-history-table{table-layout:auto!important;min-width:1040px!important;width:100%!important}.guest-directory-table th,.guest-directory-table td,.guest-history-table th,.guest-history-table td{white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;line-height:1.35!important;padding:.65rem .75rem!important}.guest-directory-table th:first-child,.guest-directory-table td:first-child{min-width:190px!important}.guest-directory-table th:nth-child(2),.guest-directory-table td:nth-child(2),.guest-history-table th:nth-child(2),.guest-history-table td:nth-child(2){min-width:250px!important}.guest-actions-cell{min-width:170px!important;display:flex!important;gap:.55rem!important;align-items:center!important;flex-wrap:nowrap!important}.guest-actions-cell .btn,.guest-actions-cell button,.guest-edit-summary{white-space:nowrap!important;width:auto!important}.guest-edit-details{position:relative}.guest-edit-form{position:absolute;right:0;top:calc(100% + 8px);z-index:20;min-width:320px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:0 18px 45px rgba(0,0,0,.35)}
html[data-theme="dark"] .home-schedule-row{background:rgba(17,26,24,.92)!important;border-color:rgba(151,180,165,.18)!important;color:#edf4ef!important}html[data-theme="dark"] .home-schedule-details{color:#b3c4ba!important}
@media(max-width:760px){.gallery-grid .gallery-item img,.gallery-grid .gallery-item video,.gallery-grid a.gallery-item,.gallery-grid button.gallery-item{height:155px!important;min-height:155px!important}.mini-album-media{height:140px!important}}

/* v16.6 corrections for existing home-upcoming classes */
.home-upcoming-landscape{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;overflow:hidden!important;max-width:100%!important}
.home-upcoming-table-wrap{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.home-upcoming-table{min-width:0!important;max-width:100%!important;width:100%!important;overflow:hidden!important}
.home-upcoming-row{display:grid!important;grid-template-columns:minmax(0,.75fr) minmax(0,1fr) minmax(0,1.1fr)!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important;position:static!important}
.home-upcoming-title,.home-upcoming-when,.home-upcoming-details{min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:normal!important;display:block!important}
@media(max-width:980px){.home-upcoming-landscape{grid-template-columns:1fr!important}.home-upcoming-row{grid-template-columns:1fr!important}}


/* v16.9 reCAPTCHA SPA renderer and home album cover fallback */
.captcha-wrap{margin:1rem 0;min-height:78px;display:flex;align-items:center;justify-content:flex-start;overflow:visible}
.captcha-wrap .g-recaptcha{display:block;min-height:78px;min-width:304px}
.mini-album-media.media-error::before{content:'Image unavailable';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#a8beb2;font-weight:800;background:#121d1a;text-align:center;padding:1rem}


/* v16.11 final home polish */
.hero-home-actions:empty{display:none!important}
.hero-home-actions .btn:empty{display:none!important}
@media(max-width:560px){
  .mini-albums{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.8rem!important}
  .mini-album{max-width:none!important;width:100%!important}
  .mini-album-media{aspect-ratio:1/1!important;max-height:none!important}
  .mini-album-body{padding:.7rem .75rem!important}
  .mini-album-body strong{font-size:.9rem!important;line-height:1.15!important}
  .mini-album-body em{font-size:.78rem!important}
}
@media(max-width:360px){
  .mini-albums{grid-template-columns:1fr!important}
}


/* v16.12 profile RSVP editor and desktop gallery album sizing */
.account-rsvp-editor-list{display:grid;gap:1rem;margin-top:1rem}
.account-rsvp-editor-form{border:1px solid var(--line);border-radius:18px;padding:1rem;background:rgba(255,255,255,.04)}
.account-rsvp-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}
.account-rsvp-editor-head h3{margin:0 0 .2rem}
.account-rsvp-editor-head p{margin:0}
.account-rsvp-editor-form textarea{min-height:92px}
@media(max-width:700px){.account-rsvp-editor-head{display:block}.account-rsvp-editor-head .btn{margin-top:.7rem}}
@media(min-width:981px){.section-heading-row + .mini-albums,.mini-albums{grid-template-columns:repeat(4,minmax(0,1fr))!important;justify-content:stretch!important}.mini-album{max-width:none!important;width:100%!important}.mini-album-media{height:175px!important;max-height:none!important;aspect-ratio:auto!important}}
@media(min-width:1200px){.section-heading-row + .mini-albums,.mini-albums{gap:1.05rem!important}.mini-album-media{height:185px!important}}


/* v16.13 authenticated RSVP and SEO/favicon polish */
.locked-identity-field{background:rgba(127,143,132,.14)!important;color:var(--text)!important;cursor:not-allowed;}
.locked-identity-field:focus{outline:2px solid rgba(33,166,116,.35);}
@media (min-width: 900px){.home-albums-balanced .mini-albums{grid-template-columns:repeat(4,minmax(0,1fr));}.home-albums-balanced .mini-album{min-width:0;}}


/* v16.15 calendar and event experience refinements */
.calendar-add-actions { flex-wrap: wrap; gap: 6px; }
.calendar-event-pill.is-past-event, .calendar-agenda-item.is-past { opacity: .68; }
.calendar-agenda-list.compact-history .calendar-agenda-item { padding-block: 10px; }
.calendar-page-hero .calendar-hero-actions { flex-wrap: wrap; }
.badge.status-archived, .badge.status-completed { opacity: .75; }
@media (max-width: 720px) {
  .calendar-add-actions .btn.small { width: auto; min-height: 38px; }
  .calendar-page-hero .calendar-hero-actions .btn { width: 100%; }
}

/* v16.16 calendar admin table and end-user calendar navigation fixes */
.calendar-records-wrap{
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
}
.calendar-records-table{
  width:100%;
  min-width:1100px;
}
.calendar-records-table th,
.calendar-records-table td{
  vertical-align:top;
}
.calendar-records-table th:last-child,
.calendar-records-table td:last-child{
  min-width:170px;
}
.calendar-records-table .actions{
  flex-wrap:wrap;
  gap:8px;
}
.calendar-records-table code{
  display:inline-block;
  margin-top:4px;
  white-space:normal;
  overflow-wrap:anywhere;
}
.calendar-control-panel{
  display:grid;
  gap:.7rem;
  min-width:min(100%,560px);
}
.calendar-jump-form{
  display:flex;
  align-items:end;
  justify-content:flex-end;
  gap:.55rem;
  flex-wrap:wrap;
}
.calendar-jump-form label{
  display:grid;
  gap:.22rem;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}
.calendar-jump-form input{
  min-height:38px;
  border-radius:12px;
  border:1px solid var(--line);
  padding:.4rem .55rem;
  background:var(--card);
  color:var(--text);
}
.calendar-month-jump-list{
  display:flex;
  justify-content:flex-end;
  gap:.45rem;
  flex-wrap:wrap;
}
.calendar-month-jump-list a{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:.25rem .6rem;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--text);
  text-decoration:none;
  font-size:.82rem;
  font-weight:800;
  background:rgba(255,255,255,.62);
}
.calendar-month-jump-list a.active{
  border-color:rgba(33,166,116,.55);
  background:rgba(33,166,116,.15);
}
.calendar-day.is-selected-day{
  box-shadow:inset 0 0 0 2px rgba(33,166,116,.7);
}
.calendar-day-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:2rem;
  height:2rem;
  border-radius:999px;
  color:var(--text);
  text-decoration:none;
}
.calendar-day-number:hover{
  background:rgba(33,166,116,.14);
}
html[data-theme="dark"] .calendar-month-jump-list a,
html[data-theme="dark"] .calendar-jump-form input{
  background:rgba(17,26,24,.92)!important;
  border-color:rgba(151,180,165,.18)!important;
  color:#edf4ef!important;
}
@media (max-width:980px){
  .calendar-control-panel{width:100%;min-width:0;}
  .calendar-jump-form,.calendar-month-jump-list{justify-content:flex-start;}
}
@media (max-width:720px){
  .calendar-jump-form label,.calendar-jump-form input{width:100%;}
  .calendar-jump-form .btn{width:100%;}
}
.calendar-jump-forms{display:flex;justify-content:flex-end;gap:.55rem;flex-wrap:wrap;}
@media (max-width:980px){.calendar-jump-forms{justify-content:flex-start;}}
@media (max-width:720px){.calendar-jump-forms,.calendar-jump-form{width:100%;}}

/* v16.17 compact admin calendar records and month-tile overflow fixes */
.calendar-records-wrap{
  border-radius:18px;
}
.calendar-records-table{
  min-width:980px;
  table-layout:fixed;
}
.calendar-records-table th,
.calendar-records-table td{
  padding:.7rem .65rem;
  font-size:.93rem;
  line-height:1.3;
}
.calendar-records-table th:nth-child(1),
.calendar-records-table td:nth-child(1){width:19%;}
.calendar-records-table th:nth-child(2),
.calendar-records-table td:nth-child(2){width:8%;}
.calendar-records-table th:nth-child(3),
.calendar-records-table td:nth-child(3){width:15%;}
.calendar-records-table th:nth-child(4),
.calendar-records-table td:nth-child(4){width:15%;}
.calendar-records-table th:nth-child(5),
.calendar-records-table td:nth-child(5){width:29%;}
.calendar-records-table th:nth-child(6),
.calendar-records-table td:nth-child(6){width:14%;}
.calendar-record-title-cell strong{
  display:block;
  font-size:1rem;
  line-height:1.2;
  margin-bottom:.25rem;
}
.calendar-record-title-cell code{
  display:block;
  margin-top:0;
  font-size:.76rem;
  line-height:1.25;
  opacity:.9;
}
.calendar-record-time-cell{
  font-size:.88rem;
  white-space:normal !important;
}
.calendar-record-location-cell{
  white-space:normal !important;
  overflow-wrap:anywhere;
  font-size:.9rem;
}
.calendar-record-actions-cell,
.calendar-record-actions-cell .actions{
  min-width:0 !important;
}
.calendar-record-actions-cell .actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:.45rem;
}
.calendar-record-actions-cell .btn,
.calendar-record-actions-cell .inline-form,
.calendar-record-actions-cell .inline-form .btn{
  width:100%;
}
@media (max-width: 1100px){
  .calendar-records-table{min-width:920px;}
}

.month-calendar-card,
.calendar-grid-month,
.calendar-day,
.calendar-day-events{
  min-width:0;
}
.calendar-day{
  overflow:hidden;
}
.calendar-day-events{
  gap:.35rem;
}
.calendar-event-pill{
  max-width:100%;
  min-width:0;
  overflow:hidden;
  padding:.35rem .45rem;
  border-radius:12px;
}
.calendar-event-pill strong,
.calendar-event-pill span{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.calendar-event-pill strong{
  font-size:.79rem;
  line-height:1.15;
}
.calendar-event-pill span{
  margin-top:.08rem;
  font-size:.68rem;
}
.calendar-day.has-event{
  align-items:stretch;
}
@media (max-width: 980px){
  .calendar-event-pill strong{font-size:.76rem;}
  .calendar-event-pill span{font-size:.66rem;}
}
