:root{--rose:#e11d48;--rose-dark:#a3122f;--gold:#f5a623;--blue:#2563eb;--cream:#fff4e6;--ink:#1a1024;--white:#fff;--gray:#6b6470}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--cream);color:var(--ink);margin:0;font-family:Inter,system-ui,sans-serif}h1,h2,h3,h4{margin:0;font-family:Poppins,sans-serif;line-height:1.1}p{margin:0}button,input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}.page{flex-direction:column;min-height:100vh;display:flex}.host-nav{background:var(--white);border-bottom:3px solid var(--ink);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.brand{align-items:center;gap:.5rem;display:flex}.brand-mark{font-size:1.6rem}.brand-mark.large{font-size:3rem}.brand-text{font-family:Poppins,sans-serif;font-size:1.3rem;font-weight:800}.brand-text em{color:var(--rose);font-style:normal}.host-nav-right{align-items:center;gap:1rem;display:flex}.host-email{color:var(--gray);font-size:.9rem}.btn{border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:var(--white);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1.3rem;font-size:.95rem;font-weight:700;transition:transform .1s,box-shadow .1s;display:inline-flex}.btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.btn-rose{background:var(--rose);color:var(--white)}.btn-blue{background:var(--blue);color:var(--white)}.btn-gold{background:var(--gold);color:var(--ink)}.btn-white{background:var(--white);color:var(--ink)}.btn-ghost{box-shadow:none;border:2px solid var(--ink);background:0 0}.btn-outline-rose{background:var(--white);color:var(--rose);border-color:var(--rose)}.btn.big{padding:.9rem 1.8rem;font-size:1.05rem}.btn.full{width:100%}.card{background:var(--white);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:18px}.auth-screen{background:linear-gradient(135deg, var(--cream), #ffe3c7);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background:var(--white);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);border-radius:24px;width:100%;max-width:420px;padding:2.5rem}.auth-brand{text-align:center;margin-bottom:1.5rem}.auth-brand h1{margin:.5rem 0;font-size:1.8rem}.auth-brand em{color:var(--rose);font-style:normal}.auth-brand p{color:var(--gray);margin-top:.5rem}.auth-form{flex-direction:column;gap:.9rem;display:flex}.auth-form label{flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:600;display:flex}.auth-form input{border:2px solid var(--ink);border-radius:12px;padding:.8rem 1rem;font-size:1rem}.auth-note{font-weight:600}.auth-disclaimer{color:var(--gray);background:var(--cream);border-radius:10px;padding:.7rem 1rem;font-size:.85rem}.dashboard{width:100%;max-width:1100px;margin:0 auto;padding:2rem}.hero-block{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;display:flex}.eyebrow{background:var(--blue);color:var(--white);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;margin-bottom:.6rem;padding:.3rem .8rem;font-size:.75rem;font-weight:700;display:inline-block}.hero-block h1{margin-bottom:.4rem;font-size:2.2rem}.hero-block p{color:var(--gray)}.event-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.event-card{display:block;overflow:hidden}.event-card-band{height:10px}.event-card-body{padding:1.3rem}.event-card h3{margin-bottom:.4rem;font-size:1.2rem}.event-meta{margin-top:.2rem;font-size:.9rem}.event-meta.muted{color:var(--gray)}.progress-bar{border:2px solid var(--ink);background:#eee;border-radius:999px;height:10px;margin:.9rem 0 .5rem;display:flex;overflow:hidden}.seg-yes{background:var(--blue)}.seg-no{background:var(--rose)}.seg-pending{background:var(--gold)}.event-stats{color:var(--gray);gap:1rem;font-size:.85rem;display:flex}.event-stats strong{color:var(--ink)}.empty-state{text-align:center;padding:2.5rem}.empty-state h3{margin-bottom:.5rem}.empty-state p{color:var(--gray);margin-bottom:1rem}.form-page{width:100%;max-width:800px;margin:0 auto;padding:2rem}.form-page h1{margin-bottom:.3rem;font-size:1.9rem}.subtitle{color:var(--gray);margin-bottom:1.5rem}.event-form{flex-direction:column;gap:1.5rem;display:flex}.form-section{padding:1.6rem}.form-section h2{margin-bottom:1rem;font-size:1.2rem}.field-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field{flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:600;display:flex}.field.span-2{grid-column:1/-1}.field input,.field textarea{border:2px solid var(--ink);border-radius:10px;padding:.7rem .9rem;font-size:.95rem;font-weight:400}.swatch-row{gap:.6rem;margin-top:.3rem;display:flex}.swatch{border:2px solid var(--ink);cursor:pointer;border-radius:50%;width:34px;height:34px}.swatch.active{outline:3px solid var(--ink);outline-offset:2px}.note{color:var(--gray);background:var(--cream);border-radius:10px;margin-top:.8rem;padding:.6rem .9rem;font-size:.82rem}.tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.tab{border:2px solid var(--ink);background:var(--white);cursor:pointer;border-radius:999px;padding:.5rem 1rem;font-size:.85rem;font-weight:700}.tab.active{background:var(--blue);color:var(--white)}.tab-panel{flex-direction:column;gap:.8rem;display:flex}.tab-panel textarea,.tab-panel input{border:2px solid var(--ink);border-radius:10px;padding:.7rem .9rem;font-size:.9rem}.hint{color:var(--gray);font-size:.8rem}.manual-row{grid-template-columns:repeat(4,1fr) auto;align-items:center;gap:.6rem;display:grid}.staged-table-wrap{margin-top:1rem;overflow-x:auto}.staged-table{border-collapse:collapse;width:100%;font-size:.85rem}.staged-table th{text-align:left;color:var(--gray);border-bottom:2px solid var(--ink);padding:.4rem .6rem;font-weight:600}.staged-table td{border-bottom:1px solid #e5dfd5;padding:.5rem .6rem}.link-btn{color:var(--rose);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:700}.link-btn.danger{color:var(--rose-dark)}.form-actions{justify-content:flex-end;display:flex}.detail-page{flex-direction:column;gap:1.5rem;width:100%;max-width:1100px;margin:0 auto;padding:2rem;display:flex}.detail-hero{overflow:hidden}.detail-band{height:12px}.detail-hero-body{flex-wrap:wrap;justify-content:space-between;gap:1.5rem;padding:1.8rem;display:flex}.detail-hero-body h1{margin-bottom:.4rem;font-size:1.8rem}.event-desc{color:var(--gray);max-width:520px;margin-top:.6rem}.detail-actions{flex-wrap:wrap;align-items:flex-start;gap:.6rem;display:flex}.stats-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;display:grid}.stat-pill{border:3px solid var(--ink);text-align:center;box-shadow:4px 4px 0 var(--ink);background:var(--white);border-radius:16px;padding:1rem}.stat-pill strong{font-family:Poppins,sans-serif;font-size:1.8rem;display:block}.stat-pill span{color:var(--gray);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.stat-pill.yes strong{color:var(--blue)}.stat-pill.no strong{color:var(--rose)}.stat-pill.pending strong{color:var(--gold)}.reminder-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 1.6rem;display:flex}.reminder-row h3{margin-bottom:.3rem}.muted{color:var(--gray)}.small{font-size:.85rem}.guest-toolbar{flex-wrap:wrap;gap:1rem;display:flex}.search-input{border:2px solid var(--ink);border-radius:999px;flex:1;min-width:220px;padding:.7rem 1rem;font-size:.95rem}.manual-add-card{grid-template-columns:1fr 1fr 1fr auto;gap:.7rem;padding:1.2rem;display:grid}.manual-add-card input{border:2px solid var(--ink);border-radius:10px;padding:.6rem .8rem}.guest-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;display:grid}.guest-card{flex-direction:column;gap:.6rem;padding:1.2rem;display:flex}.guest-card-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.guest-card-top h4{font-size:1.05rem}.badge{text-transform:uppercase;letter-spacing:.03em;border:2px solid var(--ink);border-radius:999px;padding:.25rem .6rem;font-size:.7rem;font-weight:700}.badge-yes{background:var(--blue);color:var(--white)}.badge-no{background:var(--rose);color:var(--white)}.badge-pending{background:var(--gold);color:var(--ink)}.dietary-block{flex-direction:column;gap:.3rem;display:flex}.dietary-label{text-transform:uppercase;color:var(--gray);letter-spacing:.04em;font-size:.7rem;font-weight:700}.dietary-tag{text-align:left;border:2px dashed var(--gray);cursor:pointer;color:var(--gray);background:0 0;border-radius:10px;padding:.5rem .7rem;font-size:.85rem}.dietary-tag.flagged{border:2px solid var(--rose);color:var(--rose-dark);background:#fdeaea;font-weight:600}.dietary-edit{gap:.5rem;display:flex}.dietary-edit input{border:2px solid var(--ink);border-radius:10px;flex:1;padding:.5rem .7rem}.guest-notes{color:var(--gray);font-size:.85rem;font-style:italic}.guest-card-actions{justify-content:space-between;align-items:center;margin-top:auto;padding-top:.5rem;display:flex}.guest-card-actions select{border:2px solid var(--ink);border-radius:8px;padding:.4rem .6rem;font-size:.85rem;font-weight:600}.invite-screen{background:var(--cream);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.blob{filter:blur(2px);opacity:.85;border-radius:50%;position:absolute}.blob-1{background:var(--accent,var(--rose));width:320px;height:320px;top:-100px;left:-80px}.blob-2{background:var(--gold);width:260px;height:260px;bottom:-80px;right:-60px}.blob-3{background:var(--blue);opacity:.5;width:180px;height:180px;bottom:20%;left:5%}.invite-card,.rsvp-card{z-index:1;background:var(--white);border:4px solid var(--ink);box-shadow:10px 10px 0 var(--ink);border-radius:28px;width:100%;max-width:560px;padding:2.6rem;position:relative}.invite-tag{background:var(--accent,var(--rose));color:var(--white);letter-spacing:.1em;border-radius:999px;margin-bottom:1rem;padding:.4rem 1rem;font-size:.8rem;font-weight:800;display:inline-block}.invite-title{margin-bottom:1.2rem;font-size:2.3rem;font-weight:900}.invite-facts{flex-direction:column;gap:.6rem;margin-bottom:1.2rem;display:flex}.fact{align-items:baseline;gap:.6rem;display:flex}.fact-label{text-transform:uppercase;letter-spacing:.05em;color:var(--gray);flex-shrink:0;width:80px;font-size:.75rem;font-weight:700}.fact-value{font-weight:600}.invite-desc{color:var(--gray);margin-bottom:1rem;line-height:1.5}.invite-spots{color:var(--accent,var(--rose));margin-bottom:1.4rem;font-weight:700}.back-link{color:var(--gray);margin-bottom:1rem;font-size:.85rem;font-weight:600;display:inline-block}.rsvp-title{margin-bottom:1.2rem;font-size:1.5rem}.steps-indicator{gap:.5rem;margin-bottom:1.5rem;display:flex}.dot{border:2px solid var(--ink);background:#e5dfd5;border-radius:999px;width:34px;height:8px}.dot.active{background:var(--accent,var(--rose))}.rsvp-form{flex-direction:column;gap:1.1rem;display:flex}.rsvp-form .field input,.rsvp-form .field textarea{border:2px solid var(--ink);border-radius:12px;padding:.75rem .9rem;font-size:.95rem}.field-label{font-weight:700}.attend-toggle{gap:.8rem;display:flex}.attend-btn{border:3px solid var(--ink);background:var(--white);cursor:pointer;border-radius:14px;flex:1;padding:.9rem;font-size:.95rem;font-weight:700}.attend-btn.yes.active{background:var(--blue);color:var(--white)}.attend-btn.no.active{background:var(--rose);color:var(--white)}.tag-grid{flex-wrap:wrap;gap:.6rem;display:flex}.diet-chip{border:2px solid var(--ink);background:var(--white);cursor:pointer;border-radius:999px;padding:.5rem 1rem;font-size:.85rem;font-weight:600}.diet-chip.active{background:var(--gold)}.rsvp-confirm{text-align:center;flex-direction:column;align-items:center;gap:.8rem;display:flex}.confirm-emoji{font-size:3rem}.rsvp-confirm h3{font-size:1.5rem}.rsvp-confirm .note{text-align:left}.toast{background:var(--ink);color:var(--white);z-index:50;text-align:center;border-radius:999px;max-width:90vw;padding:.8rem 1.4rem;font-size:.9rem;font-weight:600;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:4px 4px #0003}@media (width<=640px){.field-grid,.manual-row,.manual-add-card{grid-template-columns:1fr}.detail-hero-body{flex-direction:column}.invite-title{font-size:1.8rem}}
