/* Login central do Painel (tarefa 308; visual da tarefa 311 = _identidade-visual-vision/login/Login hospitalar Vision Solutions.png).
   Identidade Vision (_identidade-visual-vision/tokens), contraste >= 4,5:1, foco com contorno sólido, texto >= 12 px, campos >= 38 px.
   Desktop: a composição da referência (1672 x 940) é desenhada numa unidade --u = 1 px da referência, que escala com a janela.
   Tablet/celular: a mesma peça empilhada (logo, chamada, cartão, texto, indicadores), sem rolagem horizontal. */
/* Fonte: exceção do dono (17/10/2026) só para esta tela do Painel — Plus Jakarta Sans local (cópia de
   _identidade-visual-vision/assets/fonts, licença OFL ao lado). Os módulos continuam sem carregar a fonte. */
@font-face{font-family:"Plus Jakarta Sans";src:url("login/fonts/PlusJakartaSans-Variable.ttf") format("truetype");font-weight:200 800;font-style:normal;font-display:swap}
:root{
  color-scheme:light;
  /* Pilha da fonte: um único ponto para trocar. */
  --lc-fonte:"Plus Jakarta Sans","Segoe UI",Roboto,Arial,sans-serif;
  --vision-color-primary:#1d5fe0; --vision-color-primary-hover:#1448b0; --vision-color-navy:#0f1f4b;
  --vision-color-text:#1c2540; --vision-color-text-strong:#28324f; --vision-color-muted:#5b6b8c;
  --vision-color-canvas:#f4f6fb; --vision-color-surface:#ffffff; --vision-color-border:#e7ecf5; --vision-color-border-strong:#8a94ad;
  --vision-color-danger:#b42336; --vision-color-danger-subtle:#fff0f1; --vision-color-surface-tint:#f1f5fd; --vision-color-primary-border:#c9dbff;
  --vision-focus-outline:2px solid #1d5fe0; --vision-focus-offset:2px; --vision-focus-ring:0 0 0 4px rgba(29,95,224,.20);
  --u:.62px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{min-height:100vh;background:var(--vision-color-canvas);color:var(--vision-color-text);font:14px/1.5 var(--lc-fonte);-webkit-font-smoothing:antialiased}
img,svg{display:block}

/* ---------- fundo (foto desfocada + véu branco à esquerda) ---------- */
.lc{position:relative;min-height:100vh;overflow:hidden;background:#e9eff7 var(--lc-fundo-p) center top/cover no-repeat}
.lc::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.93) 0,rgba(255,255,255,.86) 55%,rgba(255,255,255,.93) 100%)}

/* ---------- grafismos (canto inferior esquerdo) ---------- */
.lc-deco{display:none;position:absolute;left:0;bottom:0;width:calc(340 * var(--u));height:calc(260 * var(--u));pointer-events:none}
.lc-deco span{position:absolute;display:block}
.lc-deco-a{left:calc(-60 * var(--u));bottom:calc(-40 * var(--u));width:calc(166 * var(--u));height:calc(210 * var(--u));border:calc(2 * var(--u)) solid rgba(29,95,224,.55);border-left:0;border-radius:0 calc(34 * var(--u)) 0 0}
.lc-deco-b{left:calc(-60 * var(--u));bottom:calc(-40 * var(--u));width:calc(258 * var(--u));height:calc(154 * var(--u));border:calc(2 * var(--u)) solid rgba(29,95,224,.40);border-left:0;border-radius:0 calc(34 * var(--u)) 0 0}
.lc-deco-c{left:0;bottom:0;width:calc(150 * var(--u));height:calc(76 * var(--u));background:linear-gradient(180deg,rgba(201,219,255,.45),rgba(201,219,255,.25));border-radius:0 calc(30 * var(--u)) 0 0}
.lc-deco-cruz{display:none}

