/* MP Fit · base visual comum (app do aluno, painel e recepção). Preto + laranja neon da marca. */
@font-face{font-family:'Barlow';src:url(../fonts/barlow-latin-400-normal.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Barlow';src:url(../fonts/barlow-latin-500-normal.woff2) format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Barlow';src:url(../fonts/barlow-latin-600-normal.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow';src:url(../fonts/barlow-latin-700-normal.woff2) format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(../fonts/barlow-condensed-latin-600-italic.woff2) format('woff2');font-weight:600;font-style:italic;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(../fonts/barlow-condensed-latin-700-italic.woff2) format('woff2');font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(../fonts/barlow-condensed-latin-700-normal.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(../fonts/barlow-condensed-latin-800-italic.woff2) format('woff2');font-weight:800;font-style:italic;font-display:swap}

:root{
  --bg:#070708;--bg2:#0c0c0f;--s1:#111115;--s2:#17171c;--s3:#1f1f26;--line:rgba(255,255,255,.07);--line2:rgba(255,255,255,.13);
  --or:#ff6a13;--or2:#ff8a3d;--or3:#ffb37a;--glow:rgba(255,106,19,.42);--orbg:rgba(255,106,19,.1);
  --txt:#f5f5f6;--mut:#a3a3ad;--mut2:#71717b;--ok:#2bd67b;--okbg:rgba(43,214,123,.12);--warn:#ffc53a;--warnbg:rgba(255,197,58,.12);--bad:#ff4d57;--badbg:rgba(255,77,87,.12);
  --cond:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;--sans:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r:18px;--r2:12px;--ease:cubic-bezier(.2,.75,.2,1);--sat:env(safe-area-inset-top);--sab:env(safe-area-inset-bottom)
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{color-scheme:dark;-webkit-text-size-adjust:100%}
html,body{margin:0;background:var(--bg);color:var(--txt);font-family:var(--sans);font-size:15px;line-height:1.45}
body{min-height:100vh;min-height:100dvh;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:inherit}
img,svg{display:block;max-width:100%}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
h1,h2,h3,.cond{font-family:var(--cond);font-style:italic;font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:.95;margin:0}
.num{font-family:var(--cond);font-weight:800;font-style:italic;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mut{color:var(--mut)}.mut2{color:var(--mut2)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:14px;background:var(--or);color:#140600;font-family:var(--cond);font-style:italic;font-weight:800;font-size:19px;letter-spacing:.03em;text-transform:uppercase;box-shadow:0 8px 28px -10px var(--glow),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .15s var(--ease),filter .15s;text-decoration:none;white-space:nowrap}
.btn:hover{filter:brightness(1.07)}.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.sec{background:var(--s2);color:var(--txt);box-shadow:inset 0 0 0 1px var(--line2)}
.btn.ghost{background:transparent;color:var(--txt);box-shadow:inset 0 0 0 1px var(--line2)}
.btn.ok{background:var(--ok);color:#03200f;box-shadow:0 8px 28px -10px rgba(43,214,123,.5)}
.btn.bad{background:var(--badbg);color:var(--bad);box-shadow:inset 0 0 0 1px rgba(255,77,87,.35)}
.btn.sm{min-height:40px;padding:0 14px;font-size:16px;border-radius:11px}
.btn.wide{width:100%}
.lnk{color:var(--or2);text-decoration:underline;text-underline-offset:3px;min-height:40px;min-width:40px;display:inline-flex;align-items:center;gap:4px}

/* campos */
.campo{display:flex;flex-direction:column;gap:6px}
.campo label{font-size:13px;color:var(--mut);font-weight:600;letter-spacing:.02em}
.inp{width:100%;min-height:52px;border-radius:14px;border:1px solid var(--line2);background:var(--s1);padding:0 16px;font-size:18px;outline:none;transition:border-color .15s,box-shadow .15s}
.inp:focus{border-color:var(--or);box-shadow:0 0 0 4px rgba(255,106,19,.18)}
textarea.inp{padding:12px 16px;min-height:96px;resize:vertical;font-size:16px}
select.inp{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mut) 50%),linear-gradient(135deg,var(--mut) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px;font-size:16px}

/* cartões e chips */
.card{background:linear-gradient(180deg,var(--s2),var(--s1));border:1px solid var(--line);border-radius:var(--r);padding:16px;position:relative}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:99px;font-size:12.5px;font-weight:700;letter-spacing:.02em;background:var(--s3);color:var(--mut);white-space:nowrap}
.chip.ok{background:var(--okbg);color:var(--ok)}.chip.warn{background:var(--warnbg);color:var(--warn)}.chip.bad{background:var(--badbg);color:var(--bad)}.chip.or{background:var(--orbg);color:var(--or2)}
.chip .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.dot.live{animation:pulso 1.6s infinite}
@keyframes pulso{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.selo-demo{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--warn);background:var(--warnbg);border:1px solid rgba(255,197,58,.25);border-radius:99px;padding:4px 10px}
.kick{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--or2);font-weight:700}
.bar{height:8px;border-radius:99px;background:var(--s3);overflow:hidden}
.bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--or),var(--or2));box-shadow:0 0 12px var(--glow);transition:width .6s var(--ease)}
.bar.ok i{background:var(--ok);box-shadow:none}.bar.warn i{background:var(--warn);box-shadow:none}.bar.bad i{background:var(--bad);box-shadow:none}

/* avatar com iniciais */
.ava{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,var(--or),#a83a00);color:#fff;font-family:var(--cond);font-weight:800;font-style:italic;font-size:18px;letter-spacing:.02em}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(96px + var(--sab));transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#fff;color:#111;font-weight:600;padding:12px 18px;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.5);z-index:200;transition:.25s var(--ease);max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.erro{background:var(--bad);color:#fff}

/* folha (bottom sheet) */
.sheetbg{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s;z-index:120}
.sheetbg.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:50%;bottom:0;width:min(560px,100%);max-height:92dvh;overflow:auto;transform:translate(-50%,105%);background:var(--bg2);border:1px solid var(--line2);border-bottom:0;border-radius:24px 24px 0 0;padding:10px 18px calc(22px + var(--sab));z-index:121;transition:transform .32s var(--ease)}
.sheet.on{transform:translate(-50%,0)}
.sheet:not(.on){visibility:hidden;transition:transform .32s var(--ease),visibility 0s .32s}
.sheet .alca{width:42px;height:5px;border-radius:9px;background:var(--line2);margin:0 auto 14px}
@media (min-width:900px){.sheet{bottom:auto;top:50%;border-radius:24px;border-bottom:1px solid var(--line2);transform:translate(-50%,-46%) scale(.97);opacity:0;pointer-events:none;transition:.25s var(--ease)}.sheet.on{transform:translate(-50%,-50%);opacity:1;pointer-events:auto}}

.vazio{padding:28px 16px;text-align:center;color:var(--mut)}
.vazio .ic{width:34px;height:34px;margin:0 auto 10px;color:var(--mut2)}
.ent{animation:ent .45s var(--ease) both}
@keyframes ent{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.skel{background:linear-gradient(90deg,var(--s1),var(--s2),var(--s1));background-size:200% 100%;animation:skel 1.2s infinite;border-radius:var(--r);min-height:90px}
@keyframes skel{to{background-position:-200% 0}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* entrada por PIN (painel e recepção) */
.pin-tela{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(700px 500px at 50% 0,rgba(255,106,19,.15),transparent 70%)}
.pin-box{width:min(380px,100%);display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.pin-logo{width:150px;height:auto}
.pin-box h1{font-size:36px}.pin-box p{margin:0}
.pin-users{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:100%}
.pin-u{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:16px;background:var(--s1);border:1px solid var(--line);text-align:left;min-height:56px}
.pin-u .ava{width:38px;height:38px;font-size:15px}
.pin-u span:last-child{display:flex;flex-direction:column}.pin-u small{color:var(--mut);font-size:12px}
.pin-u.on{border-color:var(--or);background:linear-gradient(160deg,rgba(255,106,19,.15),var(--s1))}
.pin-dots{display:flex;gap:12px;margin:8px 0 0}
.pin-dots i{width:14px;height:14px;border-radius:50%;border:2px solid var(--line2);transition:.15s}
.pin-dots i.opc{opacity:.45}
.pin-dots i.on{background:var(--or);border-color:var(--or);box-shadow:0 0 12px var(--glow);opacity:1}
.pin-erro{color:var(--bad);font-weight:600;min-height:22px;font-size:14px}
.pin-tec{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%}
.pin-tec button{height:64px;border-radius:18px;background:var(--s1);border:1px solid var(--line);font-family:var(--cond);font-weight:700;font-size:30px;display:grid;place-items:center;transition:transform .1s}
.pin-tec button:active{transform:scale(.95);background:var(--s2)}
.pin-tec .okk{background:var(--or);color:#160700;border-color:var(--or)}
.pin-tec .ic{width:26px;height:26px}
