:root{--accent:#0d6b4d;--ink:#0b2d2a;--cream:#f4efe5;--panel:#ececec;--black:#17191b;--orange:#ff7a18;--green:#13b968;--shadow:0 24px 70px rgba(0,0,0,.22)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#e8e3d9}button{font:inherit;cursor:pointer}.hidden{display:none!important}
body{min-height:100vh;overflow-x:hidden}.page-bg{position:fixed;inset:0;z-index:-2;background:radial-gradient(circle at 20% 10%,rgba(255,214,0,.35),transparent 34%),radial-gradient(circle at 80% 20%,rgba(0,83,167,.26),transparent 36%),linear-gradient(145deg,#f7f2e8 0 54%,#d9efe3 100%)}.page-bg:after{content:"";position:absolute;inset:auto -10vw -22vh -10vw;height:45vh;background:linear-gradient(145deg,#23b96c,#0e8a55);clip-path:polygon(0 36%,16% 16%,32% 32%,48% 7%,63% 29%,79% 0,100% 33%,100% 100%,0 100%);opacity:.8}
.topbar{height:82px;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.appbrand{display:flex;align-items:center;gap:12px}.appbrand strong{display:block;font-size:20px;text-transform:uppercase;letter-spacing:.03em}.appbrand small{display:block;opacity:.68}.logo-cube{width:42px;height:42px;background:linear-gradient(135deg,#0a8f55 0 50%,#ffd51a 50%);border-radius:8px;position:relative;box-shadow:0 8px 20px rgba(0,0,0,.16)}.logo-cube i{position:absolute;left:10px;top:8px;width:22px;height:5px;background:#fff;transform:skewY(-20deg)}.top-actions{display:flex;gap:8px}.ghost{border:1px solid rgba(10,45,42,.14);background:rgba(255,255,255,.65);padding:10px 14px;border-radius:12px;color:var(--ink);backdrop-filter:blur(8px)}
.stage{min-height:calc(100vh - 130px);display:grid;place-items:center;padding:14px 24px 34px}.intro-card,.finish-card{width:min(620px,94vw);padding:42px;border-radius:28px;background:rgba(255,255,255,.87);text-align:center;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(14px)}.intro-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-size:38px;font-weight:900}.intro-card h1{font-size:clamp(28px,5vw,46px);margin:8px 0}.intro-card p{font-size:18px;line-height:1.5;color:#47615e}.primary{border:0;border-radius:14px;background:var(--accent);color:#fff;font-weight:900;letter-spacing:.04em}.big{padding:17px 28px;margin:18px 0 12px}.intro-card small,.finish-card small{display:block;opacity:.65}
.machine{width:min(1180px,96vw);display:grid;grid-template-columns:minmax(0,1.38fr) minmax(340px,.72fr);gap:10px;padding:18px;border-radius:28px;background:linear-gradient(#f3f3f3,#d8d8d8);box-shadow:var(--shadow);border:1px solid #b9b9b9}.screen-panel{background:#1f2326;padding:17px;border-radius:16px;min-height:520px;display:flex;flex-direction:column}.screen-topline{background:#eef4f6;border-radius:7px 7px 0 0;padding:12px 18px;display:flex;justify-content:space-between;font-weight:900;letter-spacing:.06em}.screen-body{flex:1;background:#f8fbfc;display:grid;grid-template-columns:230px 1fr;gap:24px;padding:28px}.candidate-photo-wrap{display:grid;place-items:center}.candidate-photo{width:100%;aspect-ratio:3/4;object-fit:cover;background:#e8ebed;border:1px solid #c4c8cb}.photo-placeholder{width:100%;aspect-ratio:3/4;background:linear-gradient(145deg,#eef1f3,#d7dadd);display:grid;place-items:center;color:#a1a7aa;border:1px solid #c8cccf}.photo-placeholder span{font-size:92px;line-height:.5}.photo-placeholder b{text-transform:uppercase;letter-spacing:.08em}.vote-info{display:flex;flex-direction:column;justify-content:center}.label{font-size:14px;letter-spacing:.12em}.vote-info h2{font-size:clamp(25px,3vw,42px);margin:5px 0 18px}.digits{display:flex;gap:9px;min-height:76px}.digit{width:60px;height:76px;border:3px solid #697378;border-radius:7px;display:grid;place-items:center;font-size:52px;font-weight:900;background:#fff}.digit.active{animation:blink 1s steps(2,end) infinite}@keyframes blink{50%{border-color:transparent}}.candidate-area{margin-top:20px;min-height:66px}.candidate-area strong{display:block;font-size:28px}.candidate-area span{font-size:20px}.null-message,.blank-message{font-size:38px;font-weight:1000;margin-top:16px}.null-message{color:#c62828}.blank-message{color:#505050}.screen-footer{background:#eef4f6;border-radius:0 0 7px 7px;padding:12px 18px;font-size:16px}
.keypad-panel{background:linear-gradient(160deg,#34383b,#202326);border-radius:16px;padding:32px 24px;display:flex;flex-direction:column;justify-content:center}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:350px;margin:auto;width:100%}.keypad button{height:76px;border-radius:9px;border:1px solid #070808;background:linear-gradient(#202225,#0e0f10);color:white;font-size:34px;font-weight:900;box-shadow:0 7px 0 #050606,0 8px 12px rgba(0,0,0,.34)}.keypad button:active{transform:translateY(4px);box-shadow:0 3px 0 #050606}.action-row{display:grid;grid-template-columns:1fr 1.12fr 1.28fr;gap:10px;margin-top:34px}.action{height:70px;border:0;border-radius:7px;font-size:16px;font-weight:1000;box-shadow:0 6px 0 rgba(0,0,0,.28)}.action:active{transform:translateY(3px);box-shadow:0 3px 0 rgba(0,0,0,.28)}.white{background:white}.orange{background:var(--orange)}.green{background:var(--green)}
.finish-word{font-size:clamp(88px,20vw,180px);font-weight:1000;letter-spacing:.14em;color:#111;margin-left:.14em}.finish-card p{font-size:22px}footer{min-height:48px;padding:10px 24px;display:flex;justify-content:center;gap:24px;align-items:center;font-size:13px;color:#40615b}footer a{color:inherit}
@media(max-width:800px){.topbar{height:70px;padding:10px 14px}.appbrand strong{font-size:15px}.appbrand small{font-size:11px}.top-actions span{display:none}.stage{padding:8px 10px 24px}.machine{grid-template-columns:1fr;padding:10px;border-radius:18px}.screen-panel{min-height:auto;padding:10px}.screen-body{grid-template-columns:115px 1fr;padding:16px;gap:14px}.candidate-photo-wrap{align-items:start}.photo-placeholder span{font-size:52px}.vote-info h2{font-size:24px;margin-bottom:10px}.digit{width:40px;height:54px;font-size:36px;border-width:2px}.digits{gap:5px;min-height:54px}.candidate-area{margin-top:10px;min-height:46px}.candidate-area strong{font-size:20px}.candidate-area span{font-size:15px}.null-message,.blank-message{font-size:26px}.keypad-panel{padding:18px 16px}.keypad{max-width:330px;gap:9px}.keypad button{height:56px;font-size:28px}.action-row{margin-top:21px;gap:8px}.action{height:58px;font-size:13px}footer{flex-direction:column;gap:4px}}
@media(orientation:landscape) and (max-height:650px){.topbar{height:56px;padding:7px 16px}.appbrand small{display:none}.stage{min-height:calc(100vh - 86px);padding:4px 10px 10px}.machine{width:min(1280px,98vw);grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);padding:9px}.screen-panel{min-height:430px}.screen-body{grid-template-columns:180px 1fr;padding:18px}.keypad-panel{padding:16px}.keypad{gap:8px}.keypad button{height:62px}.action-row{margin-top:20px}.action{height:58px}footer{display:none}}

/* v2 — identificação do orientador e contadores */
.facilitator-card{width:min(720px,94vw)}.person-icon{font-size:26px}.eyebrow{display:block;font-size:12px;font-weight:900;letter-spacing:.14em;color:var(--accent);margin-bottom:4px}.facilitator-form{max-width:500px;margin:22px auto 4px;text-align:left;display:grid;gap:14px}.facilitator-form label{display:grid;gap:7px;font-size:13px;font-weight:850;color:#254c47}.facilitator-form label span{font-weight:500;opacity:.65}.facilitator-form input{width:100%;border:1px solid rgba(13,107,77,.22);background:#fff;border-radius:13px;padding:14px 15px;font:inherit;color:var(--ink);outline:none;box-shadow:inset 0 1px 0 rgba(0,0,0,.03)}.facilitator-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.facilitator-form .big{width:100%;margin:4px 0}.form-error{background:#fff0f0;color:#9b1c1c;border:1px solid #ffd0d0;border-radius:10px;padding:11px 12px;font-size:13px;font-weight:750}.facilitator-pill{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin:-10px auto 18px;padding:8px 11px;border-radius:999px;background:#eef7f2;color:#244f48;width:max-content;max-width:100%;font-size:13px}.facilitator-pill span{opacity:.72}.facilitator-pill strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.facilitator-pill button{border:0;background:transparent;color:var(--accent);font-weight:900;text-decoration:underline}.teacher-counter{margin:16px auto 0;width:min(360px,100%);display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f5f8f6;border:1px solid #dfe9e3;border-radius:14px;padding:13px 16px;text-align:left}.teacher-counter span{font-size:13px;color:#55706b}.teacher-counter strong{font-size:28px;color:var(--accent)}.finish-stats{width:min(430px,100%);margin:14px auto 2px;display:grid;grid-template-columns:1fr auto;gap:10px 20px;text-align:left;background:#f5f8f6;border:1px solid #dfe9e3;border-radius:16px;padding:16px 18px}.finish-stats span{color:#607671;font-size:13px}.finish-stats strong{font-size:18px;text-align:right}.secondary{border:1px solid rgba(13,107,77,.22);border-radius:14px;background:#fff;color:var(--accent);font-weight:900;letter-spacing:.03em}.finish-card .secondary.big{margin-top:0}.finish-card .primary.big{margin-bottom:8px}
@media(max-width:560px){.intro-card,.finish-card{padding:28px 20px;border-radius:22px}.facilitator-form{margin-top:16px}.facilitator-pill{border-radius:16px}.teacher-counter{align-items:flex-start}.finish-stats{gap:8px 14px}}