/* ---------- área esquerda ---------- */
.lc-palco{position:relative;display:flex;flex-direction:column;align-items:center;padding:28px 16px 32px;gap:0}
.lc-esq{display:contents}
.lc-marca{order:1;width:calc(433 * var(--u));max-width:100%;height:auto;align-self:flex-start}
.lc-chamada{order:2;align-self:flex-start;margin:calc(40 * var(--u)) 0 calc(28 * var(--u));font-weight:800;font-size:max(24px,calc(56 * var(--u)));line-height:1.06;letter-spacing:-.012em;color:var(--vision-color-navy)}
.lc-q{display:none}
.lc-texto{order:4;align-self:flex-start;margin:calc(40 * var(--u)) 0 0;font-size:max(16px,calc(29 * var(--u)));line-height:1.3;color:var(--vision-color-muted)}
.lc-ind{order:5;align-self:stretch;display:grid;grid-template-columns:repeat(2,1fr);gap:20px 12px;margin:calc(44 * var(--u)) 0 0;padding:0;list-style:none}
.lc-ind li{display:flex;flex-direction:column;align-items:center;text-align:center;font-weight:600;font-size:max(13px,calc(19 * var(--u)));line-height:1.25;color:var(--vision-color-navy)}
.lc-ind-ic{display:flex;align-items:center;justify-content:center;width:calc(115 * var(--u));max-width:100%;height:calc(92 * var(--u));margin-bottom:calc(14 * var(--u));background:var(--vision-color-surface);border-radius:calc(16 * var(--u));box-shadow:0 calc(8 * var(--u)) calc(24 * var(--u)) rgba(15,31,75,.08),0 1px 2px rgba(15,31,75,.04)}
.lc-ind-ic svg{width:calc(46 * var(--u));height:calc(46 * var(--u));fill:var(--vision-color-primary)}
.lc-lema{order:6;align-self:flex-start;position:relative;margin:calc(56 * var(--u)) 0 0;padding-bottom:calc(30 * var(--u));font-weight:500;font-size:max(12px,calc(14 * var(--u)));line-height:1.6;letter-spacing:.42em;text-transform:uppercase;color:var(--vision-color-text-strong)}
.lc-lema::after{content:"";position:absolute;left:0;bottom:0;width:calc(120 * var(--u));height:calc(2 * var(--u));min-height:1px;background:var(--vision-color-primary)}

