/* Онлайн шақыру билеті: конструктор, бет для гостей, панель хозяина */

/* ---------- 4 дизайна ---------- */
[data-theme]{--i-accent:#d9bb63;--i-bg:linear-gradient(160deg,#205442,#123c30);--i-text:#fff;--i-text2:#d0e2d7;--i-surface:rgba(255,255,255,.07);--i-border:rgba(217,187,99,.38);--i-btn-text:#123c30;--i-glow:rgba(217,187,99,.2);--i-field:rgba(0,0,0,.2)}
[data-theme=rose]{--i-accent:#e6a5a7;--i-bg:linear-gradient(160deg,#583c49,#302c3a);--i-text2:#ecd9dd;--i-border:rgba(230,165,167,.42);--i-btn-text:#302c3a;--i-glow:rgba(230,165,167,.22)}
[data-theme=ivory]{--i-accent:#a98142;--i-bg:linear-gradient(160deg,#fbf3e0,#eadcc0);--i-text:#3a3023;--i-text2:#665b4b;--i-surface:rgba(255,255,255,.6);--i-border:rgba(169,129,66,.5);--i-btn-text:#fff;--i-glow:rgba(169,129,66,.22);--i-field:rgba(255,255,255,.75)}
[data-theme=blue]{--i-accent:#a9d8cf;--i-bg:linear-gradient(160deg,#293f53,#192b3a);--i-text2:#cfe0e6;--i-border:rgba(169,216,207,.4);--i-btn-text:#192b3a;--i-glow:rgba(169,216,207,.2)}
[data-theme=emerald]{--i-accent:#edcf82;--i-bg:linear-gradient(145deg,#1b6853,#123a35);--i-text2:#d2eee1;--i-border:rgba(237,207,130,.48);--i-btn-text:#173b32;--i-glow:rgba(100,210,160,.24)}
[data-theme=plum]{--i-accent:#f0bd81;--i-bg:linear-gradient(150deg,#743f68,#352943);--i-text2:#f0dce9;--i-border:rgba(240,189,129,.48);--i-btn-text:#382942;--i-glow:rgba(210,125,180,.24)}
[data-theme=minimal]{--i-accent:#d9d0b8;--i-bg:linear-gradient(160deg,#424b49,#222c2c);--i-text2:#d7ddda;--i-border:rgba(217,208,184,.4);--i-btn-text:#303a37;--i-glow:rgba(220,220,200,.15)}

/* ---------- конструктор ---------- */
.invite-builder{padding:130px 0 80px;min-height:100vh}
.invite-builder .section-header{margin-bottom:34px}
.builder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);gap:28px;align-items:start}
.invite-form,.invite-preview-wrap,.result-box,.mine-box{background:var(--glass);border:1px solid var(--glass-border);border-radius:20px;padding:28px}
.invite-form h2,.invite-preview-wrap h2,.result-box h2,.mine-box h2{font:600 1.5rem var(--font-display);margin-bottom:20px;color:var(--gold)}
.invite-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.invite-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.invite-field.wide{grid-column:1/-1}
.invite-field label,.invite-field-label{font-size:.82rem;color:var(--text2)}
.invite-field input,.invite-field select,.invite-field textarea{width:100%;min-height:48px;padding:12px 14px;font-size:1rem;color:var(--text);background:rgba(0,0,0,.17);border:1px solid var(--glass-border);border-radius:9px;outline:none}
.invite-field textarea{min-height:120px;resize:vertical}
.invite-field input:focus,.invite-field select:focus,.invite-field textarea:focus{border-color:var(--gold)}
.invite-field select option{background:var(--bg2)}
.invite-field input[type=file]{padding:9px}
.field-hint{font-size:.76rem;color:var(--text3)}
.design-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.template-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--text3);font-size:.76rem;margin:-2px 0 3px}
.template-heading p{margin:0}.template-heading span{color:var(--gold);white-space:nowrap}
.design-choice{display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid var(--glass-border);border-radius:12px;background:var(--glass2);color:var(--text2);padding:7px;cursor:pointer;font-size:.78rem;min-width:0;transition:transform .2s,border-color .2s,box-shadow .2s}
.design-choice:hover{transform:translateY(-2px)}
.design-choice strong{padding:2px 4px 0;color:var(--text);font-size:.8rem}
.design-choice>small{padding:0 4px 3px;color:var(--text3);font-size:.68rem}
.design-choice[aria-pressed=true]{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-dim);background:var(--glass)}
.template-thumb{--i-accent:#d9bb63;--i-bg:linear-gradient(160deg,#205442,#123c30);--i-text:#fff;--i-text2:#d0e2d7;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;aspect-ratio:1.45;border:1px solid var(--i-border);border-radius:8px;background:radial-gradient(ellipse at top,var(--i-glow),transparent 70%),var(--i-bg);color:var(--i-text);text-align:center;padding:12px 6px}
.template-thumb[data-theme=rose]{--i-accent:#e6a5a7;--i-bg:linear-gradient(160deg,#583c49,#302c3a);--i-text2:#ecd9dd;--i-border:rgba(230,165,167,.42);--i-glow:rgba(230,165,167,.22)}
.template-thumb[data-theme=ivory]{--i-accent:#a98142;--i-bg:linear-gradient(160deg,#fbf3e0,#eadcc0);--i-text:#3a3023;--i-text2:#665b4b;--i-border:rgba(169,129,66,.5);--i-glow:rgba(169,129,66,.22)}
.template-thumb[data-theme=blue]{--i-accent:#a9d8cf;--i-bg:linear-gradient(160deg,#293f53,#192b3a);--i-text2:#cfe0e6;--i-border:rgba(169,216,207,.4);--i-glow:rgba(169,216,207,.2)}
.template-thumb[data-theme=emerald]{--i-accent:#edcf82;--i-bg:linear-gradient(145deg,#1b6853,#123a35);--i-text2:#d2eee1;--i-border:rgba(237,207,130,.48);--i-glow:rgba(100,210,160,.24)}
.template-thumb[data-theme=plum]{--i-accent:#f0bd81;--i-bg:linear-gradient(150deg,#743f68,#352943);--i-text2:#f0dce9;--i-border:rgba(240,189,129,.48);--i-glow:rgba(210,125,180,.24)}
.template-thumb[data-theme=minimal]{--i-accent:#d9d0b8;--i-bg:linear-gradient(160deg,#424b49,#222c2c);--i-text2:#d7ddda;--i-border:rgba(217,208,184,.4);--i-glow:rgba(220,220,200,.15)}
.template-thumb i{font-style:normal;color:var(--i-accent);font-size:1rem}
.template-thumb b{font:600 1rem/1 var(--font-display);color:var(--i-text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-thumb small{font-size:.5rem;letter-spacing:2px;color:var(--i-accent)}
.design-choice:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.builder-note{font-size:.82rem;color:var(--text3);margin:18px 0 0;line-height:1.6}
.builder-note strong{color:var(--gold)}
.form-error{display:none;margin-top:16px;padding:12px 14px;border-radius:9px;background:rgba(190,60,60,.2);border:1px solid rgba(230,120,120,.5);color:#ffe3e0;font-size:.9rem}
.form-error.show{display:block}
.invite-form .btn-block{margin-top:20px}
.invite-form .btn[disabled]{opacity:.6;cursor:wait}
.hp-field{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.invite-preview-wrap{position:sticky;top:96px}

/* карточка (предпросмотр) */
.invite-card{position:relative;min-height:400px;padding:34px 24px;overflow:hidden;border:1px solid var(--i-border);border-radius:18px;background:radial-gradient(ellipse at top,var(--i-glow),transparent 62%),var(--i-bg);color:var(--i-text);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate}
.invite-card::before,.invite-card::after{content:'✦';position:absolute;color:var(--i-accent);opacity:.5;font-size:2rem;animation:inv-float 5s ease-in-out infinite;z-index:-1}
.invite-card::before{top:20px;left:22px}
.invite-card::after{right:24px;bottom:18px;animation-delay:-2s}
@keyframes inv-float{50%{transform:translateY(-9px) rotate(14deg)}}
.invite-kicker{font-size:.68rem;letter-spacing:3px;text-transform:uppercase;color:var(--i-accent)}
.invite-card h3{font:600 clamp(2rem,5vw,2.7rem) var(--font-display);line-height:1.05;margin:18px 0 10px;overflow-wrap:anywhere}
.invite-sub{color:var(--i-text2);font-size:.88rem}
.invite-divider{width:70px;height:1px;background:var(--i-accent);margin:20px auto;display:block}
.invite-date{font:600 1.25rem var(--font-display);color:var(--i-accent);display:block}
.invite-venue{margin-top:9px;color:var(--i-text2);font-size:.84rem}
.invite-message{font:italic 1.05rem var(--font-display);max-width:340px;margin:20px auto 0;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.invite-photo-preview{display:none;width:92px;height:92px;object-fit:cover;border-radius:50%;border:2px solid var(--i-accent);margin:14px auto 0}

/* результат */
.result-box,.mine-box{max-width:760px;margin:0 auto}
.mine-box{margin-top:28px}
.result-box[hidden],.mine-box[hidden],.builder-grid[hidden]{display:none}
.result-ok{display:flex;gap:12px;align-items:center;margin-bottom:22px;color:var(--text)}
.result-ok b{font:600 1.5rem var(--font-display);color:var(--gold)}
.link-block{margin-bottom:22px}
.link-block h3{font-size:.95rem;font-weight:600;margin-bottom:4px}
.link-block p{font-size:.82rem;color:var(--text3);margin-bottom:9px}
.link-row{display:flex;gap:8px}
.link-row input{flex:1;min-width:0;min-height:46px;padding:10px 12px;font-size:.88rem;color:var(--text);background:rgba(0,0,0,.17);border:1px solid var(--glass-border);border-radius:9px}
.link-block.secret{padding:16px;border:1px dashed var(--gold-border);border-radius:12px}
.btn-sm{padding:11px 18px;font-size:.85rem}
.action-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 4px}
.qr-box{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:6px}
.qr-box canvas{width:170px;height:170px;border-radius:12px;background:#fff;padding:8px}
.mine-list{list-style:none;display:grid;gap:10px}
.mine-list a{display:flex;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass2)}
.mine-list a:hover{border-color:var(--gold)}
.mine-list small{color:var(--text3)}

/* ---------- страница гостя ---------- */
body.guest{background:var(--i-bg) fixed;color:var(--i-text);font-family:var(--font-body);min-height:100vh;overflow-x:hidden}
body.guest a{color:inherit}
body.guest [hidden]{display:none!important}
.guest .wrap{width:min(560px,100% - 32px);margin:0 auto}
.curtain{position:fixed;inset:0;z-index:60;pointer-events:none;animation:curtain-gone 0s 2.3s forwards}
.curtain i{position:absolute;top:0;bottom:0;width:50%;background:var(--i-bg);border:0 solid var(--i-accent)}
.curtain .curtain-l{left:0;border-right-width:1px;animation:curtain-l 1.2s cubic-bezier(.7,0,.2,1) 1s forwards}
.curtain .curtain-r{right:0;border-left-width:1px;animation:curtain-r 1.2s cubic-bezier(.7,0,.2,1) 1s forwards}
.curtain .seal{position:absolute;left:50%;top:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;display:grid;place-items:center;font-size:1.9rem;color:var(--i-btn-text);background:var(--i-accent);box-shadow:0 0 0 8px var(--i-glow);animation:seal 1s ease .15s both,seal-out .5s ease .9s forwards}
@keyframes curtain-l{to{transform:translateX(-101%)}}
@keyframes curtain-r{to{transform:translateX(101%)}}
@keyframes seal{from{transform:scale(.3) rotate(-90deg);opacity:0}}
@keyframes seal-out{to{transform:scale(1.6);opacity:0}}
@keyframes curtain-gone{to{visibility:hidden}}

.cover{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px 90px;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,var(--i-glow),transparent 65%)}
.cover::before{content:'';position:absolute;inset:18px;border:1px solid var(--i-border);border-radius:24px;pointer-events:none}
.cover::after{content:'';position:absolute;inset:26px;border:1px solid var(--i-border);border-radius:18px;opacity:.4;pointer-events:none}
.spark{position:absolute;color:var(--i-accent);opacity:.55;pointer-events:none;animation:inv-float var(--d,6s) ease-in-out infinite;animation-delay:var(--dl,0s)}
.rise{opacity:0;animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(1.7s + var(--n,0) * .14s)}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.cover-photo{width:132px;height:132px;border-radius:50%;object-fit:cover;border:2px solid var(--i-accent);box-shadow:0 0 0 8px var(--i-glow);margin:6px auto 20px}
.cover-photo[hidden]{display:none}
.cover .invite-kicker{font-size:.8rem;margin-bottom:6px;letter-spacing:4px}
.cover h1{font:600 clamp(2.6rem,12vw,4.6rem) var(--font-display);line-height:1.02;margin:12px 0;overflow-wrap:anywhere;background:linear-gradient(100deg,var(--i-text) 30%,var(--i-accent) 50%,var(--i-text) 70%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:rise .9s cubic-bezier(.2,.7,.2,1) 1.84s both,shine 5s linear 3s infinite}
@keyframes shine{to{background-position:-250% 0}}
.cover .invite-date{font-size:1.5rem}
.cover-time{font-size:1.05rem;color:var(--i-text2);margin-top:4px}
.cover-open{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.85rem;letter-spacing:2px;text-transform:uppercase;color:var(--i-accent)!important;opacity:0;animation:rise .9s ease 2.7s forwards}
.cover-open span{animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(7px)}}

.sec{margin:0 0 20px;padding:28px 22px;text-align:center;background:var(--i-surface);border:1px solid var(--i-border);border-radius:20px;backdrop-filter:blur(6px)}
.sec h2{font:600 1.7rem var(--font-display);color:var(--i-accent);margin-bottom:14px}
.sec .invite-message{margin:0 auto;max-width:none;font-size:1.18rem}
.sec p{color:var(--i-text2);line-height:1.7}
main.guest-main{padding:10px 0 40px}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
.countdown div{padding:14px 4px;border-radius:14px;background:var(--i-field);border:1px solid var(--i-border)}
.countdown b{display:block;font:600 2rem/1 var(--font-display);color:var(--i-accent);font-variant-numeric:tabular-nums}
.countdown span{font-size:.7rem;letter-spacing:1px;text-transform:uppercase;color:var(--i-text2)}
.countdown-done{font:600 1.5rem var(--font-display);color:var(--i-accent)}

.gbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:12px;border:1px solid var(--i-accent);background:var(--i-accent);color:var(--i-btn-text)!important;font:600 .95rem var(--font-body);cursor:pointer;transition:transform .2s,box-shadow .2s}
.gbtn:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--i-glow)}
.gbtn.ghost{background:transparent;color:var(--i-accent)!important}
.gbtn[disabled]{opacity:.6;cursor:wait}
.btn-line{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.place-name{font:600 1.4rem var(--font-display);color:var(--i-text)}
.place-map{display:block;width:100%;height:260px;margin:18px 0 12px;border:1px solid var(--i-border);border-radius:16px;background:var(--i-field)}
.map-link{width:100%;text-decoration:none}
.host-phone{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;padding:12px 20px;border:1px solid var(--i-border);border-radius:12px;background:var(--i-field);color:var(--i-text)!important;font-size:1.15rem;font-weight:600;letter-spacing:.04em;text-decoration:none;font-variant-numeric:tabular-nums}
.cover .invite-date{padding:10px 20px;border:1px solid var(--i-border);border-radius:14px;background:var(--i-surface);backdrop-filter:blur(8px)}

.rsvp-form{display:grid;gap:14px;text-align:left}
.rsvp-form label,.rsvp-form .lbl{font-size:.85rem;color:var(--i-text2)}
.rsvp-form input[type=text],.rsvp-form textarea{width:100%;min-height:50px;padding:13px 14px;font:1rem var(--font-body);color:var(--i-text);background:var(--i-field);border:1px solid var(--i-border);border-radius:12px;outline:none}
.rsvp-form textarea{min-height:90px;resize:vertical}
.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--i-accent);box-shadow:0 0 0 3px var(--i-glow)}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice label{position:relative;display:flex;align-items:center;justify-content:center;min-height:54px;padding:10px;text-align:center;border:1px solid var(--i-border);border-radius:12px;color:var(--i-text);font-weight:600;cursor:pointer;background:var(--i-field);transition:.2s}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.choice label:has(input:checked){background:var(--i-accent);color:var(--i-btn-text);border-color:var(--i-accent)}
.choice label:has(input:focus-visible){outline:2px solid var(--i-accent);outline-offset:2px}
.stepper{display:flex;align-items:center;gap:12px}
.stepper button{width:48px;height:48px;border-radius:12px;border:1px solid var(--i-border);background:var(--i-field);color:var(--i-text);font-size:1.4rem;cursor:pointer}
.stepper output{min-width:42px;text-align:center;font:600 1.6rem var(--font-display);color:var(--i-accent)}
.rsvp-error{display:none;padding:11px 13px;border-radius:10px;background:rgba(190,60,60,.22);border:1px solid rgba(230,120,120,.55);color:var(--i-text);font-size:.9rem}
.rsvp-error.show{display:block}
.thanks{padding:6px 0}
.thanks .big{font-size:2.6rem}
.thanks h3{font:600 1.6rem var(--font-display);color:var(--i-accent);margin:6px 0 8px}
.thanks .summary{margin:14px auto 4px;padding:12px 14px;border-radius:12px;background:var(--i-field);border:1px solid var(--i-border);font-size:.92rem;color:var(--i-text2);text-align:left;white-space:pre-line;overflow-wrap:anywhere}
.guest-foot{padding:10px 20px 40px;text-align:center;font-size:.82rem;color:var(--i-text2)}
.guest-foot a{color:var(--i-accent)!important;text-decoration:underline;text-underline-offset:3px}
.guest-error{min-height:100vh;display:grid;place-items:center;text-align:center;padding:30px}
.guest-error h1{font:600 2rem var(--font-display);color:var(--i-accent);margin-bottom:10px}

/* Фото и обложки: единый выразительный вид в конструкторе и у гостя */
.invite-form,.invite-preview-wrap,.result-box,.mine-box{box-shadow:0 22px 60px rgba(0,0,0,.18)}
.invite-form{border-radius:24px}
.invite-field input[type=file]{min-height:54px;border-style:dashed;cursor:pointer}
.invite-field input[type=file]::file-selector-button{margin-right:12px;padding:8px 12px;border:0;border-radius:7px;background:var(--gold-dim);color:var(--gold);font:600 .82rem var(--font-body);cursor:pointer}
.design-picker{gap:13px}
.design-choice{border-radius:15px;padding:8px;box-shadow:0 5px 16px rgba(0,0,0,.08)}
.design-choice[aria-pressed=true]{transform:translateY(-2px);box-shadow:0 9px 24px var(--gold-dim)}
.template-thumb{aspect-ratio:.92;border-radius:10px;gap:10px;padding:18px 8px}
.template-thumb::before,.template-thumb::after{content:'';position:absolute;inset:7px;border:1px solid var(--i-border);border-radius:6px;pointer-events:none}
.template-thumb::after{inset:12px;border-color:color-mix(in srgb,var(--i-accent) 35%,transparent)}
.template-thumb i{font-size:1.4rem}
.template-thumb b{font-size:clamp(.9rem,2vw,1.15rem);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.1}
.template-thumb small{font-size:.56rem;letter-spacing:2.5px}
.invite-card{min-height:470px;border-radius:24px;padding:36px 25px;box-shadow:0 22px 54px rgba(0,0,0,.2)}
.invite-photo-preview{width:min(58%,190px);height:190px;object-fit:cover;border-radius:48% 48% 16px 16px;border:3px solid var(--i-accent);padding:5px;background:var(--i-surface);box-shadow:0 0 0 7px var(--i-glow),0 14px 32px rgba(0,0,0,.2);margin:18px auto 4px}
.cover-photo{width:min(66vw,300px);height:min(66vw,300px);max-height:34svh;border-radius:48% 48% 18px 18px;border:3px solid var(--i-accent);padding:7px;background:var(--i-surface);box-shadow:0 0 0 9px var(--i-glow),0 24px 60px rgba(0,0,0,.28);margin:15px auto 20px}
.cover h1{max-width:min(900px,94vw);text-wrap:balance;text-shadow:0 8px 30px rgba(0,0,0,.12)}
.cover .invite-kicker{padding:9px 16px;border:1px solid var(--i-border);border-radius:99px;background:var(--i-surface);backdrop-filter:blur(10px)}
.sec{box-shadow:0 14px 38px rgba(0,0,0,.12)}
@media(max-width:480px){.invite-card{min-height:420px}.invite-photo-preview{height:155px}.template-thumb{aspect-ratio:.86}.cover-photo{max-height:29svh}}

/* ---------- панель хозяина ---------- */
body.panel{background:var(--bg);color:var(--text);min-height:100vh;font-family:var(--font-body)}
.panel-wrap{width:min(900px,100% - 28px);margin:0 auto;padding:28px 0 60px}
.panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.panel-top h1{font:700 clamp(1.7rem,6vw,2.4rem) var(--font-display);line-height:1.1}
.panel-top p{color:var(--text2);font-size:.92rem}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px}
.stat{padding:18px 10px;text-align:center;border-radius:16px;background:var(--glass2);border:1px solid var(--glass-border)}
.stat b{display:block;font:700 2.4rem/1 var(--font-display);color:var(--gold)}
.stat span{display:block;margin-top:6px;font-size:.78rem;color:var(--text2)}
.stat small{display:block;font-size:.72rem;color:var(--text3)}
.stat.yes b{color:#a8e6b4}
.stat.no b{color:#ffb4a8}
.pbox{margin-bottom:22px;padding:20px;border-radius:18px;background:var(--glass);border:1px solid var(--glass-border)}
.pbox h2{font:600 1.35rem var(--font-display);color:var(--gold);margin-bottom:14px}
.pbox h2 small{font:400 .8rem var(--font-body);color:var(--text3);margin-left:6px}
.rows{list-style:none;display:grid;gap:8px}
.row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:12px 13px;border-radius:12px;background:var(--glass2);border:1px solid var(--glass-border)}
.row .who{min-width:0}
.row .who b{display:block;overflow-wrap:anywhere}
.row .who small{display:block;color:var(--text2);margin-top:3px;overflow-wrap:anywhere;white-space:pre-line}
.row .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.72rem;font-weight:600;margin-right:6px;vertical-align:middle}
.chip.yes{background:rgba(120,210,140,.22);color:#b9f0c4}
.chip.no{background:rgba(255,150,130,.2);color:#ffc7bc}
.chip.wait{background:rgba(255,255,255,.12);color:var(--text2)}
.mini{min-height:38px;padding:7px 12px;border-radius:9px;border:1px solid var(--gold-border);background:transparent;color:var(--gold);font:600 .8rem var(--font-body);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.mini:hover{background:var(--gold-dim)}
.mini.wa{background:#25a65b;border-color:#25a65b;color:#fff}
.mini.del{color:#ffb4a8;border-color:rgba(255,150,130,.35)}
.empty{color:var(--text3);font-size:.9rem;padding:6px 0}
.add-guests textarea{width:100%;min-height:96px;padding:12px;font:.95rem var(--font-body);color:var(--text);background:rgba(0,0,0,.17);border:1px solid var(--glass-border);border-radius:10px;resize:vertical}
.add-guests p{font-size:.8rem;color:var(--text3);margin:0 0 8px}
.add-guests .mini{margin-top:10px}
.panel-share{display:flex;gap:8px;flex-wrap:wrap}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);padding:11px 18px;border-radius:10px;background:#fffbe9;color:#243d2f;font-size:.9rem;opacity:0;pointer-events:none;transition:.3s;z-index:90}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- мобильные ---------- */
@media(max-width:800px){
  .invite-builder{padding:105px 0 55px}
  .builder-grid{grid-template-columns:1fr}
  .invite-preview-wrap{order:-1;position:static}
  .invite-card{min-height:360px}
}
@media(max-width:480px){
  .invite-form,.invite-preview-wrap,.result-box,.mine-box{padding:19px}
  .invite-fields{grid-template-columns:1fr}
  .invite-field.wide{grid-column:auto}
  .design-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .link-row{flex-direction:column}
  .row{flex-direction:column}
  .row .acts{justify-content:flex-start}
  .stat b{font-size:2rem}
}
@media(prefers-reduced-motion:reduce){
  .curtain{display:none}
  .rise,.reveal{opacity:1;transform:none;animation:none;transition:none}
  .cover h1{animation:none;background:none;-webkit-text-fill-color:currentColor;color:var(--i-text)}
  .cover-open{opacity:1;animation:none}
  .cover-open span,.spark,.invite-card::before,.invite-card::after{animation:none}
}
.rsvp-lead{margin:0 0 18px;line-height:1.65;opacity:.9}
.rsvp-form textarea{min-height:110px}
