/* Tokens: Altrum design system (canvas #070707, surface #181818, field #313131, brancos em alpha, Inter, tracking negativo) */
:root{
  --canvas:#070707;--surface:#181818;--field:#313131;
  --fg:#ffffff;--fg-body:rgba(255,255,255,.70);--fg-meta:rgba(255,255,255,.55);--fg-mute:rgba(255,255,255,.33);
  --hair:rgba(255,255,255,.13);--hair-2:rgba(255,255,255,.15);--glass:rgba(255,255,255,.10);
  --pill:#ebebeb;--pill-fg:#000;
  --r-s:6px;--r:10px;--r-l:14px;--r-xl:20px;--r-pill:60px;
  --ease:cubic-bezier(.2,.6,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--canvas);color:var(--fg);font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5;letter-spacing:-.2px;min-height:100dvh;display:flex;flex-direction:column}
h1,h2,h3{font-weight:500;letter-spacing:-.02em;line-height:1.1}
h1{font-size:22px}h2{font-size:28px;letter-spacing:-.03em}h3{font-size:18px;font-weight:600}
p{color:var(--fg-body)}
a{color:var(--fg);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--fg-meta)}
a:hover{text-decoration-color:var(--fg)}
.eyebrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--hair-2);color:var(--fg-meta);font-size:13px;font-weight:500;margin-bottom:14px}
.eyebrow .n{color:var(--fg-meta);display:flex;align-items:center;gap:6px}
.muted{color:var(--fg-meta)}.small{font-size:13px}.mute{color:var(--fg-meta)}
#aviso{position:sticky;top:0;z-index:20;background:rgba(7,7,7,.92);backdrop-filter:blur(30px);color:var(--fg-meta);font-size:12.5px;padding:8px 16px;text-align:center;border-bottom:1px solid var(--hair)}
#aviso b{color:var(--fg);font-weight:600}
#aviso .curto{display:none}
header{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--hair)}
header h1 span{color:var(--fg-meta);font-weight:500}
header .right{display:flex;gap:12px;align-items:center;color:var(--fg-meta);font-size:14px}
.placar{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-pill);padding:5px 14px;font-weight:600;color:var(--fg);white-space:nowrap;font-size:14px}
main{flex:1;max-width:760px;width:100%;margin:0 auto;padding:18px 20px 120px}
.card{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-l);padding:22px;margin-bottom:14px}
.cit{transition:opacity .4s var(--ease),transform .4s var(--ease);background:var(--canvas);border:1px solid var(--hair);border-radius:var(--r);padding:14px 16px;margin:10px 0;color:var(--fg)}
.cit .q{color:var(--fg-meta);font-weight:700;font-size:22px;line-height:0;vertical-align:-6px;margin-right:4px}
.cit .src{display:block;font-size:12.5px;color:var(--fg-meta);margin-top:8px}
.cit .src a{color:var(--fg)}
.btn{background:var(--pill);color:var(--pill-fg);border:0;border-radius:var(--r-pill);padding:12px 20px;font:inherit;font-weight:600;letter-spacing:-.2px;cursor:pointer;transition:background .4s var(--ease),transform .2s var(--ease);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.btn:hover{background:#d9d9d9}.btn:active{transform:scale(.98)}
.btn.ghost{background:transparent;color:var(--fg);border:1px solid var(--hair-2)}
.btn.ghost:hover{background:var(--glass)}
.btn.sm{padding:6px 12px;font-size:12.5px}
.btn:disabled{opacity:.4;cursor:default;transform:none}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
input,textarea,select{width:100%;background:var(--field);border:1px solid transparent;color:var(--fg);border-radius:var(--r);padding:13px 14px;font:inherit;letter-spacing:-.2px;transition:border-color .3s var(--ease)}
input:focus,textarea:focus,select:focus{border-color:rgba(255,255,255,.55)}
:focus-visible{outline:2px solid #fff;outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::placeholder{color:rgba(255,255,255,.55)}
label{display:block;font-size:13px;color:var(--fg-meta);margin:14px 0 6px;font-weight:500}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--fg-body);margin-top:12px}
.check input{width:16px;height:16px;margin-top:3px;accent-color:#fff}
.msgs{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;padding-bottom:8px}
.msg{padding:14px 16px;border-radius:var(--r);max-width:94%;white-space:pre-wrap;color:var(--fg);scroll-margin-bottom:140px}
.msg.user{background:var(--field);align-self:flex-end}
.msg.bot{background:var(--surface);border:1px solid var(--hair);align-self:flex-start}
.msg.crise{border-color:rgba(255,255,255,.45)}
.msg .tag{display:inline-block;font-size:12px;letter-spacing:.02em;color:var(--fg-meta);margin-bottom:6px;font-weight:500}
.ask{position:fixed;left:0;right:0;bottom:calc(64px + env(safe-area-inset-bottom));background:rgba(7,7,7,.96);backdrop-filter:blur(30px);padding:8px 16px 10px;border-top:1px solid var(--hair);z-index:19}
.ask form{max-width:760px;margin:0 auto;display:flex;gap:8px}
.ask input{flex:1}
.msgs{min-height:30vh}
.status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.status button{padding:14px 6px;border-radius:var(--r);border:1px solid var(--hair);background:var(--canvas);color:var(--fg-body);font:inherit;font-weight:600;cursor:pointer;transition:all .3s var(--ease)}
.status button.sel{background:var(--pill);color:var(--pill-fg);border-color:var(--pill)}
.grid-d{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:10px}
.d{aspect-ratio:1;border-radius:var(--r-s);background:var(--canvas);border:1px solid var(--hair);font-size:12px;display:flex;align-items:center;justify-content:center;color:var(--fg-meta);flex-direction:column;line-height:1}
.d small{font-size:12px;color:var(--fg-meta)}
.d.hd{border:0;background:none;color:var(--fg-meta);font-weight:600}
.d.cumpriu{background:var(--pill);color:var(--pill-fg);border-color:var(--pill)}
.d.parcial{background:rgba(255,255,255,.33);color:var(--fg);border-color:transparent}
.d.nao{background:transparent;border:1px dashed rgba(255,255,255,.33);color:var(--fg-meta)}
.missao{font-size:24px;font-weight:600;letter-spacing:-.03em;line-height:1.2;margin:12px 0 8px;color:var(--fg)}
.hidden{display:none!important}
.spin{display:inline-block;width:12px;height:12px;border:1.5px solid var(--fg-mute);border-top-color:var(--fg);border-radius:50%;animation:s .8s linear infinite;vertical-align:middle;margin-right:8px}
@keyframes s{to{transform:rotate(360deg)}}
/* motion (Altrum: fade-up + blur-out, ~400-600ms, sem bounce) */
@keyframes up{from{opacity:0;transform:translateY(10px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
.msg{animation:up .45s var(--ease) both}
.sk{height:14px;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));background-size:200% 100%;animation:sh 1.4s linear infinite;margin:10px 0}
.sk.t{height:26px;width:70%}.sk.s{width:45%}
@keyframes sh{to{background-position:-200% 0}}
.placar.pop{animation:pop .5s var(--ease)}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
.status button:active{transform:scale(.97)}
.feito{display:inline-flex;align-items:center;gap:8px;background:var(--pill);color:var(--pill-fg);border-radius:var(--r-pill);padding:6px 14px;font-weight:600;font-size:13px;margin-top:14px}
.card.dim{opacity:.55;transition:opacity .5s var(--ease)}
.dots span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--fg-meta);margin-right:4px;animation:dot 1.2s infinite}
.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}
@keyframes dot{0%,80%,100%{opacity:.25}40%{opacity:1}}
.more{background:none;border:0;color:var(--fg-meta);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px 0}
.cit.hid{display:none}
.nudge{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:12px;padding:12px 14px;border:1px solid var(--hair);border-radius:var(--r);color:var(--fg-body);font-size:13.5px;cursor:pointer;transition:background .3s var(--ease)}
.nudge:hover{background:var(--glass)}
@media (prefers-reduced-motion:reduce){.msg,.sk,.placar.pop,.dots span{animation:none}}
.plus{color:var(--fg-meta);opacity:.7;font-size:13px;margin-right:6px}
@media (max-width:480px){#aviso{font-size:12px;padding:6px 12px}#aviso .longo{display:none}#aviso .curto{display:inline}h1{font-size:18px}header{padding:10px 16px}.placar{padding:4px 12px;font-size:13px}.missao{font-size:21px}main{padding:14px 14px 120px}.card{padding:16px}.status button{padding:12px 4px}}

/* utilitárias (substituem estilos inline) */
.mt-4{margin-top:4px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-14{margin-top:14px}.mt-16{margin-top:16px}.mt-18{margin-top:18px}
.mb-10{margin-bottom:10px}.mb-12{margin-bottom:12px}.mb-14{margin-bottom:14px}.m0{margin:0}.ml-8{margin-left:8px}.w100{width:100%}
.upper{text-transform:uppercase}.body{color:var(--fg-body)}.erro{color:var(--fg)}
.eyebrow-in{margin:16px 0 0;border-top-color:var(--hair)}.eyebrow-flat{border-top:0;padding-top:0}
.sugestoes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 10px}
.fb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--hair);font-size:13px;color:var(--fg-meta)}
.fb button{background:transparent;border:1px solid var(--hair-2);color:var(--fg);border-radius:var(--r-pill);padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.fb button:hover{background:var(--glass)}
.placar.marco{box-shadow:0 0 0 3px rgba(255,255,255,.6);transition:box-shadow .4s var(--ease)}
details summary{cursor:pointer;list-style:none}details summary::-webkit-details-marker{display:none}
.exemplo{opacity:.7}.exemplo h3{font-size:15px}
.d.hd{font-size:12px;text-transform:lowercase}

.mark{vertical-align:-4px;margin-right:8px}
main.texto{max-width:720px}main.texto h2{font-size:20px;margin:22px 0 8px}main.texto p{margin-bottom:10px}
a.btn{display:inline-block;text-decoration:none}
.admin{max-width:1100px}.w-auto{width:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}td,th{border-bottom:1px solid var(--hair);padding:8px;text-align:left;vertical-align:top}th{color:var(--fg-meta);font-weight:500}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.tile{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);padding:12px}.tile b{display:block;font-size:26px;letter-spacing:-.02em}.tile span{color:var(--fg-meta);font-size:12.5px}
.rev label{display:block;font-size:12.5px;color:var(--fg-body);margin:0 0 4px}.rev input.nota{margin:6px 0;padding:8px 10px}
#placar-box.feito .status,#placar-box.feito details{display:none}
.status[aria-busy="true"] button{opacity:.5}
.cit.hid{display:none}

/* chat único */
#chat{padding-bottom:120px}
.msg.aula,.msg.verificador{max-width:100%;align-self:stretch;background:var(--surface)}
.msg.aula .eyebrow-flat{margin:0 0 8px;padding-top:0}
.aula.feita .status,.aula.feita details{display:none}
.ask{bottom:0;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
.msg{scroll-margin-bottom:120px}
button.placar{font:inherit;cursor:pointer}
header .right{gap:8px}
.fundo{position:fixed;inset:0;background:rgba(7,7,7,.6);backdrop-filter:blur(6px);z-index:30}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--canvas);border-left:1px solid var(--hair);padding:18px 20px 40px;overflow:auto;z-index:31;animation:slide .45s var(--ease) both}
@keyframes slide{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
body.travado{overflow:hidden}
@media (prefers-reduced-motion:reduce){.sheet{animation:none}}
@media (min-width:900px){
  main#chat{max-width:860px;padding:24px 40px 120px}
  .ask form{max-width:860px}
}
.msg.aula,.msg.verificador{white-space:normal}
