/* Casca de mentoria do Foco.
   Só cuida de login, barra de contas e do enquadramento do Foco v12.
   Nada aqui deve vazar para dentro do iframe: o v12 tem estilo próprio. */

:root{
  --azul:#081A36; --azul2:#0E2A52; --marca:#3B82F6; --marca-forte:#2563EB;
  --tinta:#0F172A; --tinta2:#475569; --tinta3:#94A3B8;
  --fundo:#F1F5F9; --papel:#FFFFFF; --linha:#E2E8F0;
  --erro:#DC2626; --erro-suave:#FEF2F2;
  --raio:14px; --sombra:0 10px 30px rgba(15,23,42,.08);
  --barra:52px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--fundo); color:var(--tinta);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}

/* ---------- marca ---------- */
/* Alvo aberto, sem moldura: o quadrado de cantos arredondados de antes tinha a
   mesma forma dos botões e era lido como controle, não como marca. */
.host-mark{display:inline-grid;place-items:center;width:32px;height:32px;color:var(--marca);flex:none}
.host-mark svg{width:100%;height:100%;display:block}

/* ---------- carregando ---------- */
.host-loading{
  min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;color:var(--tinta2);font-size:14px;
}
.host-loading .host-mark{animation:pulsa 1.4s ease-in-out infinite}
@keyframes pulsa{0%,100%{opacity:1}50%{opacity:.45}}

/* ---------- login ---------- */
.host-login{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(1200px 600px at 50% -10%,#12325F 0%,var(--azul) 60%);
}
.login-card{
  width:100%;max-width:404px;background:var(--papel);border-radius:20px;padding:30px;
  box-shadow:0 24px 60px rgba(3,12,30,.34);
}
.login-card.compact{max-width:378px}
.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}
.login-brand strong{display:block;font-size:16px;letter-spacing:-.2px}
.login-brand small{display:block;font-size:9.5px;font-weight:700;letter-spacing:1.2px;color:var(--tinta3)}
.login-copy{margin-bottom:22px}
.login-copy span{font-size:10px;font-weight:800;letter-spacing:1.4px;color:var(--marca)}
.login-copy h1{margin:7px 0 6px;font-size:21px;line-height:1.25;letter-spacing:-.4px}
.login-copy p{margin:0;font-size:13.5px;line-height:1.5;color:var(--tinta2)}
.host-login label{display:block;margin-bottom:14px;font-size:12px;font-weight:700;color:var(--tinta2)}
.host-login input{
  display:block;width:100%;margin-top:6px;padding:11px 13px;font-size:14px;font-weight:500;
  background:var(--fundo);border:1.5px solid var(--linha);border-radius:11px;transition:border-color .15s,background .15s;
}
.host-login input:focus{outline:none;border-color:var(--marca);background:var(--papel)}
.host-login button[type=submit]{
  width:100%;margin-top:6px;padding:12px;font-size:14px;font-weight:700;color:#fff;
  background:var(--marca);border:0;border-radius:11px;transition:background .15s;
}
.host-login button[type=submit]:hover:not(:disabled){background:var(--marca-forte)}
.host-login button[type=submit]:disabled{opacity:.6;cursor:not-allowed}
.host-error{
  margin:0 0 14px;padding:9px 12px;font-size:12.5px;font-weight:600;
  color:var(--erro);background:var(--erro-suave);border-radius:9px;
}

/* ---------- barra de contas ---------- */
.legacy-host{display:flex;flex-direction:column;height:100vh;height:100dvh}
.host-account-bar{
  flex:none;height:var(--barra);display:flex;align-items:center;gap:12px;
  padding:0 14px;background:var(--azul);color:#fff;
}
.host-account-brand{display:flex;align-items:center;gap:9px;min-width:0}
.host-account-brand strong{font-size:14.5px;letter-spacing:-.2px;white-space:nowrap}
.host-role{
  font-size:9.5px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;
  padding:3px 8px;border-radius:20px;background:rgba(255,255,255,.13);color:#BFDBFE;white-space:nowrap;
}
.host-account-actions{display:flex;align-items:center;gap:9px;margin-left:auto;min-width:0}
.student-picker{display:flex;align-items:center;gap:8px;padding:3px 3px 3px 11px;
  background:rgba(255,255,255,.09);border-radius:11px}
