:root{color-scheme:dark;--bg:#101312;--panel:#1b1e1d;--line:#343936;--cream:#f7f4ef;--coral:#eb7450;--muted:#a9b0ac;--font:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--font)}body{background:var(--bg);color:var(--cream)}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.36;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow,.panel-tag,.kicker,.miniheading{letter-spacing:.12em;font-size:12px;font-weight:800;color:var(--coral)}
.login-wrap{min-height:100dvh;display:grid;grid-template-columns:1.1fr .9fr}.login-side{padding:clamp(30px,7vw,100px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 80% 50%,#373a33 0%,#151817 52%,#101312 100%)}.login-side h1{font-size:clamp(46px,5.5vw,94px);line-height:1.02;letter-spacing:-.07em;margin:30px 0}.login-side h1 em{font-style:normal;color:var(--coral)}.login-side p{line-height:1.7}.vlogo{font-size:48px;font-weight:950;letter-spacing:-.14em;margin-bottom:60px}.vlogo span{color:var(--coral);letter-spacing:0;margin-left:13px}.login-panel{background:#f6f3ef;color:#171a18;display:flex;flex-direction:column;justify-content:center;padding:clamp(30px,7vw,102px)}.login-panel h2{font-size:clamp(32px,3.3vw,50px);line-height:1.13;letter-spacing:-.045em;margin:18px 0}.login-panel .muted{color:#6e716c;line-height:1.7}.login-panel form{margin:45px 0 25px}.login-panel label{font-weight:700;font-size:13px;display:block;margin:0 0 10px}.login-panel input{width:100%;background:#fff;color:#222;padding:18px 17px;border:1px solid #c9c7c1;border-radius:12px;font-size:20px;letter-spacing:.08em}.primary,.secondary,.notes-cta{border:0;border-radius:12px;padding:15px 18px;font-weight:750;transition:transform .1s}.primary{background:var(--coral);color:#131413}.primary:hover:not(:disabled){filter:brightness(1.08)}.secondary,.notes-cta{background:#323735;color:#fff}.login-panel .primary{margin-top:14px;width:100%;display:flex;justify-content:space-between}.error{color:#a52e1e;font-size:14px;min-height:21px}.foot{font-size:12px}
.app{min-height:100dvh}.topbar{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(14px,3vw,45px);gap:12px}.brandmark{display:flex;align-items:center;gap:15px;font-size:14px;letter-spacing:.06em;white-space:nowrap}.multiply{font-size:23px;color:var(--coral)}.status-area{display:flex;align-items:center;gap:12px;font-size:12px;color:#c7d0ca}.live-dot{width:8px;height:8px;border-radius:50%;background:#44d28c;box-shadow:0 0 0 5px #44d28c22}.role-pill{border:1px solid #52625b;color:#cad4ce;border-radius:50px;padding:7px 10px;font-weight:800;letter-spacing:.1em}.textbutton{background:none;border:0;color:inherit;text-decoration:underline;text-underline-offset:4px}
.stage-wrap{max-width:1920px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding:clamp(14px,2vw,34px)}.stage-wrap.is-presenter{grid-template-columns:minmax(0,1fr) 340px}.stage{min-width:0}.stage-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:10px 0 18px}.stage-head h2{font-size:clamp(22px,2.3vw,31px);margin:5px 0 0;letter-spacing:-.04em}.counter{color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums}.image-frame{background:#000;position:relative;border:1px solid #3b413e;border-radius:15px;overflow:hidden;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}.image-frame img{display:block;width:100%;height:100%;object-fit:contain}.image-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#1b1e1d;color:#d1d6d2}.stage-foot{padding:16px 2px;display:flex;align-items:center;justify-content:space-between;color:#aab2ad;font-size:13px}
.presenter-panel{background:#1a1d1b;border:1px solid #323632;border-radius:15px;padding:22px;height:min(80vh,1000px);display:flex;flex-direction:column}.sidebar-header h3{font-size:22px;margin:10px 0}.sidebar-header p{color:#aeb4af;font-size:13px;margin:0 0 20px}.buttons{display:flex;gap:8px}.buttons button{flex:1;padding:13px 9px}.notes-cta{width:100%;margin:10px 0 22px;border:1px solid #69645c;background:#292c28;text-align:left}.miniheading{margin:0 0 10px}.slide-list{overflow-y:auto;flex:1;min-height:90px;display:grid;align-content:start;gap:5px}.slide-item{display:flex;gap:12px;align-items:center;text-align:left;padding:11px 10px;width:100%;border:1px solid transparent;border-radius:9px;background:#272b29;color:#d9dfdc;font-size:12px}.slide-item b{color:var(--coral)}.slide-item.active{border-color:var(--coral);background:#3c332e}.smallhelp{font-size:11px;color:#949e97;line-height:1.5}
.notes-overlay{position:fixed;inset:0;background:#050606b8;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.notes-box{background:#f7f4ef;color:#1b211e;max-width:730px;width:100%;padding:clamp(22px,5vw,48px);border-radius:22px;box-shadow:0 30px 140px #0008}.notes-top{display:flex;justify-content:space-between;gap:14px;align-items:start}.notes-top h3{font-size:32px;letter-spacing:-.04em;margin:6px 0 15px}.notes-box p{line-height:1.72;font-size:18px}.notes-box .secondary{font-size:12px}.fineprint{font-size:12px!important}
@media(max-width:1090px){.stage-wrap.is-presenter{grid-template-columns:1fr}.presenter-panel{height:auto;max-height:410px}.slide-list{max-height:170px}.login-wrap{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.login-wrap{display:flex;flex-direction:column}.login-side{min-height:30vh;padding:28px 25px}.login-side h1{font-size:43px;margin:10px 0}.vlogo{font-size:29px;margin-bottom:15px}.login-side p{font-size:13px}.login-panel{flex:1;padding:35px 25px}.login-panel h2{font-size:31px}.login-panel form{margin:24px 0}.topbar{height:auto;min-height:70px;padding:13px;align-items:flex-start}.brandmark{font-size:11px;gap:7px;margin-top:5px}.status-area{gap:7px;flex-wrap:wrap;justify-content:flex-end;font-size:10px}.role-pill{font-size:9px;padding:6px}.stage-wrap{padding:9px}.stage-head{padding:8px 6px 12px}.stage-head h2{font-size:19px}.kicker{font-size:9px}.image-frame{border-radius:8px}.presenter-panel{padding:15px}.notes-box p{font-size:16px}}


/* Vyncelora UX v0.3 - visite inteiramente enquadrado, sem rolagem. */
body.viewer-mode{height:100vh;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}
body.viewer-mode .app{height:100vh;height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}
body.viewer-mode .topbar{height:48px;min-height:48px;flex:0 0 48px;padding:0 16px;overflow:hidden}
body.viewer-mode .brandmark{margin:0;font-size:12px;gap:10px;flex-shrink:0}
body.viewer-mode .multiply{font-size:17px}
body.viewer-mode .stage-wrap{width:100%;max-width:none;height:auto;min-height:0;flex:1 1 auto;padding:6px;margin:0;display:flex;overflow:hidden}
body.viewer-mode .stage{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
body.viewer-mode .stage-head,body.viewer-mode .stage-foot,body.viewer-mode .presenter-panel{display:none!important}
body.viewer-mode .image-frame{width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;aspect-ratio:auto;border:0;border-radius:0;background:#0b0e0c}
body.viewer-mode .image-frame img{width:100%;height:100%;object-fit:contain;object-position:center}
body.viewer-mode .role-pill{padding:4px 9px}
@media(max-width:650px){
 body.viewer-mode .topbar{padding:0 9px}
 body.viewer-mode .brandmark{font-size:10px;gap:5px;letter-spacing:.02em}
 body.viewer-mode .status-area{gap:7px;font-size:10px;flex-wrap:nowrap}
 body.viewer-mode #liveStatus{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 body.viewer-mode .role-pill{font-size:9px;padding:4px 5px}
 body.viewer-mode .stage-wrap{padding:3px}
}

/* Vyncelora UX v0.3 - notas rápidas, em painel translúcido e NÃO modal. */
body.presenter-mode .notes-overlay{position:fixed;inset:auto auto 16px 24px;z-index:80;display:block;width:min(630px,calc(100vw - 420px));max-width:calc(100vw - 28px);padding:0;background:none;pointer-events:none}
body.presenter-mode .notes-box{box-sizing:border-box;pointer-events:auto;max-width:none;width:100%;max-height:min(34vh,260px);overflow-y:auto;padding:15px 19px;border:1px solid rgba(232,133,98,.42);border-radius:13px;background:rgba(23,28,25,.89);color:#f6f3ef;box-shadow:0 14px 35px rgba(0,0,0,.35);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body.presenter-mode .notes-top{align-items:center;gap:16px}
body.presenter-mode .notes-top h3{font-size:16px;letter-spacing:-.025em;margin:3px 0 5px}
body.presenter-mode .notes-top .eyebrow{font-size:10px}
body.presenter-mode .notes-box p{font-size:13px;line-height:1.42;margin:7px 0 0}
body.presenter-mode .notes-box .secondary{font-size:11px;padding:6px 10px;border-radius:8px;white-space:nowrap}
body.presenter-mode .notes-box .fineprint{font-size:10px!important;opacity:.66;margin-top:5px}
@media(max-width:1090px){body.presenter-mode .notes-overlay{left:12px;bottom:12px;width:min(630px,calc(100vw - 24px))}}
@media(max-width:600px){body.presenter-mode .notes-box{max-height:32vh;padding:12px 14px}body.presenter-mode .notes-top h3{font-size:14px}body.presenter-mode .notes-box p{font-size:12px}}


/* Vyncelora UX v0.4 — QR Code e identidade visual oficial. */
.vlogo-img{display:block;width:96px;height:96px;object-fit:contain;margin-bottom:46px}
.login-qr{display:flex;align-items:center;gap:16px;margin:12px 0 18px;padding:16px 0 0;border-top:1px solid #d9d6d0}
.login-qr img{flex:0 0 116px;width:116px;height:116px;padding:6px;border:1px solid #d7d4ce;border-radius:10px;background:#fff}
.login-qr strong{display:block;font-size:14px;line-height:1.4}
.login-qr p{margin:6px 0 0;font-size:12px;line-height:1.5;color:#5d645f}
.brandmark img{display:block;flex-shrink:0;object-fit:contain}
.qr-open{border:1px solid #59615b;border-radius:8px;padding:7px 10px;background:#202521;color:#f6f3ef;font-size:11px;font-weight:700;white-space:nowrap}
.qr-open:hover,.qr-open:focus-visible{border-color:var(--coral)}
.qr-dialog{color:#1b211e;background:#f7f4ef;border:0;border-radius:18px;padding:24px;width:min(450px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;box-shadow:0 24px 120px #0009;text-align:center}
.qr-dialog::backdrop{background:rgba(0,0,0,.74)}
.qr-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.qr-dialog-top img{object-fit:contain;display:block}
.qr-close{background:#e9e7e1;color:#252923;border:0;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700}
.qr-dialog h2{font-size:clamp(22px,3vw,30px);line-height:1.2;margin:15px 0 7px;letter-spacing:-.04em}
.qr-dialog p{font-size:13px;line-height:1.55;color:#60665f}
.qr-dialog-image{display:block;width:min(310px,100%);height:auto;aspect-ratio:1;margin:16px auto 10px;padding:8px;border-radius:12px;background:#fff;border:1px solid #e3e0da}
.qr-dialog .qr-dialog-foot{font-size:12px}
@media(max-width:700px){.vlogo-img{width:60px;height:60px;margin-bottom:12px}.login-qr img{flex-basis:95px;width:95px;height:95px}.login-qr{gap:12px;padding-top:12px}.brandmark img{width:22px;height:22px}}
@media(max-width:650px){.qr-open{font-size:10px;padding:5px 6px}body.viewer-mode .brandmark img{width:19px;height:19px}}
