/* (same style as previous pretty version, trimmed for brevity in this snippet) */
*{box-sizing:border-box}
:root{--bg:#f7f5f2;--beige:#d9c9bd;--brown:#4b2e1f;--brown-2:#6a4b39;--text:#26231f;--muted:#6b6a67;--card:#fff;--line:#ece7e1;--shadow:0 8px 24px rgba(0,0,0,.06);--radius:18px;--green:#1f8a2e;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;}
.brand-bar{background:var(--beige);} .brand-inner{max-width:1200px;margin:0 auto;padding:28px 24px;display:flex;align-items:center;justify-content:space-between;}
.brand-left{display:flex;align-items:center;gap:22px;} .brand-logo-img{height:140px;width:auto;display:block;border-radius:10px;}
.brand-text{line-height:1.15} .brand-title{font-family:Playfair Display,serif;font-size:44px;font-weight:600;letter-spacing:.5px;}
.brand-sub{font-size:18px;color:var(--muted);} .brand-handle{font-size:16px;color:var(--muted);}
.social-icons{display:flex;align-items:center;gap:12px;} .social-icons a{opacity:.85;transition:opacity .15s} .social-icons a:hover{opacity:1}
.hero{background:linear-gradient(180deg, #f7f5f2, #fbfaf8);padding:28px 0 8px 0;text-align:center;}
.container{max-width:1100px;margin:0 auto;padding:0 18px;} .container.narrow{max-width:900px;}
.hero-title{font-family:Playfair Display,serif;font-size:44px;font-weight:500;margin:10px 0 6px 0;} .hero-date{font-family:Playfair Display,serif;color:#6f665e;margin-bottom:10px;}
.hero-sub{color:var(--muted);margin-top:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin:18px 0;} .card.soft{background:#fbfaf8;}
.well{background:#fbfaf8;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px;} .section-title{font-family:Playfair Display,serif;margin:0 0 10px 0;font-weight:600;}
.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:14px;} .grid-3{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;margin-top:8px;}
.grid-5{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr)) auto;gap:8px;margin-top:12px;}
.chip-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px;} .chip{display:inline-block;background:#efe7e0;color:#574438;padding:8px 12px;border-radius:999px;font-size:13px;border:1px solid #e0d6cd;}
.search-wrap{display:flex;gap:8px;align-items:center;margin-bottom:12px;} .search-input{flex:1;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:16px;}
.btn{padding:10px 14px;border:none;border-radius:12px;background:var(--brown);color:#fff;cursor:pointer;font-weight:600;box-shadow:0 2px 0 rgba(0,0,0,.06);text-decoration:none;display:inline-flex;align-items:center;gap:8px;}
.btn:hover{background:var(--brown-2);} .btn-ghost{background:#efe7e0;color:#3a2a1d;border:1px solid #e0d6cd;} .btn-ghost:hover{background:#e8ded5;}
.btn-outline{background:transparent;color:#3a2a1d;border:1px solid #e0d6cd;} .btn-outline:hover{background:#efe7e0;} .btn-email{background:var(--brown);color:#fff;border:1px solid var(--brown-2);}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;} table{width:100%;border-collapse:collapse;background:#fff;}
th,td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:middle;} th{background:#fbfaf8;font-weight:600;} tr:hover td{background:#fff7f0;}
.status-cell{display:flex;align-items:center;gap:8px;} .tick{display:inline-flex;width:20px;height:20px;border-radius:50%;background:#e8f7ea;border:1px solid #bfe7c5;align-items:center;justify-content:center;}
.tick svg{width:14px;height:14px;fill:#1f8a2e;} .checkin-btn{padding:6px 10px;border-radius:10px;background:#e8f1ea;color:#1f4d2a;border:1px solid #cfe1d4;cursor:pointer;font-weight:600;}
.checkin-btn[disabled]{opacity:.6;cursor:default}
.guest-details{background:#fbfaf8;border:1px solid var(--line);border-radius:14px;padding:14px;}
.svg-wrap{padding:10px;border:1px dashed #d8c8bb;border-radius:14px;background:#fff;}
.site-footer{padding:30px 18px 40px;text-align:center;color:#7a726b;} .footer-top{font-weight:600;letter-spacing:.5px;margin-bottom:6px;}
.footer-social{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:12px;color:#9b9188;} .footer-social .handle{color:#9b9188;}
.footer-buttons{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;} .emoji{font-size:18px;}
.hidden{display:none !important;} .admin-top{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px;}
.stat{background:#fbfaf8;border:1px solid var(--line);border-radius:12px;padding:10px 14px;min-width:160px;} .stat-label{color:#6b6a67;font-size:12px;margin-bottom:4px;} .stat-value{font-family:Playfair Display,serif;font-size:28px;}
.admin-controls{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0;} input{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;} label{font-size:14px;color:#3f3a35;margin-bottom:6px;display:block;}
.error{color:#b00020;margin-top:8px;} .muted{color:#6b6a67;}

/* clickable tables helpers */
.svg-mount svg{max-width:100%; height:auto; display:block;}
.svg-mount [id]{cursor:pointer}
.svg-mount .table-active{outline:2px solid #4b2e1f; outline-offset:2px; filter:drop-shadow(0 2px 4px rgba(0,0,0,.12));}
.svg-mount .table-hit{transform:scale(.98); transition:transform .06s;}


/* Single-column grid for full-width guest list when details card is removed */
.grid-1{display:grid;grid-template-columns:1fr;gap:16px;margin-top:8px;}

/* Simple modal */
.modal.hidden{display:none;}
.modal{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:9999;}
.modal-backdrop{position:absolute; inset:0; background:rgba(0,0,0,0.4);}
.modal-card{position:relative; background:#fff; border-radius:14px; padding:16px; width:min(560px, 92vw); box-shadow:var(--shadow);}
.modal-actions{display:flex; gap:8px; justify-content:flex-end; margin-top:12px;}
.grid-4{display:grid; grid-template-columns:repeat(4, minmax(120px, 1fr)); gap:10px;}
@media (max-width: 860px){ .grid-4{ grid-template-columns:1fr 1fr; } }

/* Admin action buttons: consistent sizing */
.checkin-btn, .btn.btn-ghost{ min-width:96px; height:36px; display:inline-flex; align-items:center; justify-content:center; }
.table-wrap table td:last-child, .guest-card .actions{ display:flex; gap:10px; align-items:center; }
.table-wrap table td{ vertical-align:middle; }
