:root{--ink:#4c292a;--paper:#fbf5f1;--card:#fff;--coral:#c9827a;--olive:#66745a;--gold:#c9a46a;--muted:#795f5d;--line:#eadbd3;--danger:#9b3d3d;--shadow:0 20px 60px rgba(76,41,42,.09)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 10% 0,#fff 0,transparent 28%),var(--paper);color:var(--ink);font:15px/1.6 Montserrat,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.portal-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:10px max(18px,calc((100vw - 1120px)/2));background:rgba(251,245,241,.9);border-bottom:1px solid rgba(76,41,42,.08);backdrop-filter:blur(14px)}
.brand{font:700 1.45rem "Cormorant Garamond",serif;text-decoration:none;letter-spacing:.12em}.brand i{color:var(--coral);font-weight:500}.portal-topbar nav{display:flex;gap:18px}.portal-topbar nav a{font-size:.78rem;font-weight:700;text-decoration:none}
.portal-shell{width:min(1120px,calc(100% - 32px));margin:38px auto 90px}
.eyebrow{margin:0 0 7px;color:var(--coral);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
h1,h2,h3{font-family:"Cormorant Garamond",serif;line-height:1.05}h1{font-size:clamp(2.6rem,8vw,5.5rem)}h2{margin:0;font-size:clamp(2rem,4vw,3rem)}h3{font-size:1.6rem}
.lookup-card{width:min(590px,100%);margin:7vh auto;padding:clamp(28px,6vw,58px);background:var(--card);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);text-align:center}.lookup-card h1{margin:5px 0 12px;font-size:clamp(3rem,9vw,5rem)}.lookup-card>p:not(.eyebrow){color:var(--muted)}
.lookup-form{display:grid;gap:10px;margin-top:28px;text-align:left}.lookup-form label,.edit-panel label{font-size:.78rem;font-weight:700}.lookup-form input,.edit-panel input,.edit-panel select,.edit-panel textarea{width:100%;margin-top:5px;padding:12px 13px;border:1px solid #d8c5bd;border-radius:10px;background:#fff}.lookup-form button,.save-button{min-height:48px;border:0;border-radius:10px;background:var(--ink);color:#fff;font-weight:700;cursor:pointer}.privacy-note{font-size:.72rem!important}
.wedding-pass{position:relative;display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:28px;align-items:center;min-height:220px;padding:34px 38px;overflow:hidden;background:var(--ink);color:#fff;border-radius:28px;box-shadow:0 28px 70px rgba(76,41,42,.2)}.wedding-pass:after{content:"";position:absolute;top:-55%;right:-40px;width:240px;height:440px;border:1px solid rgba(201,164,106,.35);border-radius:50%;transform:rotate(22deg)}.pass-date{display:flex;align-items:center;gap:12px;padding-right:25px;border-right:1px solid rgba(255,255,255,.2)}.pass-date span{font:600 5.2rem/1 "Cormorant Garamond",serif}.pass-date small{font-weight:700;letter-spacing:.14em;line-height:1.35}.pass-main h1{margin:0 0 6px}.pass-main>p:last-child{margin:0;color:#e9d8d4}.wedding-pass .eyebrow{color:#e8bcb4}.pass-facts{position:relative;z-index:1;display:grid;gap:13px;margin:0}.pass-facts div{padding-left:15px;border-left:2px solid var(--gold)}.pass-facts dt{color:#d7beb8;font-size:.64rem;font-weight:700;text-transform:uppercase}.pass-facts dd{margin:0;font-weight:700}
.notice{margin:18px 0 0;padding:13px 16px;border-radius:12px}.notice.success{background:#e4efe1;color:#34502e}.notice.error{background:#f8dfdc;color:#7e2828}.notice.locked{background:#f3e9d7;color:#674b22}
.action-strip{display:flex;gap:8px;margin:17px 0 26px;flex-wrap:wrap}.action-strip a,.action-strip button,.quiet-button,.close-edit,.secondary-button,.danger{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:.76rem;font-weight:700;text-decoration:none;cursor:pointer}
.portal-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.panel,.edit-panel{padding:clamp(22px,4vw,36px);background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 35px rgba(76,41,42,.045)}
.timeline{position:relative;display:grid;gap:0;margin:24px 0 0;padding:0;list-style:none}.timeline:before{content:"";position:absolute;top:11px;bottom:11px;left:61px;width:1px;background:linear-gradient(var(--coral),var(--gold))}.timeline li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:28px;padding:11px 0}.timeline li:after{content:"";position:absolute;left:57px;top:20px;width:7px;height:7px;background:var(--card);border:2px solid var(--coral);border-radius:50%}.timeline time{font-size:.75rem;font-weight:700}.timeline strong,.timeline span{display:block}.timeline span{color:var(--muted);font-size:.82rem}
.status-block{display:grid;grid-template-columns:12px 1fr;gap:12px;margin-top:23px}.status-dot{width:10px;height:10px;margin-top:7px;border:2px solid #ba9d94;border-radius:50%}.status-dot.ready{background:var(--olive);border-color:var(--olive)}.status-block strong{font-size:.88rem}.status-block p{margin:3px 0;color:var(--muted);font-size:.78rem}.payment-line{display:grid;grid-template-columns:1fr auto;gap:2px 15px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.payment-line span,.payment-line small{font-size:.72rem}.payment-line strong{font-size:1.1rem}.payment-line small{grid-column:1/-1;color:var(--muted)}
.people-panel,.practical-panel,.edit-panel{margin-top:18px}.section-heading,.row-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.people-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}.people-summary article{display:grid;grid-template-columns:42px 1fr;gap:11px;padding:14px;background:#fdf9f6;border:1px solid #f0e4de;border-radius:14px}.initial{display:grid;place-items:center;width:42px;height:42px;background:var(--ink);color:#fff;border-radius:50%;font-family:"Cormorant Garamond",serif;font-size:1.35rem}.people-summary strong,.people-summary p,.people-summary small{display:block}.people-summary p{margin:2px 0;color:var(--muted);font-size:.72rem}.people-summary small{color:var(--olive);font-size:.68rem}
.edit-panel[hidden]{display:none}.edit-panel{scroll-margin-top:90px}.form-grid,.courses,.transport-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.edit-guests{display:grid;gap:12px;margin:18px 0}.edit-guest{padding:18px;border:1px solid var(--line);border-radius:15px}.edit-guest label{display:block;margin-top:12px}.danger{padding:7px 11px;background:#fff0ee;color:var(--danger)}.type-note{color:var(--muted);font-size:.76rem}.transport-edit{margin:22px 0;padding:20px;background:#f8f2ec;border-radius:16px}.transport-edit h3{margin:0 0 12px}.save-button{width:100%;margin-top:18px}.close-edit{border-color:transparent}.secondary-button{border-radius:10px}
.practical-panel details{border-bottom:1px solid var(--line)}.practical-panel summary{padding:15px 0;font-weight:700;cursor:pointer}.practical-panel details p{margin:0 0 16px;color:var(--muted);font-size:.82rem}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(max-width:800px){.wedding-pass{grid-template-columns:90px 1fr}.pass-facts{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.portal-grid{grid-template-columns:1fr}.people-summary{grid-template-columns:1fr}}
@media(max-width:560px){.portal-topbar nav a:not(:last-child){display:none}.portal-shell{width:min(100% - 20px,1120px);margin-top:14px}.wedding-pass{grid-template-columns:1fr;gap:12px;padding:27px 23px}.pass-date{border:0;padding:0}.pass-date span{font-size:4rem}.pass-main h1{font-size:3.2rem}.pass-facts{grid-column:1;gap:8px}.panel,.edit-panel{padding:22px 18px;border-radius:17px}.form-grid,.courses,.transport-fields{grid-template-columns:1fr}.section-heading{align-items:flex-start}.action-strip>*{flex:1;text-align:center}.timeline:before{left:53px}.timeline li{grid-template-columns:40px 1fr}.timeline li:after{left:49px}}
@media print{.portal-topbar,.action-strip,.notice,.edit-panel,.practical-panel{display:none!important}body{background:#fff}.portal-shell{width:100%;margin:0}.wedding-pass{box-shadow:none}.panel{box-shadow:none;break-inside:avoid}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
