:root{--bg:#0b0c10;--card:#121318;--text:#e8e8ed;--muted:#b3b3b3;--accent:#6ee7b7;--accent-2:#60a5fa;--danger:#f87171;--border:#1f2430}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Noto Sans",sans-serif;line-height:1.5}
.container{max-width:960px;margin:0 auto;padding:16px}
.muted{color:var(--muted)}
header h1{font-size:1.5rem;margin:8px 0 0}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;margin:12px 0}
.stack>*{display:block;margin-top:10px}
.stack>*:first-child{margin-top:0}
.row{display:flex;align-items:center;gap:8px}
.btn{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#000;font-weight:600;border:none;border-radius:10px;padding:10px 14px;cursor:pointer;box-shadow:0 1px 0 rgba(255,255,255,.2) inset, 0 8px 20px rgba(0,0,0,.25)}
.btn:hover{filter:brightness(1.05)}
.btn.small{padding:6px 10px;border-radius:8px}
/* Icon-sized button for compact actions (e.g., copy) */
.btn.btn-icon{padding:6px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px}
.btn.btn-icon svg{width:16px;height:16px;display:block}
.btn.btn-icon.copied{filter:brightness(1.15)}
label{font-weight:600}
textarea,input[type="text"],input[type="number"],select{width:100%;padding:10px;border-radius:10px;border:1px solid var(--border);background:#0e1016;color:var(--text)}
.table{width:100%;border-collapse:separate;border-spacing:0}
.table th,.table td{padding:10px;border-bottom:1px solid var(--border);text-align:left}
.scroll{overflow:auto}
.badge{display:inline-block;padding:.2rem .5rem;border-radius:999px;background:#374151;color:#e5e7eb;font-size:.75rem}
.badge.success{background:#064e3b;color:#a7f3d0}
.badge.danger{background:#7f1d1d;color:#fecaca}
.link{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}
.alert{padding:10px;border-radius:10px;background:#0f172a;border:1px solid var(--border)}
.alert.success{background:#052e2b;color:#d1fae5;border-color:#064e3b}
@media (min-width:720px){.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}}
/* Collapsible add-guests section */
details.collapsible{margin:0}
details.collapsible summary{cursor:pointer;font-weight:700}
details.collapsible[open] summary{margin-bottom:10px}
