/* Portal de Dashboards Infracon.
   Estrutura inspirada em painéis administrativos modernos (barra lateral, cabeçalho, cartões brancos
   sobre fundo claro), escrita do zero, com a identidade Infracon (azul-marinho e azul de destaque).
   Fonte Inter servida localmente (sem Google Fonts). */
@font-face{font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap; src:url("/static/fonts/inter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Inter"; font-style:normal; font-weight:500; font-display:swap; src:url("/static/fonts/inter-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap; src:url("/static/fonts/inter-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Inter"; font-style:normal; font-weight:700; font-display:swap; src:url("/static/fonts/inter-latin-700-normal.woff2") format("woff2")}
html,body{margin:0; background:#f4f7fa}

#icp{
  --bg:#f4f7fa; --card:#fff; --surface:#eef2f7;
  --text:#1f2a37; --text-2:#3d4b5c; --muted:#5b6b79;
  --line:#e3e9f0; --line-2:#cfd8e3;
  --navy:#1d2d3d; --navy-2:#263a4e; --side-text:#a9b7d0;
  --accent:#5980a6; --accent-700:#416180; --accent-100:#eaf1f8; --accent-300:#b5d9fd;
  --s1:#4a7fb5;
  --good:#1f8a4c; --warn:#b36b00; --crit:#c0392b;
  --raio:8px; --raio-p:6px;
  --sombra:0 1px 2px rgba(29,45,61,.06), 0 4px 14px rgba(29,45,61,.05);
  position:relative; min-height:100vh; color:var(--text); background:var(--bg);
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; font-size:14px; line-height:1.55;
  font-variant-numeric:tabular-nums; -webkit-font-smoothing:antialiased; text-align:left;
}
#icp *,#icp *::before,#icp *::after{box-sizing:border-box}
#icp h1,#icp h2,#icp h3,#icp p{margin:0; padding:0; color:inherit; font-family:inherit; letter-spacing:normal; text-transform:none}
#icp a{color:inherit; text-decoration:none}
#icp :focus-visible{outline:2px solid var(--accent); outline-offset:2px}
#icp [hidden]{display:none !important}
#icp .icp-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

/* ---------- moldura: barra lateral, cabeçalho, miolo ---------- */
#icp .icp-nav-toggle{position:absolute; width:1px; height:1px; opacity:0; overflow:hidden}
#icp .icp-nav-toggle:focus-visible ~ .icp-shell .icp-burger{outline:2px solid var(--accent); outline-offset:2px}
#icp .icp-shell{display:flex; min-height:100vh}
#icp .icp-side{position:fixed; top:0; bottom:0; left:0; width:264px; z-index:40; display:flex; flex-direction:column; background:var(--navy); color:var(--side-text);
  box-shadow:1px 0 20px rgba(29,45,61,.35); transition:transform .2s ease; overflow-y:auto}
#icp .icp-side-brand{display:flex; align-items:center; gap:12px; height:64px; padding:0 22px; flex:none; border-bottom:1px solid rgba(255,255,255,.08)}
#icp .icp-side-brand img{height:34px; width:auto; display:block}
#icp .icp-side-brand .txt{display:flex; flex-direction:column; line-height:1.2; padding-left:12px; border-left:1px solid rgba(255,255,255,.2)}
#icp .icp-side-brand .t1{font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--side-text)}
#icp .icp-side-brand .t2{font-size:13px; font-weight:600; color:#fff; letter-spacing:.02em}
#icp .icp-nav{padding:14px 12px; flex:1}
#icp .icp-nav-cap{padding:16px 12px 8px; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#e8edf7}
#icp .icp-nav-cap:first-child{padding-top:4px}
#icp .icp-nav-link{display:flex; align-items:center; gap:12px; padding:10px 12px; margin-bottom:2px; border-radius:var(--raio-p); color:var(--side-text); font-weight:500; transition:background .15s,color .15s}
#icp .icp-nav-link svg{width:19px; height:19px; flex:none}
#icp .icp-nav-link:hover{background:rgba(255,255,255,.06); color:#fff}
#icp .icp-nav-link[aria-current="page"]{background:rgba(89,128,166,.28); color:#fff; box-shadow:inset 3px 0 0 var(--accent-300)}
#icp .icp-side-foot{flex:none; padding:14px 22px 18px; font-size:11px; line-height:1.5; color:rgba(169,183,208,.7); border-top:1px solid rgba(255,255,255,.08)}
#icp .icp-scrim{display:none}

#icp .icp-miolo{margin-left:264px; flex:1; min-width:0; display:flex; flex-direction:column; min-height:100vh; transition:margin .2s ease}
#icp .icp-top{position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:16px; height:48px; padding:0 24px;
  background:rgba(244,247,250,.88); backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
#icp .icp-top .spacer{flex:1}
#icp .icp-burger{display:inline-grid; place-items:center; width:38px; height:38px; border-radius:var(--raio-p); color:var(--text-2); cursor:pointer}
#icp .icp-burger:hover{background:var(--surface)}
#icp .icp-burger svg{width:22px; height:22px}
#icp .icp-upd{font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); text-align:right; line-height:1.3}
#icp .icp-upd b{display:block; color:var(--text); font-weight:600; font-size:13px; letter-spacing:0; text-transform:none}
#icp .icp-user{display:flex; align-items:center; gap:10px; padding-left:16px; border-left:1px solid var(--line-2)}
#icp .icp-avatar{display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--accent); color:#fff; font-weight:600; font-size:14px}
#icp .icp-user-nome{font-weight:500; color:var(--text-2); max-width:22ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
#icp .icp-sair{margin:0}

#icp .icp-pagina{flex:1 0 auto; padding:0 24px 24px}
#icp .icp-pagehead{display:flex; align-items:center; justify-content:space-between; gap:12px 20px; flex-wrap:wrap; padding:12px 0 12px}
#icp .icp-pagehead h1{font-size:18px; font-weight:600; line-height:1.25; color:var(--text)}
#icp .icp-crumbs{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--muted)}
#icp .icp-crumbs a{color:var(--accent-700)}
#icp .icp-crumbs a:hover{text-decoration:underline}
#icp .icp-foot{display:flex; justify-content:space-between; gap:8px 16px; flex-wrap:wrap; padding:16px 28px; border-top:1px solid var(--line); font-size:12px; color:var(--muted)}

/* ---------- botões, chips e selos ---------- */
#icp .icp-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:8px 16px; margin:0; border:1px solid var(--accent); border-radius:var(--raio-p);
  color:var(--accent-700); background:#fff; font:inherit; font-size:14px; font-weight:500; line-height:1.3; white-space:nowrap; cursor:pointer; transition:background .15s,color .15s,border-color .15s}
#icp .icp-btn:hover{background:var(--accent-100)}
#icp .icp-btn svg{width:16px; height:16px; flex:none}
#icp .icp-btn-primario{background:var(--accent); color:#fff; border-color:var(--accent); font-weight:600}
#icp .icp-btn-primario:hover{background:var(--accent-700); border-color:var(--accent-700)}
#icp .icp-btn-perigo{border-color:var(--crit); color:var(--crit)}
#icp .icp-btn-perigo:hover{background:#fdecea}
#icp .icp-sair .icp-btn{padding:7px 12px; border-color:var(--line-2); color:var(--text-2)}
#icp .icp-sair .icp-btn:hover{background:var(--surface)}
#icp .icp-chip{display:inline-flex; align-items:center; gap:8px; padding:4px 12px; border-radius:999px; background:var(--accent-100); color:var(--accent-700); font-size:12px; font-weight:600; line-height:1.4}

#icp .icp-status{display:inline-flex; align-items:center; gap:5px; padding:2px 9px 2px 6px; border-radius:999px; font-size:11px; font-weight:600; letter-spacing:.02em; text-transform:uppercase; white-space:nowrap}
#icp .icp-status svg{width:13px; height:13px; flex:none}
#icp .icp-status.ok{background:#e3f5ea; color:#13683a}
#icp .icp-status.warn{background:#fff1d6; color:#8a5300}
#icp .icp-status.crit{background:#fde7e5; color:#a4281d}
#icp .icp-status.neutral{background:#e8eef5; color:var(--accent-700)}
#icp .icp-delta{display:inline-flex; align-items:center; gap:5px; color:var(--text-2); font-size:12px}
#icp .icp-delta svg{width:14px; height:14px; flex:none}
#icp .icp-delta.good svg{color:var(--good)}
#icp .icp-delta.bad svg{color:var(--crit)}
#icp .icp-delta.neutral svg{color:var(--muted)}

/* ---------- menu: blocos de resumo e cartões ---------- */
#icp .icp-stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px}
#icp .icp-stat{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 16px; border-radius:var(--raio); color:#fff; box-shadow:var(--sombra)}
#icp .icp-stat .lbl{display:block; font-size:12px; font-weight:500; opacity:.95}
#icp .icp-stat .num{display:block; font-size:22px; font-weight:600; line-height:1.1}
#icp .icp-stat .ico svg{width:28px; height:28px; opacity:.4; display:block}
#icp .icp-stat-azul{background:linear-gradient(135deg,#4a7199,#416180)}
#icp .icp-stat-teal{background:linear-gradient(135deg,#1f8a9a,#1a7482)}
#icp .icp-stat-verde{background:linear-gradient(135deg,#25995a,#1f8a4c)}
#icp .icp-stat-vermelho{background:linear-gradient(135deg,#cc4a3b,#b83a2e)}

#icp .icp-painel{margin-top:16px}
#icp .icp-painel-cab{display:flex; align-items:center; justify-content:space-between; gap:8px 12px; flex-wrap:wrap}
#icp .icp-painel-acoes{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
#icp .icp-painel-acoes .icp-btn[hidden]{display:none}
#icp .icp-painel-acoes .icp-btn{padding:5px 12px; font-size:13px}
#icp .icp-btn[aria-pressed="true"]{background:var(--accent-100); border-color:var(--accent-700); color:var(--accent-700)}
#icp .icp-rod-pausar{display:none}
#icp .icp-btn[aria-pressed="true"] .icp-rod-pausar{display:inline-flex}
#icp .icp-btn[aria-pressed="true"] .icp-rod-tocar{display:none}
#icp .icp-painel-cab h2{font-size:16px; font-weight:600}
#icp .icp-painel-cab{margin-bottom:10px}

#icp .icp-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:14px}
#icp .icp-card{position:relative; display:flex; flex-direction:column; gap:6px; padding:12px 14px; width:100%; background:var(--card); border:1px solid var(--line); border-radius:var(--raio); box-shadow:var(--sombra); transition:border-color .15s,box-shadow .15s,transform .15s}
#icp .icp-card-link:hover{border-color:var(--accent); box-shadow:0 6px 22px rgba(29,45,61,.12); transform:translateY(-2px)}
#icp .icp-card-head{display:flex; align-items:flex-start; gap:10px}
#icp .icp-ico{flex:none; width:34px; height:34px; display:grid; place-items:center; border-radius:var(--raio-p); background:var(--navy); color:var(--accent-300)}
#icp .icp-ico svg{width:18px; height:18px}
#icp .icp-card-name{font-size:14px; font-weight:600; line-height:1.3}
#icp .icp-card-sub{font-size:12px; color:var(--muted); margin-top:2px; line-height:1.3}
#icp .icp-card-estado{margin-left:auto; display:flex; flex-direction:column; align-items:flex-end; gap:4px}
#icp .icp-card-desc{font-size:13px; color:var(--text-2); line-height:1.45}
/* KPIs em carrossel: uma faixa que rola na horizontal e encaixa um KPI por vez */
#icp .icp-car{position:relative; z-index:2}
#icp .icp-card-kpis{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; overscroll-behavior-x:contain}
#icp .icp-card-kpis:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:var(--raio-p)}
#icp .icp-card-kpi{flex:0 0 100%; scroll-snap-align:start; display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:6px 2px 2px 0}
#icp .icp-car-ctl{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:0}
#icp .icp-car-ctl[hidden]{display:none}
#icp .icp-car:has(.icp-car-ctl:not([hidden])) .icp-card-kpis{scrollbar-width:none}
#icp .icp-car:has(.icp-car-ctl:not([hidden])) .icp-card-kpis::-webkit-scrollbar{display:none}
#icp .icp-car-btn{display:grid; place-items:center; width:28px; height:28px; padding:0; border:1px solid var(--line-2); border-radius:50%; background:#fff; color:var(--text-2); cursor:pointer; transition:background .15s,border-color .15s}
#icp .icp-car-btn:hover{background:var(--accent-100); border-color:var(--accent); color:var(--accent-700)}
#icp .icp-car-btn svg{width:14px; height:14px}
#icp .icp-car-dots{display:flex; align-items:center; gap:2px}
#icp .icp-car-dot{position:relative; width:20px; height:20px; padding:0; border:0; background:none; cursor:pointer}
#icp .icp-car-dot::before{content:""; position:absolute; top:50%; left:50%; width:8px; height:8px; margin:-4px 0 0 -4px; border-radius:50%; background:var(--line-2); transition:background .15s,transform .15s}
#icp .icp-car-dot:hover::before{background:var(--accent-300)}
#icp .icp-car-dot[aria-current="true"]::before{background:var(--accent-700); transform:scale(1.25)}
#icp .icp-car-btn:focus-visible,#icp .icp-car-dot:focus-visible{outline:2px solid var(--accent); outline-offset:1px; border-radius:50%}
#icp .icp-card-kpi-top{display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%}
#icp .icp-card-lbl{font-size:12px; font-weight:500; color:var(--muted); min-width:0; overflow-wrap:anywhere}
#icp .icp-card-val{font-size:24px; font-weight:600; line-height:1.1; letter-spacing:-.01em}
#icp .icp-card-val small{font-size:14px; font-weight:500; color:var(--muted); margin-left:4px; letter-spacing:0}
#icp .icp-spark{width:100%; height:24px; display:block; margin-top:0}
#icp .icp-card-vazio{font-size:12px; color:var(--muted); padding:14px 0; text-align:center; border:1px dashed var(--line-2); border-radius:var(--raio-p)}
#icp .icp-go{color:inherit; text-decoration:none}
#icp .icp-card-link:hover .icp-go,#icp .icp-go:focus-visible{color:var(--accent-700)}
/* o link "Abrir" cobre o cartão inteiro, menos o carrossel (que precisa de toque e deslize) */
#icp .icp-go::after{content:""; position:absolute; inset:0; z-index:1; border-radius:var(--raio)}
#icp .icp-go:focus-visible{outline:none}
#icp .icp-go:focus-visible::after{outline:2px solid var(--accent); outline-offset:2px}

/* cartão sem acesso: esmaecido, sem hover e sem clique (não é link) */
/* a opacidade vai nos filhos: a animação icp-fade (fill both) sobrescreveria a do card */
#icp .icp-card-bloqueado{pointer-events:none; background:#f8fafc; box-shadow:none}
#icp .icp-card-bloqueado > *{opacity:.62; filter:grayscale(.4)}
#icp .icp-card-bloqueado .icp-car-ctl{pointer-events:auto}
#icp .icp-card-bloqueado .icp-card-kpis{pointer-events:auto}
#icp .icp-card-bloqueado .icp-ico{background:var(--muted); color:var(--surface)}
#icp .icp-lock{display:inline-flex; vertical-align:-2px; margin-left:8px; color:var(--muted)}
#icp .icp-lock svg{width:14px; height:14px; flex:none}

/* aviso (estado vazio, sem acesso) */
#icp .icp-notice{display:flex; flex-direction:column; gap:12px; padding:24px 26px; background:var(--card); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:var(--raio); box-shadow:var(--sombra)}
#icp .icp-notice-titulo{font-size:18px; font-weight:600; line-height:1.3}
#icp .icp-notice-bloqueio{flex-direction:row; align-items:flex-start; gap:18px; max-width:760px; border-left-color:var(--crit)}
#icp .icp-notice-bloqueio > div{display:flex; flex-direction:column; gap:10px}
#icp .icp-notice-ico{flex:none; display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#fde7e5; color:var(--crit)}
#icp .icp-notice-ico svg{width:24px; height:24px}

#icp .icp-fade{animation:icpFade .35s ease both}
@keyframes icpFade{from{opacity:0; transform:translateY(8px)} to{opacity:1; transform:none}}

/* ---------- administração ---------- */
#icp .icp-admin{display:flex; flex-direction:column; gap:22px}
#icp .icp-panel{background:var(--card); border:1px solid var(--line); border-radius:var(--raio); box-shadow:var(--sombra); padding:22px 24px}
#icp .icp-admin-bloco h3{font-size:16px; font-weight:600; line-height:1.3; margin-bottom:14px}
#icp .icp-admin > .icp-admin-bloco:not(.icp-panel){margin:0}
#icp .icp-erro{margin:0; padding:12px 14px; font-size:14px; background:#fdecea; border:1px solid #f3b9b2; border-left:4px solid var(--crit); border-radius:var(--raio-p); color:#7d1f16}
#icp .icp-ajuda{font-size:12px; color:var(--muted); margin:8px 0}
#icp .icp-vazio{color:var(--muted); padding:8px 0 12px}
#icp .icp-form{display:flex; flex-direction:column; align-items:flex-start; gap:12px}
#icp .icp-campos{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px 16px; width:100%}
#icp .icp-campos .largo{grid-column:span 2}
#icp .icp-form label:not(.icp-check),#icp .icp-checks legend{display:block; font-size:12px; font-weight:600; color:var(--text-2); margin-bottom:5px}
#icp .icp-form input:not([type="checkbox"]),#icp .icp-form select{display:block; width:100%; padding:9px 12px; font:inherit; color:var(--text); background:#fff; border:1px solid var(--line-2); border-radius:var(--raio-p)}
#icp .icp-form input:focus-visible,#icp .icp-form select:focus-visible{outline:2px solid var(--accent); outline-offset:0; border-color:var(--accent)}
#icp .icp-checks{border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px 18px; width:100%}
#icp .icp-checks legend{float:left; width:100%}
#icp .icp-check{display:inline-flex; align-items:center; gap:8px; font-size:14px; cursor:pointer}
#icp .icp-check input{width:16px; height:16px; accent-color:var(--accent); margin:0}
#icp .icp-check small{color:var(--muted); font-size:12px}
#icp .icp-item{background:var(--card); border:1px solid var(--line); border-radius:var(--raio); box-shadow:var(--sombra); margin-bottom:10px}
#icp .icp-item[open]{border-color:var(--accent)}
#icp .icp-item summary{display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; padding:14px 18px; cursor:pointer; border-radius:var(--raio)}
#icp .icp-item summary:hover{background:#f8fafc}
#icp .icp-item-nome{font-weight:600; font-size:15px}
#icp .icp-item-sub{color:var(--muted); font-size:13px; overflow-wrap:anywhere}
#icp .icp-item-tags{display:inline-flex; flex-wrap:wrap; gap:6px}
#icp .icp-item-corpo{display:grid; gap:18px; padding:4px 18px 18px; border-top:1px solid var(--line)}
#icp .icp-item-corpo .icp-form{padding-top:14px}
#icp .icp-form-senha,#icp .icp-form-excluir{border-top:1px dashed var(--line-2)}
#icp .icp-filtros{flex-direction:row; flex-wrap:wrap; align-items:flex-end}
#icp .icp-filtros .icp-campos{flex:1 1 440px; width:auto}
#icp .icp-detalhe{overflow-wrap:anywhere; font-size:12px; color:var(--text-2)}
#icp .icp-nginx{border-left:4px solid var(--accent)}
#icp .icp-nginx-trecho{margin:8px 0 0; padding:14px 16px; overflow:auto; max-height:420px; font:12.5px/1.55 ui-monospace,Consolas,monospace; background:var(--navy); color:#d6e3f2; border-radius:var(--raio-p)}

#icp .icp-tbl-wrap{overflow-x:auto; scrollbar-width:thin; scrollbar-color:var(--line-2) transparent}
#icp table.icp-tbl{width:100%; border-collapse:collapse; font-size:13px; margin:0; border:0; background:none}
#icp .icp-tbl th,#icp .icp-tbl td{padding:11px 14px; border:0; border-bottom:1px solid var(--line); text-align:left; background:none; color:var(--text); vertical-align:middle}
#icp .icp-tbl th{background:#f7f9fb; font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600}
#icp .icp-tbl tr:last-child td{border-bottom:0}
#icp .icp-tbl tbody tr:hover td{background:#f8fafc}
#icp .icp-tbl td.num,#icp .icp-tbl th.num{white-space:nowrap}

/* ---------- telas de entrada (login, trocar senha, erros) ---------- */
#icp .icp-band{position:relative; background:var(--navy); color:var(--accent-100); overflow:hidden; isolation:isolate}
#icp .icp-band::before{content:""; position:absolute; inset:0; z-index:-2; background:url("/static/img/fundo-engenharia-civil.svg") center bottom / cover no-repeat}
#icp .icp-band::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(29,45,61,.93) 0%, rgba(29,45,61,.78) 60%, rgba(29,45,61,.55) 100%)}
#icp .icp-auth{display:flex; align-items:center; justify-content:center; min-height:100vh; padding:48px 18px}
#icp .icp-auth-box{width:100%; max-width:410px; display:flex; flex-direction:column; align-items:center; gap:26px}
#icp .icp-auth-logo{width:150px; height:auto; display:block}
#icp .icp-auth-panel{width:100%; padding:28px 30px 24px; background:var(--card); color:var(--text); border:0; border-radius:var(--raio); box-shadow:0 18px 50px rgba(0,0,0,.35)}
#icp .icp-auth-panel .k{font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
#icp .icp-auth-panel h1{font-size:24px; font-weight:600; line-height:1.2; margin-top:4px; margin-bottom:20px}
#icp .icp-auth-panel form p{margin-bottom:14px}
#icp .icp-auth-panel label{display:block; font-size:12px; font-weight:600; color:var(--text-2); margin-bottom:5px}
#icp .icp-auth-panel input{display:block; width:100%; padding:10px 12px; font:inherit; color:var(--text); background:#fff; border:1px solid var(--line-2); border-radius:var(--raio-p)}
#icp .icp-auth-panel input:focus{outline:2px solid var(--accent); outline-offset:0; border-color:var(--accent)}
#icp .icp-auth-panel button.icp-btn{width:100%; padding:11px 16px; margin-top:6px; background:var(--accent); color:#fff; font-weight:600}
#icp .icp-auth-panel button.icp-btn:hover{background:var(--accent-700)}
#icp .icp-auth-panel a.icp-btn{background:var(--accent); color:#fff; border-color:var(--accent)}
#icp .icp-auth-panel [role="alert"]{margin-bottom:16px; padding:10px 12px; font-size:14px; background:#fdecea; border:1px solid #f3b9b2; border-left:4px solid var(--crit); border-radius:var(--raio-p); color:#7d1f16}
#icp .icp-auth-ajuda{margin-top:16px; padding-top:12px; border-top:1px solid var(--line); font-size:13px; color:var(--muted)}

/* ---------- responsivo ---------- */
@media (min-width:901px){
  /* barra lateral aberta por padrão; a caixa de seleção a recolhe */
  #icp .icp-nav-toggle:checked ~ .icp-shell .icp-side{transform:translateX(-100%); box-shadow:none}
  #icp .icp-nav-toggle:checked ~ .icp-shell .icp-miolo{margin-left:0}
}
@media (max-width:900px){
  /* no celular a barra lateral é uma gaveta fechada por padrão */
  #icp .icp-side{transform:translateX(-100%); box-shadow:none}
  #icp .icp-miolo{margin-left:0}
  #icp .icp-nav-toggle:checked ~ .icp-shell .icp-side{transform:none; box-shadow:1px 0 20px rgba(29,45,61,.35)}
  #icp .icp-nav-toggle:checked ~ .icp-shell .icp-scrim{display:block; position:fixed; inset:0; z-index:30; background:rgba(29,45,61,.5)}
}
@media (max-width:640px){
  #icp .icp-top{padding:0 14px; gap:10px}
  #icp .icp-pagina{padding:0 14px 24px}
  #icp .icp-foot{padding:14px}
  #icp .icp-upd,#icp .icp-user-nome{display:none}
  #icp .icp-user{padding-left:10px}
  #icp .icp-stats{grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px}
  #icp .icp-stat{padding:8px 12px}
  #icp .icp-stat .ico svg{width:24px; height:24px}
  #icp .icp-grid{grid-template-columns:minmax(0,1fr)}
  #icp .icp-campos .largo{grid-column:auto}
  #icp .icp-panel{padding:18px 16px}
  #icp .icp-notice-bloqueio{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  #icp *{transition:none !important; animation:none !important}
}
#icp .icp-crumbs .atual{color:var(--text-2); font-weight:500}
