/* Páginas satélite (rede, acessos do aluno, portal do aluno) no padrão visual premium. */
:root{--pg-primary:#2563EB;--pg-primary-hover:#1D4ED8;--pg-border:#CBD5E1;--pg-text:#0F172A;--pg-muted:#475569;--pg-soft:#EFF6FF}
body.premium-network-page,body.portal-page{background:#F5F7FB;font-family:Inter,system-ui,sans-serif;color:var(--pg-text)}

/* Marca */
.portal-page .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#0B1220;margin:0 0 20px}
.portal-page .brand .brand-mark{width:40px;height:40px}
.portal-page .brand span{font-size:13px;line-height:1.3;letter-spacing:.4px;color:#475569}
.portal-page .brand strong{font-size:18px;color:#0B1220;letter-spacing:0}
.portal-page .login-card small,.portal-page .portal-admin-card>small{display:block;font-size:12px;font-weight:600;letter-spacing:.9px;color:var(--pg-primary);margin-bottom:8px}
.portal-page h1{font-size:28px;font-weight:700;letter-spacing:-.4px;margin:0 0 8px}
.portal-page h2{font-size:18px;font-weight:650;margin:28px 0 8px}

/* Cartões e campos */
.portal-page .login-card{background:#fff;border:1px solid var(--pg-border);border-radius:16px;box-shadow:0 12px 40px rgba(15,23,42,.08);padding:36px}
.portal-page .portal-admin-card{max-width:760px;margin:40px auto}
.portal-page #portal-dashboard{max-width:920px;margin:32px auto}
.portal-page label{display:block;font-size:14px;font-weight:600;margin:16px 0 6px}
.portal-page input:not([type=checkbox]),.portal-page select,.portal-page textarea{width:100%;min-height:46px;border:1px solid #64748B;border-radius:8px;background:#fff;padding:10px 12px;font:inherit}
.portal-page input:focus-visible,.portal-page select:focus-visible,.portal-page textarea:focus-visible,.portal-page button:focus-visible,.portal-page a:focus-visible{outline:3px solid #1D4ED8;outline-offset:2px}
.portal-page label.check{display:flex;align-items:flex-start;gap:10px;font-weight:500}
.portal-page label.check input{width:20px;height:20px;min-height:0;flex:none;margin-top:2px}
.portal-page button{min-height:44px;border-radius:10px;border:1px solid var(--pg-border);background:#fff;color:#1D4ED8;font-weight:600;padding:10px 18px;cursor:pointer}
.portal-page button:hover:not(:disabled){background:var(--pg-soft)}
.portal-page button.primary,.portal-page button[type=submit].primary{background:var(--pg-primary);border-color:var(--pg-primary);color:#fff;width:100%;margin-top:20px}
.portal-page button.primary:hover:not(:disabled){background:var(--pg-primary-hover)}
.portal-page button:disabled{opacity:.55;cursor:not-allowed}
.portal-page .page-links{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0 4px}
.portal-page .page-links a{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border:1px solid var(--pg-border);border-radius:10px;background:#fff;color:#1D4ED8;font-weight:600;text-decoration:none}
.portal-page .page-links a:hover{background:var(--pg-soft)}
.portal-page .muted{color:var(--pg-muted)}
.portal-page [role=alert]:not(:empty){background:#FEF2F2;border:1px solid #FECACA;color:#B91C1C;border-radius:10px;padding:10px 14px;font-size:14px}
.portal-page [role=alert]:empty{display:none}
.portal-page #portal-dashboard #portal-logout{margin-left:8px}

/* Indicadores da rede */
.premium-network-page main{max-width:1200px;margin:0 auto;padding:32px 24px}
#network-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:20px;margin-top:20px}
#network-content .card{background:#fff;border:1px solid var(--pg-border);border-radius:16px;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
#network-content .card h2{grid-column:1/-1;margin:0 0 4px;font-size:20px}
.network-metric{margin:0;padding:14px 16px;background:#F8FAFD;border:1px solid #E2E8F0;border-radius:12px;font-size:13px;color:var(--pg-muted);line-height:1.5}
#network-content .card>p[role=status]{grid-column:1/-1;margin:0;padding:10px 14px;background:#FFFBEB;border:1px solid #FDE68A;color:#92400E;border-radius:10px;font-size:13px}
@media(max-width:600px){#network-content .card{grid-template-columns:1fr}.portal-page .login-card{padding:24px}}