.student-picker span{font-size:9.5px;font-weight:800;letter-spacing:.9px;color:#93B4DF;white-space:nowrap}
.student-picker select{
  max-width:180px;padding:6px 9px;font-size:13px;font-weight:700;color:#fff;
  background:var(--azul2);border:0;border-radius:9px;
}
.student-identity{display:flex;flex-direction:column;line-height:1.25;text-align:right;min-width:0}
.student-identity b{font-size:13px}
.student-identity small{font-size:10.5px;color:#93B4DF;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.host-primary{padding:7px 13px;font-size:12.5px;font-weight:700;color:#fff;background:var(--marca);border:0;border-radius:9px;white-space:nowrap}
.host-primary:hover{background:var(--marca-forte)}
.host-avatar{
  display:grid;place-items:center;width:31px;height:31px;flex:none;
  font-size:11.5px;font-weight:800;color:#fff;background:var(--marca);border-radius:50%;
}
.host-signout{padding:7px 11px;font-size:12.5px;font-weight:600;color:#CBD5E1;background:transparent;border:0;border-radius:9px}
.host-signout:hover{background:rgba(255,255,255,.09);color:#fff}

/* ---------- avisos ---------- */
.host-banner{
  flex:none;display:flex;align-items:center;gap:12px;padding:9px 15px;
  font-size:13px;font-weight:600;color:#7C2D12;background:#FFEDD5;border-bottom:1px solid #FED7AA;
}
.host-banner button{margin-left:auto;font-size:12px;font-weight:700;color:#9A3412;background:transparent;border:0}

/* ---------- área do Foco ---------- */
.legacy-frame-wrap{flex:1;min-height:0;position:relative;background:var(--fundo)}
.legacy-frame{display:block;width:100%;height:100%;border:0}
.frame-loading,.host-empty{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:13px;padding:24px;text-align:center;color:var(--tinta2);
}
.host-empty h1{margin:0;font-size:19px;letter-spacing:-.3px;color:var(--tinta)}
.host-empty p{margin:0;max-width:420px;font-size:13.5px;line-height:1.55}
.host-empty button{margin-top:6px;padding:10px 17px;font-size:13px;font-weight:700;color:#fff;background:var(--marca);border:0;border-radius:11px}

/* ---------- modal ---------- */
.host-modal-backdrop{
  position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;
  background:rgba(8,26,54,.55);backdrop-filter:blur(2px);
}
.host-modal{width:100%;max-width:452px;max-height:calc(100vh - 40px);overflow-y:auto;
  background:var(--papel);border-radius:18px;box-shadow:var(--sombra)}
.host-modal-head{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 0}
.host-modal-head span{font-size:10px;font-weight:800;letter-spacing:1.3px;color:var(--marca)}
.host-modal-head h2{margin:5px 0 0;font-size:18px;letter-spacing:-.3px}
.host-modal-head button{margin-left:auto;font-size:22px;line-height:1;color:var(--tinta3);background:transparent;border:0}
.host-modal form{padding:18px 22px 22px}
.host-modal label{display:block;margin-bottom:13px;font-size:12px;font-weight:700;color:var(--tinta2)}
.host-modal input[type=text],.host-modal input[type=email]{
  display:block;width:100%;margin-top:6px;padding:10px 12px;font-size:14px;font-weight:500;
  background:var(--fundo);border:1.5px solid var(--linha);border-radius:10px;
}
.host-modal input:focus{outline:none;border-color:var(--marca);background:var(--papel)}
.clone-choice{display:flex;gap:10px;align-items:flex-start;padding:12px;background:var(--fundo);border-radius:11px}
.clone-choice input{margin-top:2px;flex:none}
.clone-choice b{display:block;font-size:13px;color:var(--tinta)}
.clone-choice small{display:block;margin-top:2px;font-size:11.5px;font-weight:500;color:var(--tinta2)}
.host-modal-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:18px}
.host-modal-actions button{padding:10px 16px;font-size:13px;font-weight:700;color:var(--tinta2);background:var(--fundo);border:0;border-radius:10px}
.host-modal-actions .host-primary{color:#fff}
.credential-card{padding:18px 22px 22px}
.credential-card p{margin:0 0 14px;font-size:13.5px;line-height:1.5;color:var(--tinta2)}
.credential-card dl{margin:0;display:grid;gap:9px}
.credential-card dl>div{padding:11px 13px;background:var(--fundo);border-radius:11px}
.credential-card dt{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--tinta3)}
.credential-card dd{margin:3px 0 0;font-size:15px;font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
.credential-card small{display:block;margin-top:12px;font-size:11.5px;line-height:1.5;color:var(--tinta2)}
.credential-card button{width:100%;margin-top:16px;padding:11px;font-size:13.5px;font-weight:700;color:#fff;background:var(--marca);border:0;border-radius:11px}

/* Dois rótulos para o mesmo botão: o longo em tela larga, o curto no celular.
   Trocar texto por CSS evita depender do tamanho da tela no JavaScript. */
.so-estreito{display:none}

@media(max-width:720px){
  :root{--barra:auto}
  .host-account-bar{flex-wrap:wrap;gap:9px;padding:9px 12px}
  .host-account-actions{width:100%;margin-left:0}
  .student-picker{flex:1;min-width:0}
  .student-picker select{flex:1;max-width:none}
}

@media(max-width:560px){
  .so-largo{display:none}
  .so-estreito{display:inline}
  /* "Acompanhando" vira ruído quando a tela é estreita: o seletor já diz tudo. */
  .student-picker{padding-left:6px}
  .student-picker>span{display:none}
  .host-primary{padding:7px 10px}
  .host-account-brand strong{font-size:13.5px}
  .host-role{font-size:9px;padding:3px 6px}
  .host-signout{padding:7px 8px}
  .host-avatar{width:28px;height:28px;font-size:11px}
}

/* A mesma Inter que o Foco v12 usa, aqui servida como arquivo para o navegador
   poder cachear. Dentro do v12 ela continua embutida, porque aquele arquivo
   precisa abrir sozinho, sem servidor. */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('./inter.woff2') format('woff2');
}

/* Ações secundárias das telas de acesso: presentes, mas sem competir com o
   botão principal. */
.link-discreto{
  display:block;width:100%;margin-top:12px;padding:8px;
  font-size:12.5px;font-weight:600;color:var(--tinta2);
  background:transparent;border:0;border-radius:9px;
}
.link-discreto:hover{color:var(--marca);background:var(--fundo)}
.host-aviso{
  margin:0 0 14px;padding:9px 12px;font-size:12.5px;font-weight:600;line-height:1.45;
  color:#166534;background:#F0FDF4;border-radius:9px;
}