/* ---------- cartão de acesso ---------- */
.lc-card{order:3;width:100%;max-width:520px;background:var(--vision-color-surface);border:1px solid rgba(231,236,245,.9);border-radius:max(16px,calc(28 * var(--u)));box-shadow:0 calc(24 * var(--u)) calc(64 * var(--u)) rgba(15,31,75,.14),0 2px 6px rgba(15,31,75,.05);padding:28px 22px 22px}
.lc-card h1{margin:0;font-weight:700;font-size:max(22px,calc(30.5 * var(--u)));line-height:1.2;letter-spacing:-.005em;color:var(--vision-color-navy)}
.lc-sub{margin:calc(10 * var(--u)) 0 0;font-size:max(15px,calc(19 * var(--u)));color:var(--vision-color-muted)}
.lc-erro{margin:calc(18 * var(--u)) 0 0;padding:10px 12px;border-radius:10px;border:1px solid var(--vision-color-danger);border-left-width:4px;background:var(--vision-color-danger-subtle);color:var(--vision-color-danger);font-weight:600;font-size:max(13px,calc(16 * var(--u)))}
#lc-form{margin-top:calc(30 * var(--u))}
.lc-campo{position:relative;margin-bottom:calc(17 * var(--u))}
.lc-campo input{display:block;width:100%;height:max(46px,calc(60 * var(--u)));padding:0 calc(20 * var(--u)) 0 max(48px,calc(70 * var(--u)));border:1px solid var(--vision-color-border-strong);border-radius:max(8px,calc(10 * var(--u)));background:var(--vision-color-surface-tint);color:var(--vision-color-text);font:max(15px,calc(19 * var(--u))) var(--lc-fonte);transition:border-color .15s,background-color .15s}
.lc-campo input:hover{border-color:var(--vision-color-muted)}
.lc-campo input:focus{background:var(--vision-color-surface)}
.lc-campo input[readonly]{color:var(--vision-color-text-strong)}
.lc-campo input[aria-invalid="true"]{border-color:var(--vision-color-danger)}
/* Rótulo real, no lugar do placeholder; sobe quando o campo tem valor (lembrado, autopreenchido ou CNES fixo). */
.lc-campo label{position:absolute;left:max(48px,calc(70 * var(--u)));top:50%;transform:translateY(-50%);max-width:calc(100% - 80px);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;font-size:max(15px,calc(19 * var(--u)));color:var(--vision-color-muted);transition:top .15s,font-size .15s}
.lc-campo input:not(:placeholder-shown){padding-top:max(14px,calc(18 * var(--u)))}
.lc-campo input:not(:placeholder-shown)+label{top:max(13px,calc(17 * var(--u)));font-size:12px;font-weight:600}
.lc-ic{position:absolute;left:max(15px,calc(24 * var(--u)));top:50%;transform:translateY(-50%);width:max(20px,calc(25 * var(--u)));height:max(20px,calc(25 * var(--u)));fill:none;stroke:var(--vision-color-text-strong);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.lc-senha input{padding-right:max(52px,calc(66 * var(--u)))}
.lc-ver{position:absolute;right:max(6px,calc(12 * var(--u)));top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:max(38px,calc(44 * var(--u)));height:max(38px,calc(44 * var(--u)));padding:0;border:0;border-radius:8px;background:transparent;color:var(--vision-color-text-strong);cursor:pointer}
.lc-ver:hover{background:var(--vision-color-border)}
.lc-ver svg{width:max(20px,calc(26 * var(--u)));height:max(20px,calc(26 * var(--u)));fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lc-ver .lc-olho,.lc-ver[aria-pressed="true"] .lc-olho-off{display:none}
.lc-ver[aria-pressed="true"] .lc-olho{display:block}
.lc-check{display:flex;align-items:center;gap:max(10px,calc(16 * var(--u)));margin:calc(4 * var(--u)) 0 calc(30 * var(--u));font-size:max(14px,calc(18 * var(--u)));color:var(--vision-color-text-strong);cursor:pointer;width:max-content;max-width:100%}
.lc-check input{appearance:none;-webkit-appearance:none;flex:none;width:max(20px,calc(23 * var(--u)));height:max(20px,calc(23 * var(--u)));margin:0;border:1.5px solid var(--vision-color-border-strong);border-radius:max(4px,calc(5 * var(--u)));background:var(--vision-color-surface);cursor:pointer;}
.lc-check input:checked{border-color:var(--vision-color-primary);background:var(--vision-color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/78% no-repeat}
.lc-btn{display:flex;align-items:center;justify-content:center;gap:max(8px,calc(10 * var(--u)));width:100%;height:max(46px,calc(61 * var(--u)));border:0;border-radius:max(8px,calc(10 * var(--u)));background:var(--vision-color-primary);color:#ffffff;font:700 max(17px,calc(22 * var(--u))) var(--lc-fonte);cursor:pointer;box-shadow:0 calc(6 * var(--u)) calc(16 * var(--u)) rgba(29,95,224,.22);transition:background-color .15s}
.lc-btn svg{width:max(20px,calc(25 * var(--u)));height:max(20px,calc(25 * var(--u)));fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.lc-btn:hover{background:var(--vision-color-primary-hover)}
.lc-btn:disabled{opacity:.7;cursor:progress}
.lc-link{margin:calc(20 * var(--u)) 0 0;text-align:center;font-size:max(14px,calc(18 * var(--u)))}
.lc-link a{color:var(--vision-color-primary-hover);text-decoration:underline;text-underline-offset:3px}
.lc-link a:hover{color:var(--vision-color-navy)}
.lc-card-rodape{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:calc(28 * var(--u)) 0 0 calc(-7 * var(--u));padding-top:calc(30 * var(--u));border-top:1px solid var(--vision-color-border)}
.lc-card-rodape img{width:calc(205 * var(--u));min-width:140px;height:auto;flex:none}
.lc-card-rodape p{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:calc(4 * var(--u));text-align:left;font-size:max(12px,calc(14 * var(--u)));line-height:1.35;color:var(--vision-color-muted)}
.lc-card-rodape a{color:var(--vision-color-muted);text-decoration:none}
.lc-card-rodape a:hover{color:var(--vision-color-primary-hover);text-decoration:underline}

input:focus-visible,button:focus-visible,a:focus-visible{outline:var(--vision-focus-outline);outline-offset:var(--vision-focus-offset);box-shadow:var(--vision-focus-ring)}

/* ---------- tablet ---------- */
@media (min-width:600px){
  :root{--u:.8px}
  .lc-palco{padding:40px 40px 48px;max-width:860px;margin:0 auto}
  .lc-card{padding:36px 44px 28px}
  .lc-ind{grid-template-columns:repeat(4,1fr);gap:16px 20px}
  .lc-card-rodape{flex-wrap:nowrap}
  .lc-card-rodape p{white-space:nowrap;align-items:flex-end;text-align:right}
  .lc-deco{display:block}
}

/* ---------- desktop: composição da referência ---------- */
@media (min-width:1024px) and (min-height:600px){
  :root{--u:min(calc(100vw / 1672),calc(100vh / 940))}
  html,body{height:100%}
  .lc{height:100vh;min-height:0;background-image:var(--lc-fundo);background-position:center;display:flex;align-items:center;justify-content:center}
  .lc::before{background:linear-gradient(90deg,rgba(255,255,255,.97) 0,rgba(255,255,255,.93) 22%,rgba(255,255,255,.80) 36%,rgba(255,255,255,.35) 46%,rgba(255,255,255,0) 55%)}
  .lc-deco-cruz{display:block;left:calc(-14 * var(--u));top:calc(50% + 120 * var(--u));width:calc(70 * var(--u));height:calc(90 * var(--u));background:linear-gradient(rgba(201,219,255,.35),rgba(201,219,255,.35)) center/32% 100% no-repeat,linear-gradient(rgba(201,219,255,.35),rgba(201,219,255,.35)) center/100% 32% no-repeat}
  .lc-palco{display:block;flex:none;width:calc(1672 * var(--u));height:calc(940 * var(--u));max-width:none;margin:0;padding:0}
  .lc-esq{display:block;position:absolute;inset:0;pointer-events:none}
  .lc-esq>*{pointer-events:auto}
  .lc-marca{position:absolute;left:calc(108 * var(--u));top:calc(91 * var(--u));width:calc(433 * var(--u));max-width:none}
  .lc-chamada{position:absolute;left:calc(118 * var(--u));top:calc(270 * var(--u));margin:0;font-size:calc(55 * var(--u))}
  .lc-q{display:inline}
  .lc-texto{position:absolute;left:calc(120 * var(--u));top:calc(414 * var(--u));margin:0;font-size:calc(29 * var(--u));line-height:calc(38 * var(--u))}
  .lc-ind{position:absolute;left:calc(120 * var(--u));top:calc(577 * var(--u));margin:0;display:flex;gap:calc(45 * var(--u))}
  .lc-ind li{width:calc(115 * var(--u));font-size:max(12px,calc(19 * var(--u)));line-height:calc(24 * var(--u));white-space:nowrap}
  .lc-ind-ic{width:calc(115 * var(--u));margin-bottom:calc(14 * var(--u))}
  .lc-lema{position:absolute;left:calc(217 * var(--u));top:calc(816 * var(--u));margin:0;padding-bottom:calc(25 * var(--u))}
  .lc-card{position:absolute;left:calc(912 * var(--u));top:calc(141 * var(--u));width:calc(550 * var(--u));max-width:none;padding:calc(60 * var(--u)) calc(61 * var(--u)) calc(40 * var(--u)) calc(67 * var(--u))}
}
