@font-face {
  font-family: "Alice";
  src: url("./assets/fonts/Alice-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  --bg: #070b13;
  --bg-2: #0b101b;
  --panel: #0e1522;
  --panel-2: #121b2b;
  --line: rgba(255,255,255,.09);
  --line-strong: rgba(217,182,110,.45);
  --text: #f3f7ff;
  --muted: #95a2b8;
  --gold: #d9b66e;
  --gold-2: #b88b3b;
  --blue: #6ba6ff;
  --danger: #ff7d88;
  --shadow: 0 24px 80px rgba(0,0,0,.42);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

/* Public invite */
.public-shell { min-height: 100vh; display:grid; place-items:center; background:#04070e; }
.invite-frame { position:relative; width:min(100vw, 100vh * 9/16); height:min(100vh, 100vw * 16/9); aspect-ratio:9/16; max-height:100vh; overflow:hidden; background:#000; box-shadow:0 28px 80px rgba(0,0,0,.55); isolation:isolate; }
.invite-page { position:absolute; inset:0; opacity:0; visibility:hidden; pointer-events:none; z-index:1; }
.invite-page.active { opacity:1; visibility:visible; pointer-events:auto; z-index:2; }
.invite-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hotspot { position:absolute; border:0; background:transparent; padding:0; z-index:10; }
.hotspot:focus-visible { outline:2px solid rgba(255,255,255,.9); outline-offset:3px; }
.hotspot-envelope { left:23%; top:50.5%; width:54%; height:22%; }
.hotspot-dresscode { left:48.5%; top:84.2%; width:27%; height:10%; }
.hotspot-location { left:24.5%; top:84.2%; width:27%; height:10%; }
.hotspot-gift { left:75%; top:84.2%; width:24%; height:10%; }
.hotspot-map { left:39%; top:69%; width:22%; height:11%; border-radius:50%; }
.hotspot-back { left:79%; top:3.8%; width:18%; height:10%; }
.hotspot-male { left:10%; top:72%; width:34%; height:14%; }
.hotspot-female { left:57%; top:72%; width:34%; height:14%; }
.public-hint { position:absolute; left:0; right:0; bottom:5%; text-align:center; color:rgba(255,255,255,.88); font-size:12px; letter-spacing:.14em; text-transform:uppercase; pointer-events:none; opacity:.65; }
.invite-frame.dream-transition::after { content:""; position:absolute; inset:-8%; z-index:20; pointer-events:none; background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.13), rgba(75,125,255,.10) 28%, rgba(0,0,0,0) 60%); opacity:0; transform:scale(.82); filter:blur(14px); }
.invite-frame.dream-transition::after { animation: portalVeil .4s cubic-bezier(.2,.75,.25,1) both; }
.invite-frame.dream-transition .dream-out { animation:portalPageOut .4s cubic-bezier(.3,.05,.65,.3) both; }
.invite-frame.dream-transition .dream-in { animation:portalPageIn .4s cubic-bezier(.2,.75,.25,1) both; }
@keyframes portalPageOut { 0%{opacity:1;transform:scale(1);filter:blur(0)}55%{opacity:.92;transform:scale(1.028);filter:blur(2.5px)}100%{opacity:0;transform:scale(1.07);filter:blur(11px)} }
@keyframes portalPageIn { 0%{opacity:0;transform:scale(.955);filter:blur(11px)}45%{opacity:.78;transform:scale(.982);filter:blur(4px)}100%{opacity:1;transform:scale(1);filter:blur(0)} }
@keyframes portalVeil { 0%{opacity:0;transform:scale(.84);filter:blur(18px)}45%{opacity:.42;transform:scale(1.04);filter:blur(11px)}100%{opacity:0;transform:scale(1.16);filter:blur(22px)} }
.public-shell .placeholder { width:100%;height:100%;display:grid;place-items:center;background:#fff;color:#111;font-weight:700; }

/* Editor shell — visual redesign inspired by the approved admin dashboard */
.admin-shell{min-height:100vh;display:grid;grid-template-columns:228px 1fr;background:radial-gradient(circle at 80% 0%,rgba(43,88,157,.12),transparent 28%),linear-gradient(135deg,#061126,#07172d 55%,#061126);overflow:hidden}
.sidebar{border-right:1px solid var(--line);background:linear-gradient(180deg,#07152b 0%,#061326 100%);padding:14px 12px;display:flex;flex-direction:column;gap:14px;box-shadow:10px 0 28px rgba(0,0,0,.15);z-index:4}
.brand{display:flex;gap:11px;align-items:center;padding:5px 5px 14px;border-bottom:1px solid var(--line)}
.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#f0d28d,#b88631);color:#0a101c;font-weight:900;box-shadow:0 8px 20px rgba(0,0,0,.22)}
.brand h1{font-size:15px;margin:0;letter-spacing:.02em}.brand p{font-size:10px;color:#95a9c5;margin:3px 0 0}
.sidebar-section{display:flex;flex-direction:column;gap:5px}.sidebar-label{font-size:9px;color:#7e91ad;text-transform:uppercase;letter-spacing:.16em;padding:0 7px;margin-bottom:2px}
.nav-btn{width:100%;text-align:left;border:1px solid transparent;color:#dfe8f8;background:transparent;padding:9px 10px;border-radius:10px;display:flex;justify-content:space-between;align-items:center;transition:.18s ease}.nav-btn:hover,.nav-btn.active{background:linear-gradient(90deg,rgba(67,110,192,.28),rgba(67,110,192,.08));border-color:rgba(107,166,255,.16);box-shadow:inset 3px 0 0 rgba(107,166,255,.7)}
.sidebar-spacer{flex:1}.status{font-size:10px;color:#87a0c0;padding:10px 6px;line-height:1.55;border-top:1px solid var(--line)}
.editor{min-width:0;min-height:100vh;display:grid;grid-template-rows:auto auto 1fr;overflow:hidden}
.topbar{min-height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;background:rgba(7,16,31,.9);backdrop-filter:blur(14px);z-index:3}.topbar-left,.topbar-right{display:flex;align-items:center;gap:9px;min-width:0}.project-block{min-width:0}.project-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}.project-sub{font-size:10px;color:#7f93af;margin-top:3px}.badge{font-size:9px;padding:4px 8px;border-radius:999px;background:rgba(217,182,110,.12);color:#f0d99e;border:1px solid rgba(217,182,110,.22);letter-spacing:.08em}
.btn{border:1px solid var(--line);background:#0b1525;color:var(--text);border-radius:9px;padding:8px 11px;transition:.18s ease}.btn:hover{background:#112038;border-color:rgba(107,166,255,.2)}.btn.primary{background:linear-gradient(145deg,#efd18c,#b78936);color:#11151d;border-color:transparent;font-weight:800;box-shadow:0 8px 18px rgba(182,141,61,.16)}.btn.danger{color:#ffc2c8}.btn.icon{padding:7px 9px;min-width:34px}.btn.small{padding:6px 8px;font-size:10px}
.editor-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(6,18,37,.86),rgba(6,18,37,.68));}
.info-card{display:flex;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:linear-gradient(180deg,rgba(14,29,51,.88),rgba(9,22,40,.9));padding:10px 12px;min-width:0}.info-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(217,182,110,.12);border:1px solid rgba(217,182,110,.18);color:#f2d79b;font-size:15px}.info-copy{min-width:0}.info-label{font-size:9px;color:#7f95b2;text-transform:uppercase;letter-spacing:.1em}.info-value{font-size:12px;color:#f1f6ff;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace{min-height:0;display:grid;grid-template-columns:212px minmax(520px,1fr) 322px;overflow:hidden}.pages-panel,.properties-panel{border-right:1px solid var(--line);background:rgba(7,16,31,.72);padding:13px;overflow:auto}.properties-panel{border-left:1px solid var(--line);border-right:0;background:rgba(7,16,31,.82)}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11px;color:#dce7f8}.panel-title .actions{display:flex;gap:5px}.panel-kicker{font-size:9px;color:#6f87a6;text-transform:uppercase;letter-spacing:.12em;margin-bottom:9px}
.page-card{position:relative;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:8px;background:#091221;color:inherit;padding:0;transition:.16s ease}.page-card:hover{border-color:rgba(107,166,255,.25);transform:translateY(-1px)}.page-card.selected{border-color:rgba(217,182,110,.82);box-shadow:0 0 0 1px rgba(217,182,110,.18),0 8px 24px rgba(0,0,0,.2)}
.page-thumb{width:100%;aspect-ratio:9/16;display:block;object-fit:cover;background:#02050a}.page-thumb-placeholder{display:grid;place-items:center;background:#fff;color:#111;font-size:15px;font-weight:800}.page-meta{display:flex;justify-content:space-between;align-items:center;padding:7px 8px;font-size:10px}.page-meta small{color:#6f87a6;font-size:8px}.page-add{width:100%;border:1px dashed rgba(255,255,255,.16);background:transparent;color:#9eb2cf;padding:9px;border-radius:9px}.page-add:hover{border-color:rgba(217,182,110,.45);color:#e8d4a4}
.canvas-area{min-width:0;min-height:0;display:flex;flex-direction:column;padding:12px 16px 20px;background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:24px 24px;overflow:auto;position:relative}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;padding:7px 9px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(7,16,31,.72);backdrop-filter:blur(10px)}.canvas-toolbar-left,.canvas-toolbar-right{display:flex;align-items:center;gap:7px}.tool-pill{font-size:10px;color:#9bb0cc;padding:5px 8px;border-radius:7px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}
.ruler-top{position:absolute;top:0;left:44px;right:0;height:28px;background:#0a101b;border-bottom:1px solid var(--line);display:none}.ruler-left{position:absolute;top:0;left:0;bottom:0;width:44px;background:#0a101b;border-right:1px solid var(--line);display:none}.canvas-area.ruler-on{padding-top:44px;padding-left:44px}.ruler-on .ruler-top,.ruler-on .ruler-left{display:block}
.canvas-stage{flex:1;display:grid;place-items:center;min-height:0}.canvas-wrap{position:relative;width:min(62vh,520px);max-width:100%;aspect-ratio:9/16;box-shadow:0 28px 64px rgba(0,0,0,.46);background:#000;border:1px solid rgba(255,255,255,.14);user-select:none;overflow:visible}.canvas-wrap::before{content:'';position:absolute;inset:-8px;border-radius:12px;border:1px solid rgba(255,255,255,.035);pointer-events:none}.canvas-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.canvas-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:#fff;color:#111}.canvas-placeholder span{font-size:28px;font-weight:800;letter-spacing:.08em}.canvas-placeholder small{display:block;margin-top:8px;font-size:12px;color:#777}
.canvas-element{position:absolute;user-select:none;touch-action:none;transform-origin:center center;box-sizing:border-box}.canvas-element.selected{outline:1px solid rgba(107,166,255,.92);box-shadow:0 0 0 1px rgba(107,166,255,.15)}.element-media img,.element-media video,.element-image img,.element-video video{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none}.element-media{overflow:hidden;background:#000}.element-video video{background:#000}.element-text{display:flex;align-items:center;justify-content:center;padding:6px 8px;white-space:pre-wrap;text-align:center;color:#fff;font-weight:700;font-size:30px;line-height:1.1;text-shadow:0 2px 10px rgba(0,0,0,.3)}
.element-hotspot{border:1px dashed rgba(240,206,128,.96);background:rgba(240,206,128,.06);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);pointer-events:auto}.element-hotspot::before{content:'Área de interação';position:absolute;top:-21px;left:-1px;background:#071126;border:1px solid rgba(240,206,128,.36);color:#f0d79d;font-size:8px;padding:3px 5px;border-radius:4px;white-space:nowrap}.element-hotspot::after{content:'';position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:#f0d18c;box-shadow:0 0 0 3px rgba(240,209,140,.18);opacity:.95}
.selection-handle{position:absolute;width:9px;height:9px;border-radius:2px;background:#f4f7ff;border:1px solid #29405e;box-shadow:0 2px 8px rgba(0,0,0,.4)}.handle-nw{left:-6px;top:-6px;cursor:nwse-resize}.handle-ne{right:-6px;top:-6px;cursor:nesw-resize}.handle-sw{left:-6px;bottom:-6px;cursor:nesw-resize}.handle-se{right:-6px;bottom:-6px;cursor:nwse-resize}.rotate-handle{left:50%;top:-27px;transform:translateX(-50%);cursor:grab;border-radius:50%}.rotate-stem{position:absolute;left:50%;top:-22px;width:1px;height:17px;background:#f4f7ff;opacity:.8}
.canvas-note{position:absolute;left:50%;bottom:-34px;transform:translateX(-50%);padding:5px 8px;border-radius:6px;background:rgba(0,0,0,.62);color:#bcd0ea;font-size:9px;pointer-events:none;white-space:nowrap;border:1px solid rgba(255,255,255,.06)}
.prop-group{border-bottom:1px solid var(--line);padding:11px 0}.prop-group:first-child{padding-top:0}.prop-label{font-size:9px;color:#7890ad;text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px}.prop-value{font-size:12px;color:#eef4ff;line-height:1.5}.prop-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.prop-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.input{width:100%;background:#091321;border:1px solid var(--line);color:var(--text);border-radius:7px;padding:7px 8px}.input:focus{outline:none;border-color:rgba(107,166,255,.55);box-shadow:0 0 0 2px rgba(107,166,255,.08)}.textarea{min-height:78px;resize:vertical}.hint{font-size:9px;color:#7288a5;line-height:1.45}.tag{display:inline-block;padding:3px 6px;margin:2px 3px 2px 0;border:1px solid rgba(217,182,110,.25);border-radius:999px;background:rgba(217,182,110,.08);color:#ecd9ac;font-size:9px}.layers{display:flex;flex-direction:column;gap:5px}.layer-row{display:flex;align-items:center;gap:7px;padding:7px 8px;background:#091321;border:1px solid var(--line);border-radius:7px;font-size:10px}.layer-row.selected{border-color:rgba(107,166,255,.5);background:#0b1729}.layer-row .grow{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-row button{background:transparent;border:0;color:#7890ad;padding:1px 3px}.empty{color:#7288a5;font-size:11px}.toolbar{display:flex;gap:6px;flex-wrap:wrap}.toolbar .btn{font-size:10px}
.quick-card{border:1px solid rgba(255,255,255,.07);border-radius:11px;background:linear-gradient(180deg,rgba(14,29,51,.82),rgba(9,22,40,.88));padding:11px;margin-bottom:10px}.quick-card h3{font-size:11px;margin:0 0 9px;color:#dce7f8}.quick-action{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding:9px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.06);background:#091321;color:#dbe7f6}.quick-action:hover{border-color:rgba(107,166,255,.2);background:#0b1729}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:9px;color:#98d7b0}.status-dot{width:7px;height:7px;border-radius:50%;background:#4fd18b;box-shadow:0 0 0 3px rgba(79,209,139,.12)}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);backdrop-filter:blur(8px);display:none;place-items:center;z-index:100}.modal-backdrop.open{display:grid}.modal{width:min(1040px,94vw);max-height:90vh;overflow:auto;background:#0b111d;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-head h2{font-size:16px;margin:0}.preview-host{display:grid;place-items:center;min-height:70vh;background:#050812;border-radius:12px;overflow:hidden}.preview-frame{position:relative;width:min(46vh,430px);aspect-ratio:9/16;overflow:hidden;background:#000;box-shadow:0 18px 50px rgba(0,0,0,.42)}
.toast{position:fixed;right:18px;bottom:18px;padding:11px 14px;background:#111a29;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s ease;z-index:999}.toast.show{opacity:1;transform:translateY(0)}
.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.library-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0a101b}.library-thumb{width:100%;aspect-ratio:16/10;object-fit:cover;background:#02050a;display:block}.library-info{padding:7px;font-size:10px}.library-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-info small{color:var(--muted)}
@media(max-width:1180px){.admin-shell{grid-template-columns:74px 1fr}.brand h1,.brand p,.sidebar-label,.nav-btn span,.status{display:none}.brand{justify-content:center}.nav-btn{text-align:center;padding:11px 5px}.workspace{grid-template-columns:190px minmax(420px,1fr) 300px}.editor-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.workspace{grid-template-columns:180px 1fr}.properties-panel{display:none}.canvas-wrap{width:min(62vh,500px)}}
@media(max-width:700px){.workspace{grid-template-columns:1fr}.pages-panel{display:none}.editor-overview{grid-template-columns:1fr 1fr}.canvas-area{padding:10px}.topbar{padding:10px}.topbar-right .btn:not(.primary){display:none}}

/* --- UeX.Y Studio V1.2 — Canva-like workspace / fit-to-window --- */
html,body,#app{height:100%;min-height:100%;}
body{overflow:hidden;}
.admin-shell.editor-shell{height:100vh;min-height:0;}
.editor-modern{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
.editor-modern .topbar{flex:0 0 66px;}
.editor-modern .editor-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 310px;overflow:hidden;}
.editor-modern .canvas-area{min-width:0;min-height:0;height:100%;padding:10px 14px 8px;overflow:hidden;position:relative;display:flex;flex-direction:column;}
.editor-modern .canvas-toolbar{flex:0 0 38px;margin-bottom:7px;}
.editor-modern .canvas-stage{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;display:grid;place-items:center;}
.editor-modern .canvas-frame-shadow{position:relative;height:min(54vh,520px);width:auto;aspect-ratio:9/16;display:grid;place-items:center;filter:drop-shadow(0 28px 60px rgba(0,0,0,.42));}
.editor-modern .canvas-wrap{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:9/16;transform-origin:center center;overflow:visible;box-shadow:0 24px 56px rgba(0,0,0,.44);}
.editor-modern .canvas-wrap::before{inset:-7px;}
.editor-modern .canvas-statusbar{flex:0 0 22px;display:flex;justify-content:center;gap:18px;align-items:center;color:#7389a8;font-size:9px;padding-top:4px;white-space:nowrap;overflow:hidden;}
.editor-modern .canvas-statusbar span{overflow:hidden;text-overflow:ellipsis;max-width:32%;}
.editor-modern .properties-panel{height:100%;min-height:0;overflow:auto;padding:13px 12px 16px;}
.editor-modern .pages-strip{flex:0 0 118px;display:flex;align-items:center;gap:14px;padding:10px 14px;border-top:1px solid var(--line);background:linear-gradient(180deg,#081323 0%,#06101d 100%);min-width:0;}
.pages-strip-left{flex:0 0 172px;min-width:0;}
.pages-strip-title{font-size:11px;color:#e5edf9;font-weight:700;}
.pages-strip-sub{font-size:8px;color:#6880a0;line-height:1.35;margin-top:4px;}
.pages-filmstrip{display:flex;align-items:stretch;gap:8px;min-width:0;overflow-x:auto;overflow-y:hidden;padding:2px 2px 5px;scrollbar-width:thin;scrollbar-color:#274060 transparent;}
.pages-filmstrip::-webkit-scrollbar{height:6px}.pages-filmstrip::-webkit-scrollbar-thumb{background:#274060;border-radius:99px}.pages-filmstrip::-webkit-scrollbar-track{background:transparent}
.film-card{position:relative;flex:0 0 78px;height:94px;border:1px solid rgba(255,255,255,.08);background:#091221;color:#dbe7f6;border-radius:8px;padding:0;overflow:hidden;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:.16s ease;}
.film-card:hover{transform:translateY(-2px);border-color:rgba(107,166,255,.3)}
.film-card.selected{border-color:rgba(217,182,110,.9);box-shadow:0 0 0 1px rgba(217,182,110,.18),0 7px 18px rgba(0,0,0,.26);}
.film-card .page-thumb{width:100%;height:74px;aspect-ratio:auto;object-fit:cover;display:block;background:#02050a;}
.film-card .page-meta{display:none}
.film-index{position:absolute;left:4px;top:4px;z-index:3;padding:2px 4px;border-radius:4px;background:rgba(0,0,0,.62);font-size:8px;color:#fff;}
.film-name{position:absolute;left:0;right:0;bottom:0;height:20px;padding:4px 4px 3px;background:rgba(5,11,20,.92);font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;color:#dce6f4;}
.film-add{flex:0 0 78px;height:94px;border:1px dashed rgba(217,182,110,.34);background:rgba(217,182,110,.03);color:#d9c18d;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;}
.film-add span{font-size:22px;line-height:1}.film-add small{font-size:8px;}
.page-chip{color:#f0d89f;border-color:rgba(217,182,110,.22);background:rgba(217,182,110,.06)}
.page-title-pill{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hotspot-hidden{border-color:transparent!important;background:transparent!important;box-shadow:none!important;}
.hotspot-hidden::before,.hotspot-hidden::after{display:none!important;}

@media (max-height:820px){
  .editor-modern .topbar{flex-basis:60px;}
  .editor-modern .pages-strip{flex-basis:104px;padding-top:7px;padding-bottom:7px;}
  .film-card,.film-add{height:82px;flex-basis:68px}.film-card .page-thumb{height:64px;}
  .editor-modern .canvas-frame-shadow{height:min(52vh,460px);}
}
@media (max-width:1180px){
  .editor-modern .editor-body{grid-template-columns:minmax(0,1fr) 280px;}
  .editor-modern .pages-strip-left{display:none}.editor-modern .pages-strip{padding-left:10px;}
}
@media (max-width:900px){
  .editor-modern .editor-body{grid-template-columns:minmax(0,1fr);}
  .editor-modern .properties-panel{display:none;}
  .editor-modern .canvas-frame-shadow{height:min(54vh,520px);}
}
@media (max-width:700px){
  body{overflow:auto}.admin-shell.editor-shell{height:auto;min-height:100vh}.editor-modern{height:auto;min-height:100vh;overflow:visible}.editor-modern .editor-body{min-height:720px}.editor-modern .pages-strip{position:sticky;bottom:0;z-index:20;}.editor-modern .canvas-area{min-height:600px;}.editor-modern .canvas-frame-shadow{height:min(54vh,520px);}.editor-modern .topbar-right .btn:not(.primary){display:none;}
}


/* --- UeX.Y Studio V1.3 — fit-to-window and reliable public interactions --- */
.editor-modern .canvas-frame-shadow{height:min(46vh,460px);}
.editor-modern .canvas-wrap{width:100%;height:100%;}
.public-hotspot{position:absolute;margin:0;padding:0;border:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;z-index:50;outline:none;}
.public-hotspot:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:2px;border-radius:8px;}
.preview-host{height:calc(100vh - 170px);min-height:520px;max-height:78vh;place-items:center;}
.preview-host .invite-frame{height:min(76vh,720px);width:auto;max-width:100%;max-height:100%;aspect-ratio:9/16;}

/* --- V1.4 — viewport lock and reliable page filmstrip --- */
html, body, #app { width:100%; height:100%; min-height:0; }
body { overflow:hidden; }
.admin-shell.editor-shell { height:100vh; min-height:0; max-height:100vh; overflow:hidden; }
.admin-shell.editor-shell > .editor-modern { min-width:0; min-height:0; height:100%; max-height:100vh; overflow:hidden; }
.editor-modern .editor-body { min-width:0; min-height:0; }
.editor-modern .canvas-stage { min-height:0; }
.editor-modern .canvas-frame-shadow { height:min(40vh,360px); max-height:calc(100% - 8px); }
.editor-modern .pages-strip { flex:0 0 96px; min-height:96px; max-height:96px; overflow:hidden; }
.pages-filmstrip { height:100%; min-height:0; align-items:center; overflow-x:auto; overflow-y:hidden; }
.film-card, .film-add { height:78px; flex-basis:66px; }
.film-card .page-thumb { height:58px; }
.editor-modern .canvas-statusbar { flex-basis:20px; }

/* Preview occupies the actual viewport and exposes its own controls. */
.preview-shell { position:fixed; inset:0; z-index:900; background:#050812; display:grid; grid-template-rows:56px minmax(0,1fr); overflow:hidden; }
.preview-topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 16px; border-bottom:1px solid var(--line); background:#081322; min-width:0; }
.preview-host { height:100%; min-height:0; max-height:none; display:grid; place-items:center; padding:14px; overflow:hidden; background:radial-gradient(circle at center,rgba(35,67,116,.18),transparent 48%),#050812; }
.preview-host .invite-frame { height:min(76vh,calc(100% - 12px)); width:auto; max-width:100%; max-height:100%; aspect-ratio:9/16; }

@media (max-height:820px) {
  .editor-modern .topbar { flex-basis:58px; }
  .editor-modern .pages-strip { flex-basis:90px; min-height:90px; max-height:90px; }
  .editor-modern .canvas-frame-shadow { height:min(38vh,325px); }
  .film-card, .film-add { height:72px; flex-basis:62px; }
  .film-card .page-thumb { height:52px; }
}


/* --- RSVP module / confirmation flow --- */
.rsvp-input-wrap{position:absolute;left:20.37%;top:46.46%;width:59.26%;height:6.88%;z-index:100;overflow:hidden;pointer-events:auto;touch-action:manipulation;}
.rsvp-name-input{position:absolute;inset:0;width:100%;height:100%;border:0;outline:0;background:transparent;color:#fff;padding:0 5.5%;font-size:clamp(14px,3.2vw,28px);font-family:Georgia,serif;text-align:left;caret-color:#fff;white-space:nowrap;overflow:hidden;text-overflow:clip;user-select:text;-webkit-user-select:text;pointer-events:auto;touch-action:manipulation;}
.rsvp-name-input::placeholder{color:transparent;}
.rsvp-name-input:focus{outline:none;}
.rsvp-confirm-visual{position:absolute;z-index:45;opacity:0;pointer-events:none;user-select:none;transition:none;object-fit:contain;}
.rsvp-confirm-visual.visible{animation:rsvpConfirmFade .5s ease both;}
@keyframes rsvpConfirmFade{0%{opacity:0}100%{opacity:1}}
.rsvp-confirm-hit{position:absolute!important;z-index:46!important;opacity:0!important;pointer-events:none!important;background:transparent!important;border:0!important;}
.rsvp-confirm-hit.enabled{opacity:1!important;pointer-events:auto!important;}
.rsvp-input-hit{z-index:95!important;pointer-events:auto!important;opacity:0!important;}
.rsvp-confirm-hit.enabled:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:3px;border-radius:12px;}
.rsvp-admin-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;}
.rsvp-admin-summary>div{border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#0a1424;}
.rsvp-admin-summary strong{display:block;font-size:18px;color:#f0d89f}.rsvp-admin-summary span{font-size:9px;color:#7f93ad;text-transform:uppercase;letter-spacing:.08em}
.rsvp-list{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#08111f;max-height:52vh;overflow:auto;}
.rsvp-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05)}.rsvp-row:last-child{border-bottom:0}.rsvp-index{width:22px;color:#7389a8;font-size:10px}.rsvp-name{flex:1;color:#eef4ff;font-size:12px}.rsvp-status{font-size:9px;padding:4px 7px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}.rsvp-status.ok{color:#a9e5b5;background:rgba(45,164,78,.08)}.rsvp-status.cancelled{color:#ffb1b8;background:rgba(220,53,69,.08)}
@media(max-width:600px){.rsvp-name-input{font-size:16px}}

.rsvp-cancel-hit{position:absolute!important;z-index:60!important;opacity:0!important;pointer-events:auto!important;background:transparent!important;border:0!important;cursor:pointer!important;}

/* Gift / Pix / Payment public UI */
.public-special-slot{position:absolute;inset:0;pointer-events:none;z-index:40;}

.invite-page[data-page-id="p11"],
.invite-page[data-page-id="p12"],
.invite-page[data-page-id="p13"],
.invite-page[data-page-id="p14"],
.invite-page[data-page-id="p15"],
.invite-page[data-page-id="p16"],
.invite-page[data-page-id="p17"]{overflow:hidden;}

/* Gift / Pix / Payment public UI */
.public-special-slot{position:absolute;inset:0;pointer-events:none;z-index:40;}
.invite-page[data-page-id="p11"],
.invite-page[data-page-id="p12"],
.invite-page[data-page-id="p13"],
.invite-page[data-page-id="p14"],
.invite-page[data-page-id="p15"],
.invite-page[data-page-id="p16"],
.invite-page[data-page-id="p17"]{overflow:hidden;}

.gift-scroll-shell{position:absolute;left:16.759259%;top:16.197917%;width:66.481481%;height:70.78125%;z-index:35;pointer-events:none;overflow:hidden;}
.gift-scroll-viewport{pointer-events:auto;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.gift-scroll-viewport::-webkit-scrollbar{display:none;}
.gift-scroll-content{width:100%;display:flex;justify-content:center;padding-top:0;padding-bottom:80px;box-sizing:border-box;}
.gift-grid{display:grid;grid-template-columns:repeat(2,calc(317px * var(--invite-scale)));column-gap:calc(42px * var(--invite-scale));row-gap:calc(80px * var(--invite-scale));justify-content:center;align-content:start;width:max-content;}
.gift-card-hit{display:block;border:0;padding:0;margin:0;background:transparent;width:calc(317px * var(--invite-scale));height:calc(560px * var(--invite-scale));cursor:pointer;appearance:none;-webkit-appearance:none;position:relative;flex:none;}
.gift-card-hit img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none;}
.gift-card-hit.sold-out{opacity:.6;cursor:default;}
.gift-card-hit:disabled{pointer-events:none;}

.pix-hit-layer{position:absolute;inset:0;z-index:38;pointer-events:none;}
.pix-hit{pointer-events:auto;background:transparent;border:0;cursor:pointer;}
.public-special-hit{position:absolute;margin:0;padding:0;border:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;outline:none;z-index:80;}
.public-special-hit:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:3px;border-radius:10px;}

.quote-dynamic{position:absolute;inset:0;z-index:45;pointer-events:none;}
/* P13 refinada: a moldura passou para a arte-base (cotas.png); a foto dinâmica ocupa apenas a abertura interna. */
.quote-image-wrap{position:absolute;left:26.852%;top:14.063%;width:46.296%;height:26.042%;overflow:hidden;pointer-events:none;}
.quote-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;border-radius:0;}
.quote-observation{position:absolute;left:50%;top:11.068%;width:50%;min-height:2.8125%;padding:0;box-sizing:border-box;background:transparent;color:#fff;font-family:"Alice",serif;font-weight:400;font-size:calc(26px * var(--invite-scale));letter-spacing:0;line-height:1.4;text-align:center;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);white-space:normal;overflow:visible;}
.quote-name{position:absolute;left:50%;top:44.505%;width:70%;font-family:"Alice",serif;font-weight:400;font-size:calc(52px * var(--invite-scale));letter-spacing:0;line-height:1.4;color:#fff;text-align:center;transform:translate(-50%,-50%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quote-unit{position:absolute;left:50%;top:49.505%;width:40%;font-family:"Alice",serif;font-weight:400;font-size:calc(52px * var(--invite-scale));letter-spacing:0;line-height:1.4;color:#fff;text-align:center;transform:translate(-50%,-50%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quote-minus,.quote-plus{top:52.813%;width:8.241%;height:4.167%;pointer-events:auto;}
.quote-minus{left:17.87%;}
.quote-plus{right:17.87%;}
.quote-qty{position:absolute;left:30.37%;top:54.87%;width:39.26%;height:4.53%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:"Alice",serif;font-weight:400;font-size:calc(36px * var(--invite-scale));letter-spacing:0;line-height:1.4;pointer-events:none;transform:translateY(-50%);}
.quote-total{position:absolute;left:59.167%;top:63.203%;width:31.481%;font-family:"Alice",serif;font-weight:400;font-size:calc(52px * var(--invite-scale));letter-spacing:0;line-height:1.4;color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;}
.quote-proceed{left:25%;top:84.688%;width:50%;height:8.333%;pointer-events:auto;}

.invite-page[data-page-id="p19"]{overflow:hidden;}

.email-dynamic{position:absolute;inset:0;z-index:46;pointer-events:none;}

.payment-email-input{
  position:absolute;
  left:17.2%;
  top:59.8%;
  width:65.5%;
  height:7.6%;
  z-index:100;
  box-sizing:border-box;
  border:0;
  outline:0;
  background:transparent;
  color:#fff;
  padding:0 5.5%;
  font-family:"Alice",serif;
  font-size:calc(36px * var(--invite-scale));
  font-weight:400;
  line-height:1.2;
  text-align:left;
  caret-color:#fff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:clip;
  user-select:text;
  -webkit-user-select:text;
  pointer-events:auto;
  touch-action:manipulation;
}

.payment-email-input::placeholder{color:transparent;}
.payment-email-input:focus{outline:none;}

.email-proceed{
  left:25%;
  top:84.688%;
  width:50%;
  height:8.333%;
  pointer-events:auto;
}

.payment-dynamic{position:absolute;inset:0;z-index:46;pointer-events:none;}
.payment-qr{position:absolute;left:27.315%;top:22.604%;width:45.37%;height:25.573%;display:flex;align-items:center;justify-content:center;background:#fff;padding:0;box-sizing:border-box;border-radius:2px;overflow:hidden;}
.payment-qr svg{width:100%;height:100%;display:block;aspect-ratio:1/1;object-fit:contain;}
.payment-gift-name{position:absolute;left:50%;top:17.63%;width:66.667%;transform:translate(-50%,-50%);font-family:"Alice",serif;font-weight:400;font-size:calc(52px * var(--invite-scale));line-height:1.4;letter-spacing:0;color:#fff;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.payment-total-value{position:absolute;left:59.954%;top:54.167%;width:31.574%;transform:translate(-50%,-50%);font-family:"Alice",serif;font-weight:400;font-size:calc(52px * var(--invite-scale));line-height:1.4;letter-spacing:0;color:#fff;text-align:center;white-space:nowrap;pointer-events:none;}
.payment-pix-code{position:absolute;left:50%;top:63.984%;width:70.556%;transform:translate(-50%,-50%);display:block;color:#fff;font-family:"Alice",serif;font-weight:400;font-size:calc(36px * var(--invite-scale));line-height:1.4;letter-spacing:0;text-align:center;padding:0 22px;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;}
.payment-copy-hit{left:30.0%;top:69.6875%;width:36.6667%;height:6.7708%;pointer-events:auto;}
.payment-cancel-hit{left:28.61%;top:84.48%;width:42.78%;height:5.7%;pointer-events:auto;}
.payment-status{position:absolute;left:50%;top:95.807%;width:66.667%;transform:translate(-50%,-50%);font-family:"Alice",serif;font-weight:400;font-size:calc(48px * var(--invite-scale));line-height:1.4;letter-spacing:0;color:#fff;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
.payment-status.pending{color:#fff;}

.payment-popup-layer{position:absolute;inset:0;z-index:200;background:rgba(0,0,0,.52);display:grid;place-items:center;pointer-events:auto;}
.payment-popup-box{position:absolute;left:50%;top:50%;width:92%;aspect-ratio:1140/792;transform:translate(-50%,-50%);}
.payment-popup-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none;}
.payment-popup-box .cancel-yes{left:4.123%;top:70.707%;width:41.754%;height:18.182%;pointer-events:auto;}
.payment-popup-box .cancel-no{left:53.509%;top:70.58%;width:41.842%;height:18.308%;pointer-events:auto;}
.payment-notification-host{position:absolute;inset:0;z-index:190;pointer-events:none;}
.invite-page .payment-notification-host{z-index:191;}
.invite-page .payment-notification-button{z-index:192;}
.payment-notification-button{position:absolute;left:10%;top:7.29%;width:12.963%;height:6.875%;margin:0;padding:0;border:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;z-index:191;display:flex;align-items:center;justify-content:center;pointer-events:auto;isolation:isolate;opacity:1;visibility:visible;}
.payment-notification-button[hidden]{display:none!important;}
.payment-notification-button img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none;}
.payment-notification-button:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:3px;border-radius:12px;}
.payment-expiration-layer{position:absolute;inset:0;z-index:210;background:rgba(0,0,0,.52);display:grid;place-items:center;pointer-events:auto;}
.expiration-notification-box{position:absolute;left:50%;top:50%;width:96%;aspect-ratio:1025/721;transform:translate(-50%,-50%);}
.expiration-notification-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none;}
.expiration-notification-hit{left:29.268%;top:75.034%;width:41.463%;height:18.724%;pointer-events:auto;}

.success-home-hit{left:27.59%;top:71.93%;width:45.37%;height:6.35%;pointer-events:auto;}
.expired-home-hit{left:27.78%;top:71.46%;width:45%;height:7%;pointer-events:auto;}

@media(max-width:600px){
  .quote-name{font-size:calc(52px * var(--invite-scale));}
  .quote-unit{font-size:calc(52px * var(--invite-scale));}
  .quote-qty{font-size:calc(36px * var(--invite-scale));}
  .quote-total{font-size:calc(52px * var(--invite-scale));}
  .quote-observation{font-size:calc(26px * var(--invite-scale));}
  .payment-gift-name{font-size:calc(52px * var(--invite-scale));}
  .payment-total-value{font-size:calc(52px * var(--invite-scale));}
  .payment-pix-code{font-size:calc(36px * var(--invite-scale));}
  .payment-status{font-size:calc(48px * var(--invite-scale));}
}
.gift-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0;}
.gift-admin-card{border:1px solid var(--line);background:#091426;border-radius:11px;padding:11px;display:flex;flex-direction:column;gap:4px;}
.gift-admin-card strong{font-size:12px;color:#eef4ff}.gift-admin-card span{font-size:11px;color:#f0d89f}.gift-admin-card small{font-size:9px;color:#7387a4}.gift-admin-adjust{display:flex;gap:6px;margin-top:6px}.gift-admin-adjust .btn{flex:1;font-size:9px;padding:6px 7px}
.gift-admin-list{border:1px solid var(--line);border-radius:10px;overflow:auto;max-height:42vh;background:#07101d}
.gift-admin-row{display:grid;grid-template-columns:24px 1.1fr 1.6fr .8fr .9fr .7fr;gap:7px;align-items:center;padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.05);font-size:10px;color:#dce6f7}
.gift-admin-row:last-child{border-bottom:0}.gift-admin-row em{font-style:normal;color:#a9e5b5}
@media(max-width:720px){.gift-admin-grid{grid-template-columns:1fr}.gift-admin-row{grid-template-columns:20px 1fr 1fr;}.gift-admin-row span:nth-of-type(2),.gift-admin-row span:nth-of-type(3),.gift-admin-row span:nth-of-type(4),.gift-admin-row em{display:none;}}
