/* Portal de Abastecimento da Saúde — identidade própria (azul, branco e cinza). Complementa farmacia.css (componentes .farm-*). */
:root{ --p-blue:#1d4ed8; --p-blue-d:#1e3a8a; --p-blue-s:#eff4ff; --p-ink:#111827; --p-text:#1f2937; --p-muted:#6b7280; --p-line:#e5e7eb; --p-bg:#f3f5f9; }
html,body{ height:100%; }
body.portal-body{ background:var(--p-bg); color:var(--p-text); font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; display:flex; flex-direction:column; min-height:100vh; margin:0; }
.portal-header{ background:#fff; border-bottom:1px solid var(--p-line); }
.portal-header .wrap{ max-width:1180px; margin:0 auto; padding:10px 16px; display:flex; align-items:center; gap:14px; }
.portal-brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; min-width:0; }
.portal-brand img{ height:52px; width:auto; flex:0 0 auto; }
.portal-brand .t{ font-weight:700; font-size:1.12rem; color:var(--p-blue-d); line-height:1.15; letter-spacing:-.01em; }
.portal-brand .s{ font-size:.78rem; color:var(--p-muted); line-height:1.25; }
.portal-user{ margin-left:auto; display:flex; align-items:center; gap:10px; font-size:.82rem; color:var(--p-muted); text-align:right; }
.portal-user b{ color:var(--p-ink); display:block; font-size:.86rem; }
.portal-nav{ background:var(--p-blue-d); }
.portal-nav .wrap{ max-width:1180px; margin:0 auto; padding:0 12px; display:flex; align-items:center; flex-wrap:wrap; }
.portal-nav .menu{ display:flex; flex-wrap:wrap; }
.portal-nav a{ color:#dbe5ff; text-decoration:none; padding:11px 14px; font-size:.9rem; display:inline-flex; align-items:center; gap:7px; border-bottom:3px solid transparent; }
.portal-nav a:hover{ color:#fff; background:rgba(255,255,255,.08); }
.portal-nav a.active{ color:#fff; border-bottom-color:#93c5fd; font-weight:600; }
.portal-navtoggle{ display:none; background:none; border:0; color:#fff; padding:10px 12px; font-size:.92rem; }
.portal-main{ flex:1 0 auto; width:100%; max-width:1180px; margin:0 auto; padding:18px 16px 28px; }
.portal-main .farm-pagetitle{ font-size:1.15rem; font-weight:700; color:var(--p-ink); margin:0 0 14px; }
.portal-footer{ background:#fff; border-top:1px solid var(--p-line); color:var(--p-muted); font-size:.78rem; }
.portal-footer .wrap{ max-width:1180px; margin:0 auto; padding:14px 16px; display:flex; flex-wrap:wrap; gap:6px 18px; justify-content:space-between; }
.portal-footer b{ color:var(--p-text); }
.portal-btn-sair{ border:1px solid var(--p-line); background:#fff; color:var(--p-text); border-radius:8px; padding:6px 12px; font-size:.82rem; }
.portal-btn-sair:hover{ background:var(--p-blue-s); }
@media (max-width:760px){
  .portal-brand img{ height:40px; } .portal-brand .t{ font-size:.98rem; } .portal-brand .s{ display:none; }
  .portal-user .quem{ display:none; }
  .portal-navtoggle{ display:block; } .portal-nav .wrap{ flex-direction:column; align-items:stretch; padding:0; }
  .portal-nav .menu{ display:none; flex-direction:column; } .portal-nav .menu.open{ display:flex; }
  .portal-nav a{ border-bottom:0; border-left:3px solid transparent; padding:12px 16px; } .portal-nav a.active{ border-left-color:#93c5fd; }
}
/* login */
.login-wrap{ flex:1; display:flex; align-items:center; justify-content:center; padding:24px 14px; background:linear-gradient(160deg,#e8efff 0%,#f3f5f9 55%,#ffffff 100%); }
.login-card{ width:100%; max-width:430px; background:#fff; border:1px solid var(--p-line); border-radius:16px; padding:28px 26px; box-shadow:0 10px 40px rgba(30,58,138,.10); }
.login-card .logo{ display:block; margin:0 auto 10px; height:96px; width:auto; }
.login-card h1{ font-size:1.25rem; font-weight:800; color:var(--p-blue-d); text-align:center; margin:0; letter-spacing:-.01em; }
.login-card .sub{ text-align:center; color:var(--p-muted); font-size:.86rem; margin:4px 0 20px; }
.login-card .form-label{ font-size:.78rem; font-weight:600; color:var(--p-muted); }
.login-card .form-control{ min-height:44px; border-radius:10px; }
.login-card .btn-primary{ min-height:46px; border-radius:10px; font-weight:600; background:var(--p-blue); border-color:var(--p-blue); }
.login-card .nota{ font-size:.76rem; color:var(--p-muted); text-align:center; margin-top:16px; }
.portal-erro{ max-width:560px; margin:60px auto; background:#fff; border:1px solid var(--p-line); border-radius:14px; padding:28px; text-align:center; }
/* impressão (comprovante) */
@media print{ .portal-header,.portal-nav,.portal-footer{ display:none !important; } }

/* ---- autocomplete de produtos (painel flutuante preso ao body: acima de tabelas, cards, rodapé e overflow) ---- */
.pac-panel{ position:fixed; z-index:2100; background:#fff; border:1px solid var(--p-line); border-radius:10px; box-shadow:0 12px 32px rgba(17,24,39,.22); overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain; }
.pac-panel[hidden]{ display:none; }
.pac-opt{ padding:10px 12px; border-bottom:1px solid var(--p-line); cursor:pointer; line-height:1.3; font-size:.9rem; }
.pac-opt:last-child{ border-bottom:0; }
.pac-opt b{ display:block; color:var(--p-ink); }
.pac-opt .pac-det{ display:block; font-size:.78rem; color:var(--p-muted); }
.pac-opt:hover, .pac-opt.is-active{ background:var(--p-blue-s); box-shadow:inset 3px 0 0 var(--p-blue); }
.pac-opt.pac-off{ cursor:not-allowed; background:#f9fafb; opacity:.85; }
.pac-opt.pac-off:hover{ background:#f9fafb; box-shadow:none; }
.pac-warn{ color:#9a3412!important; font-weight:600; }
.pac-sec{ padding:6px 12px; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--p-muted); background:#f3f4f6; border-top:1px solid var(--p-line); border-bottom:1px solid var(--p-line); }
.pac-msg{ padding:10px 12px; font-size:.84rem; color:var(--p-text); }
.pac-msg.pac-soft{ color:var(--p-muted); font-size:.78rem; }
@media (max-width:760px){ .pac-opt{ padding:12px; font-size:.95rem; } }
