/* portals-1: clear entrances; shared blue palette, role-specific navigation. */
.portal-landing { max-width:1200px!important; margin:0 auto; padding:48px 32px 24px!important; }
.portal-hero { max-width:800px; margin:12px auto 42px; text-align:center; }
.portal-hero h1 { font-size:clamp(32px,4.2vw,54px); line-height:1.2; letter-spacing:-.035em; margin:18px 0; }
.portal-lead { font-size:18px; line-height:1.85; color:var(--muted); }
.portal-mode { display:inline-block; margin-top:12px; font-size:13px; padding:7px 13px; color:var(--accent-dark); background:var(--accent-soft); border-radius:999px; }
.portal-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.portal-card { position:relative; min-width:0; display:flex; flex-direction:column; background:white; padding:28px; border:1px solid var(--line); border-radius:18px; box-shadow:0 8px 28px #0E347007; }
.portal-card:hover { border-color:var(--accent-border); box-shadow:0 12px 36px #005BFF0C; }
.portal-card h2 { margin:10px 0; font-size:25px; }
.portal-card>p { line-height:1.8; min-height:78px; color:var(--muted); }
.portal-number { display:flex; align-items:center; justify-content:center; width:46px; height:46px; font-weight:750; border-radius:12px; color:var(--accent); background:var(--accent-soft); margin-bottom:22px; }
.portal-card .mini-label { font-size:12px; }
.portal-benefits { display:flex; flex-direction:column; gap:10px; color:var(--muted); font-size:14px; margin:12px 0 26px; }
.portal-benefits span:before { content:'·'; margin-right:8px; color:var(--accent); }
.portal-card form { margin-top:auto; }
.portal-card button { min-height:48px; }
.portal-direct { margin-top:14px; text-align:center; font-size:12px; }
.portal-admin { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:24px 28px; border:1px solid var(--line); background:var(--surface-soft); border-radius:14px; margin:22px 0; }
.portal-admin p { color:var(--muted); margin:6px 0 0; font-size:14px; }
.portal-boundary,.portal-context { color:var(--muted); text-align:center; font-size:12px; line-height:1.9; margin:22px auto; max-width:780px; }
.portal-back { display:inline-block; margin:0 0 36px; }
.portal-welcome { display:grid; grid-template-columns:1.25fr 1fr; gap:80px; align-items:center; min-height:500px; }
.portal-welcome h1 { font-size:44px; margin:16px 0; }
.portal-welcome .portal-benefits p { margin:0; font-size:16px; }
.portal-welcome .portal-benefits p span { color:var(--accent); margin-right:12px; }
.portal-start { padding:36px; border:1px solid var(--accent-border); border-radius:20px; background:white; box-shadow:0 18px 50px #005BFF0D; }
.portal-start>p { color:var(--muted); line-height:1.9; margin:16px 0 28px; }
.portal-start>small { display:block; text-align:center; color:var(--muted); margin-top:16px; }
.portal-return { display:block; font-size:13px; padding:16px 0; }
.portal-top-home { margin-left:auto; margin-right:18px; font-size:13px; }
.parent-actions { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; }
.parent-actions article { background:#fff; border:1px solid var(--line); border-radius:16px; padding:28px; margin:0; }
.parent-actions h2 { font-size:21px; margin:12px 0; }
.parent-actions p { color:var(--muted); line-height:1.9; margin-bottom:20px; }
.workspace[data-portal] .main { padding-top:28px; }
.workspace[data-portal] .demo-banner { margin-bottom:0; }
@media(max-width:1023px) {
 .portal-welcome { gap:32px; min-height:440px; }
 .portal-landing { padding-top:32px!important; }
 .portal-card { padding:22px; }
 .portal-card h2 { font-size:21px; }
}
@media(max-width:767px) {
 .portal-landing { padding:24px 16px!important; }
 .portal-hero { margin:8px auto 28px; text-align:left; }
 .portal-hero h1 { font-size:34px; }
 .portal-lead { font-size:16px; }
 .portal-cards { grid-template-columns:1fr; gap:14px; }
 .portal-card { padding:24px; }
 .portal-card .portal-number { position:absolute; right:24px; top:24px; }
 .portal-card>p { min-height:0; }
 .portal-card h2 { font-size:24px; }
 .portal-admin { align-items:flex-start; flex-direction:column; padding:24px; }
 .portal-admin .button { width:100%; }
 .portal-welcome { grid-template-columns:1fr; gap:20px; min-height:0; }
 .portal-welcome h1 { font-size:34px; }
 .portal-start { padding:26px; }
 .parent-actions { grid-template-columns:1fr; gap:16px; }
 .parent-actions article { padding:22px; }
 .portal-boundary { text-align:left; }
 .workspace[data-portal] .main { padding-top:20px; }
}
@media print { .portal-return,.portal-top-home { display:none; } }
