/* BTI Portal Design System — all semantic colors come from PortalSetting. */
:root {
    --portal-primary: #0d6efd;
    --portal-secondary: #6c757d;
    --portal-success: #198754;
    --portal-danger: #dc3545;
    --portal-warning: #ffc107;
    --portal-info: #0dcaf0;
    --portal-ink: #17211f;
    --portal-muted: #65716e;
    --portal-bg: #f5f7f6;
    --portal-surface: #ffffff;
    --portal-line: rgba(23, 33, 31, .13);
    --portal-radius: 12px;
    --portal-radius-sm: 8px;
    --portal-shadow: 0 12px 35px rgba(23, 33, 31, .075);
    --portal-font-display: "Space Grotesk", Inter, sans-serif;
    --portal-font-body: Inter, system-ui, sans-serif;
    /* Backward-compatible aliases used by the existing registration form. */
    --accent: var(--portal-primary);
    --accent-2: var(--portal-info);
    --deep: var(--portal-secondary);
    --font-display: var(--portal-font-display);
}

body.portal-site {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    background: var(--portal-bg);
    color: var(--portal-ink);
    font-family: var(--portal-font-body);
    line-height: 1.6;
}

.portal-site *, .portal-site *::before, .portal-site *::after,
.portal-admin *, .portal-admin *::before, .portal-admin *::after { box-sizing: border-box; }
.portal-site main { flex: 1 0 auto; }
.portal-site h1,.portal-site h2,.portal-site h3,.portal-site h4,.portal-site h5,.portal-site h6,
.portal-admin h1,.portal-admin h2,.portal-admin h3,.portal-admin h4,.portal-admin h5,.portal-admin h6 { font-family: var(--portal-font-display); letter-spacing: -.02em; }
.portal-site a,.portal-admin a { color: var(--portal-primary); }
.portal-site img,.portal-admin img { max-width: 100%; }
.portal-shell { width: min(100% - 2rem, 1280px); margin-inline: auto; }
.portal-section { padding: clamp(3rem, 7vw, 6rem) 0; }
.portal-section-sm { padding: clamp(2rem, 4vw, 3.5rem) 0; }
.portal-muted { color: var(--portal-muted); }
.portal-eyebrow { display:block; margin-bottom:.55rem; color:var(--portal-primary); font-family:var(--portal-font-display); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.portal-heading { margin:0; color:var(--portal-ink); font-size:clamp(1.7rem,4vw,2.7rem); font-weight:700; line-height:1.08; }
.portal-lead { max-width:65ch; margin:.75rem 0 0; color:var(--portal-muted); font-size:.91rem; }

.portal-skip { position:fixed; z-index:9999; top:-60px; left:1rem; padding:.65rem .9rem; border-radius:0 0 6px 6px; background:var(--portal-primary); color:#fff!important; font-weight:700; transition:top .15s; }
.portal-skip:focus { top:0; }
:focus-visible { outline:3px solid color-mix(in srgb,var(--portal-primary) 70%,#fff); outline-offset:3px; }

/* Dynamic Bootstrap bridge */
.portal-site .text-primary,.portal-admin .text-primary { color:var(--portal-primary)!important; }
.portal-site .text-secondary,.portal-admin .text-secondary { color:var(--portal-secondary)!important; }
.portal-site .text-success,.portal-admin .text-success { color:var(--portal-success)!important; }
.portal-site .text-danger,.portal-admin .text-danger { color:var(--portal-danger)!important; }
.portal-site .text-warning,.portal-admin .text-warning { color:var(--portal-warning)!important; }
.portal-site .text-info,.portal-admin .text-info { color:var(--portal-info)!important; }
.portal-site .bg-primary,.portal-admin .bg-primary { background-color:var(--portal-primary)!important; }
.portal-site .bg-secondary,.portal-admin .bg-secondary { background-color:var(--portal-secondary)!important; }
.portal-site .bg-success,.portal-admin .bg-success { background-color:var(--portal-success)!important; }
.portal-site .bg-danger,.portal-admin .bg-danger { background-color:var(--portal-danger)!important; }
.portal-site .bg-warning,.portal-admin .bg-warning { background-color:var(--portal-warning)!important; }
.portal-site .bg-info,.portal-admin .bg-info { background-color:var(--portal-info)!important; }
.portal-site .btn-primary,.portal-admin .btn-primary { --bs-btn-bg:var(--portal-primary); --bs-btn-border-color:var(--portal-primary); --bs-btn-hover-bg:color-mix(in srgb,var(--portal-primary) 84%,#000); --bs-btn-hover-border-color:color-mix(in srgb,var(--portal-primary) 84%,#000); }
.portal-site .btn-success,.portal-admin .btn-success { --bs-btn-bg:var(--portal-success); --bs-btn-border-color:var(--portal-success); }
.portal-site .btn-danger,.portal-admin .btn-danger { --bs-btn-bg:var(--portal-danger); --bs-btn-border-color:var(--portal-danger); }
.portal-site .btn-outline-primary,.portal-admin .btn-outline-primary { --bs-btn-color:var(--portal-primary); --bs-btn-border-color:var(--portal-primary); --bs-btn-hover-bg:var(--portal-primary); --bs-btn-hover-border-color:var(--portal-primary); }
.portal-site .form-control:focus,.portal-site .form-select:focus,
.portal-admin .form-control:focus,.portal-admin .form-select:focus { border-color:var(--portal-primary); box-shadow:0 0 0 .22rem color-mix(in srgb,var(--portal-primary) 14%,transparent); }
.portal-site .form-check-input:checked,.portal-admin .form-check-input:checked { background-color:var(--portal-primary); border-color:var(--portal-primary); }
.portal-site .page-link,.portal-admin .page-link { color:var(--portal-primary); }
.portal-site .page-item.active .page-link,.portal-admin .page-item.active .page-link { border-color:var(--portal-primary); background:var(--portal-primary); color:#fff; }

/* Navigation */
.portal-nav { padding:.75rem 0; border-bottom:1px solid var(--portal-line); background:rgba(255,255,255,.94); backdrop-filter:blur(14px); }
.portal-brand { min-width:0; display:flex; align-items:center; gap:.65rem; color:var(--portal-ink)!important; text-decoration:none; }
.portal-brand-logo { width:42px; height:42px; flex:0 0 42px; object-fit:contain; border-radius:8px; background:#fff; }
.portal-brand-mark { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:8px; color:#fff; background:linear-gradient(135deg,var(--portal-primary),var(--portal-secondary)); font:700 .78rem var(--portal-font-display); }
.portal-brand-copy { min-width:0; display:grid; line-height:1.15; }
.portal-brand-copy strong { overflow:hidden; max-width:260px; font:700 .88rem var(--portal-font-display); text-overflow:ellipsis; white-space:nowrap; }
.portal-brand-copy small { margin-top:.18rem; color:var(--portal-muted); font-size:.58rem; letter-spacing:.09em; text-transform:uppercase; }
.portal-nav .nav-link { position:relative; padding:.55rem .7rem!important; color:#384643!important; font:600 .72rem var(--portal-font-display); letter-spacing:.035em; }
.portal-nav .nav-link::after { content:""; position:absolute; right:.7rem; bottom:.2rem; left:.7rem; height:2px; background:var(--portal-primary); transform:scaleX(0); transition:transform .16s; }
.portal-nav .nav-link:hover,.portal-nav .nav-link.active { color:var(--portal-primary)!important; }
.portal-nav .nav-link.active::after { transform:scaleX(1); }
.portal-nav-search { display:flex; align-items:center; min-height:38px; padding:0 .65rem; border:1px solid var(--portal-line); border-radius:7px; background:var(--portal-bg); }
.portal-nav-search input { width:130px; border:0; outline:0; background:transparent; color:var(--portal-ink); font-size:.69rem; }
.portal-nav-search button { border:0; background:transparent; color:var(--portal-muted); }
.portal-nav-apply,.portal-btn { min-height:40px; display:inline-flex; align-items:center; justify-content:center; gap:.42rem; padding:.58rem .85rem; border:1px solid transparent; border-radius:7px; font:700 .7rem var(--portal-font-display); text-decoration:none; transition:transform .15s,box-shadow .15s,background .15s; }
.portal-nav-apply,.portal-btn-primary { border-color:var(--portal-primary); background:var(--portal-primary); color:#fff!important; }
.portal-btn-secondary { border-color:var(--portal-secondary); background:var(--portal-secondary); color:#fff!important; }
.portal-btn-outline { border-color:var(--portal-line); background:#fff; color:var(--portal-ink)!important; }
.portal-btn-danger { border-color:var(--portal-danger); background:var(--portal-danger); color:#fff!important; }
.portal-btn:hover,.portal-nav-apply:hover { transform:translateY(-1px); box-shadow:0 7px 18px color-mix(in srgb,var(--portal-primary) 20%,transparent); }

/* Shared public components */
.portal-hero { position:relative; overflow:hidden; color:#fff; background:linear-gradient(125deg,color-mix(in srgb,var(--portal-secondary) 88%,#081311),color-mix(in srgb,var(--portal-primary) 75%,var(--portal-secondary))); }
.portal-hero::after { content:""; position:absolute; width:420px; height:420px; right:-170px; top:-250px; border-radius:50%; background:rgba(255,255,255,.08); }
.portal-hero-inner { position:relative; z-index:1; min-height:250px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:3rem 0; }
.portal-hero .portal-eyebrow { color:rgba(255,255,255,.68); }
.portal-hero h1 { max-width:20ch; margin:0; color:#fff; font-size:clamp(2rem,5vw,3.7rem); font-weight:700; line-height:1.02; }
.portal-hero p { max-width:65ch; margin:.9rem 0 0; color:rgba(255,255,255,.75); font-size:.9rem; }
.portal-hero-actions { display:flex; gap:.55rem; margin-top:1.25rem; flex-wrap:wrap; }
.portal-hero .portal-btn-outline { border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.08); color:#fff!important; }
.portal-page-head { padding:2.7rem 0; border-bottom:1px solid var(--portal-line); background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--portal-primary) 5%,#fff)); }
.portal-card { border:1px solid var(--portal-line); border-radius:var(--portal-radius); background:var(--portal-surface); box-shadow:var(--portal-shadow); }
.portal-card-hover { transition:transform .18s,box-shadow .18s,border-color .18s; }
.portal-card-hover:hover { transform:translateY(-4px); border-color:color-mix(in srgb,var(--portal-primary) 36%,var(--portal-line)); box-shadow:0 18px 42px color-mix(in srgb,var(--portal-primary) 12%,rgba(23,33,31,.08)); }
.portal-media { position:relative; overflow:hidden; aspect-ratio:16/9; background:color-mix(in srgb,var(--portal-secondary) 80%,#111); }
.portal-media img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.portal-card-hover:hover .portal-media img { transform:scale(1.035); }
.portal-media-placeholder { width:100%; height:100%; display:grid; place-items:center; color:rgba(255,255,255,.7); background:linear-gradient(135deg,var(--portal-secondary),color-mix(in srgb,var(--portal-primary) 60%,var(--portal-secondary))); font-size:2rem; }
.portal-play { position:absolute; inset:0; display:grid; place-items:center; border:0; color:#fff; background:rgba(8,16,15,.24); }
.portal-play span { width:55px; height:55px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:rgba(0,0,0,.46); }
.portal-meta { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; color:var(--portal-muted); font-size:.63rem; }
.portal-tag { display:inline-flex; align-items:center; gap:.3rem; padding:.26rem .48rem; border-radius:999px; color:var(--portal-primary); background:color-mix(in srgb,var(--portal-primary) 10%,#fff); font-size:.58rem; font-weight:700; }
.portal-empty { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2rem; text-align:center; }
.portal-empty i { margin-bottom:.7rem; color:var(--portal-primary); font-size:1.8rem; }
.portal-empty h3 { margin:0; font-size:1rem; }
.portal-empty p { max-width:50ch; margin:.4rem 0 .8rem; color:var(--portal-muted); font-size:.73rem; }
.portal-accordion .accordion-item { overflow:hidden; margin-bottom:.6rem; border:1px solid var(--portal-line); border-radius:8px!important; background:#fff; }
.portal-accordion .accordion-button { padding:1rem; color:var(--portal-ink); background:#fff; font:600 .79rem var(--portal-font-display); box-shadow:none!important; }
.portal-accordion .accordion-button:not(.collapsed) { color:var(--portal-primary); background:color-mix(in srgb,var(--portal-primary) 6%,#fff); }
.portal-accordion .accordion-button::after { filter:none; }
.portal-accordion .accordion-body { color:var(--portal-muted); font-size:.75rem; line-height:1.7; }
.portal-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; }
.portal-stat { padding:1rem; border:1px solid var(--portal-line); border-radius:9px; background:#fff; }
.portal-stat strong { display:block; color:var(--portal-primary); font:700 1.45rem var(--portal-font-display); }
.portal-stat span { color:var(--portal-muted); font-size:.64rem; }
.portal-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.portal-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.portal-content-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:1.25rem; align-items:start; }
.portal-card-body { padding:1.1rem; }
.portal-card-body h2,.portal-card-body h3 { margin:.35rem 0 .45rem; color:var(--portal-ink); font-size:1rem; font-weight:700; }
.portal-card-body p { margin:0; color:var(--portal-muted); font-size:.75rem; }
.portal-feature-list { display:grid; gap:.65rem; margin:0; padding:0; list-style:none; }
.portal-feature-list li { display:flex; gap:.65rem; align-items:flex-start; color:var(--portal-muted); font-size:.74rem; }
.portal-feature-list i { width:26px; height:26px; flex:0 0 26px; display:grid; place-items:center; border-radius:7px; color:var(--portal-primary); background:color-mix(in srgb,var(--portal-primary) 9%,#fff); }
.portal-intake { overflow:hidden; }
.portal-intake-head { padding:1rem 1.1rem; color:#fff; background:linear-gradient(125deg,var(--portal-secondary),var(--portal-primary)); }
.portal-intake-head h2 { margin:.25rem 0 0; font-size:1.05rem; }
.portal-intake-body { padding:1.1rem; }
.portal-intake-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin-bottom:.85rem; }
.portal-intake-meta div { padding:.6rem; border-radius:7px; background:var(--portal-bg); }
.portal-intake-meta small { display:block; color:var(--portal-muted); font-size:.55rem; font-weight:700; text-transform:uppercase; }
.portal-intake-meta strong { display:block; margin-top:.16rem; font-size:.7rem; }
.portal-intake-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.portal-intake-title-row h2 { flex:1; }
.portal-intake-status { display:inline-flex; align-items:center; gap:.3rem; padding:.28rem .5rem; border:1px solid rgba(255,255,255,.3); border-radius:999px; color:#fff; background:rgba(255,255,255,.12); font-size:.56rem; font-weight:700; white-space:nowrap; }
.portal-intake-programs { overflow:hidden; margin-top:.8rem; border:1px solid var(--portal-line); border-radius:8px; }
.portal-intake-program { display:grid; grid-template-columns:minmax(120px,.85fr) minmax(110px,.7fr) minmax(120px,.75fr); gap:.7rem; padding:.62rem .7rem; border-bottom:1px solid var(--portal-line); background:#fff; }
.portal-intake-program:nth-child(even) { background:#fafbfb; }
.portal-intake-program:last-child { border-bottom:0; }
.portal-intake-program small { display:block; margin-bottom:.08rem; color:var(--portal-muted); font-size:.52rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.portal-intake-program strong { display:block; font-size:.65rem; }
.portal-intake-section-row { display:flex; align-items:flex-start; gap:.65rem; margin-top:.75rem; padding:.7rem; border-radius:8px; background:color-mix(in srgb,var(--portal-primary) 5%,#fff); }
.portal-intake-section-row > i { margin-top:.15rem; color:var(--portal-primary); }
.portal-intake-section-row strong { display:block; margin-bottom:.25rem; font-size:.64rem; }
.portal-intake-footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding-top:.85rem; border-top:1px solid var(--portal-line); }
.portal-byline { margin-top:1rem; padding-top:.75rem; border-top:1px solid var(--portal-line); color:var(--portal-muted); font-size:.65rem; }
.portal-article { padding:clamp(1.1rem,4vw,2rem); }
.portal-article h1 { margin:.5rem 0; font-size:clamp(1.65rem,4vw,2.8rem); }
.portal-article-content { color:#384643; font-size:.82rem; line-height:1.85; }
.portal-sidebar-stack { display:grid; gap:.75rem; }
.portal-list-link { display:block; padding:.7rem 0; border-bottom:1px solid var(--portal-line); color:var(--portal-ink)!important; font-size:.7rem; font-weight:600; text-decoration:none; }
.portal-list-link:last-child { border-bottom:0; }
.portal-pagination { display:flex; justify-content:center; gap:.25rem; margin-top:1.2rem; }
.portal-search-box { display:flex; gap:.4rem; max-width:620px; margin-top:1rem; }
.portal-search-box input { flex:1; }
.portal-category { margin-bottom:1.5rem; }
.portal-category-title { margin:0 0 .65rem; font-size:.85rem; }
.portal-about-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.85fr); gap:1.5rem; align-items:center; }
.portal-about-visual { position:relative; overflow:hidden; min-height:360px; border-radius:14px; background:linear-gradient(135deg,var(--portal-secondary),var(--portal-primary)); box-shadow:var(--portal-shadow); }
.portal-about-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.portal-about-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(8,24,21,.62)); }
.portal-about-caption { position:absolute; z-index:1; right:1rem; bottom:1rem; left:1rem; padding:.8rem; border:1px solid rgba(255,255,255,.2); border-radius:9px; color:#fff; background:rgba(12,31,28,.45); backdrop-filter:blur(8px); }
.portal-about-caption strong { display:block; font-size:.78rem; }
.portal-about-caption small { color:rgba(255,255,255,.72); font-size:.62rem; }
.portal-value-card { position:relative; padding:1.1rem; border-top:3px solid var(--portal-primary); }
.portal-value-number { display:block; color:color-mix(in srgb,var(--portal-primary) 24%,#fff); font:700 2.2rem var(--portal-font-display); line-height:1; }
.portal-journey { display:grid; grid-template-columns:repeat(3,1fr); gap:0; overflow:hidden; border:1px solid var(--portal-line); border-radius:12px; background:#fff; }
.portal-journey-step { position:relative; padding:1.2rem; border-right:1px solid var(--portal-line); }
.portal-journey-step:last-child { border-right:0; }
.portal-journey-step i { width:38px; height:38px; display:grid; place-items:center; margin-bottom:.7rem; border-radius:9px; color:var(--portal-primary); background:color-mix(in srgb,var(--portal-primary) 9%,#fff); }
.portal-journey-step h3 { margin:0 0 .3rem; font-size:.8rem; }
.portal-journey-step p { margin:0; color:var(--portal-muted); font-size:.68rem; }
.portal-faq-toolbar { display:flex; align-items:center; gap:.5rem; padding:.75rem; border:1px solid var(--portal-line); border-radius:10px; background:#fff; box-shadow:0 5px 18px rgba(23,33,31,.045); }
.portal-faq-search { position:relative; flex:1; }
.portal-faq-search i { position:absolute; top:50%; left:.8rem; color:var(--portal-muted); transform:translateY(-50%); }
.portal-faq-search input { width:100%; min-height:43px; padding:.55rem .75rem .55rem 2.35rem; border:1px solid var(--portal-line); border-radius:7px; outline:0; font-size:.72rem; }
.portal-faq-search input:focus { border-color:var(--portal-primary); box-shadow:0 0 0 .2rem color-mix(in srgb,var(--portal-primary) 12%,transparent); }
.portal-faq-filters { display:flex; gap:.35rem; flex-wrap:wrap; margin:1rem 0; }
.portal-faq-filter { padding:.42rem .62rem; border:1px solid var(--portal-line); border-radius:999px; background:#fff; color:var(--portal-muted); font-size:.62rem; font-weight:700; }
.portal-faq-filter.active,.portal-faq-filter:hover { border-color:var(--portal-primary); color:#fff; background:var(--portal-primary); }
.portal-faq-item[hidden] { display:none!important; }
.portal-faq-count { color:var(--portal-muted); font-size:.64rem; white-space:nowrap; }

/* Forms and alerts */
.portal-site .form-control,.portal-site .form-select,.portal-admin .form-control,.portal-admin .form-select { min-height:44px; border-color:#cfd9d6; border-radius:7px; color:var(--portal-ink); font-size:.76rem; }
.portal-site textarea.form-control,.portal-admin textarea.form-control { min-height:110px; }
.portal-alerts { width:min(100% - 2rem,1280px); margin:1rem auto 0; }
.portal-alert { display:flex; align-items:flex-start; gap:.55rem; padding:.75rem .85rem; border:1px solid var(--portal-line); border-left:4px solid var(--portal-info); border-radius:7px; background:#fff; color:var(--portal-ink); font-size:.72rem; box-shadow:0 5px 18px rgba(23,33,31,.06); }
.portal-alert.success { border-left-color:var(--portal-success); }
.portal-alert.error,.portal-alert.danger { border-left-color:var(--portal-danger); }
.portal-alert.warning { border-left-color:var(--portal-warning); }
.portal-modal .modal-content { overflow:hidden; border:0; border-radius:12px; box-shadow:0 25px 65px rgba(23,33,31,.2); }
.portal-modal .modal-header { padding:1rem 1.1rem; border:0; color:#fff; background:linear-gradient(125deg,var(--portal-secondary),var(--portal-primary)); }
.portal-modal .modal-title { font-size:.95rem; font-weight:700; }
.portal-modal .btn-close { filter:brightness(0) invert(1); }
.portal-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

/* Footer */
.portal-footer { margin-top:auto; padding:3.5rem 0 1.25rem; color:rgba(255,255,255,.72); background:color-mix(in srgb,var(--portal-secondary) 88%,#07110f); }
.portal-footer-grid { display:grid; grid-template-columns:1.5fr .7fr .9fr; gap:2rem; }
.portal-footer h2,.portal-footer h3 { margin:0 0 .8rem; color:#fff; font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.portal-footer p,.portal-footer a { color:rgba(255,255,255,.68); font-size:.7rem; text-decoration:none; }
.portal-footer a:hover { color:#fff; }
.portal-footer-links { display:grid; gap:.4rem; }
.portal-socials { display:flex; gap:.45rem; margin-top:.8rem; }
.portal-socials a { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.17); border-radius:7px; color:#fff; }
.portal-footer-bottom { display:flex; justify-content:space-between; gap:1rem; margin-top:2rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.12); font-size:.62rem; }

/* Portal management area inside the main system */
.portal-admin { --portal-bg:#f5f7fa; width:100%; min-height:calc(100vh - 80px); padding:1rem; background:var(--portal-bg); color:var(--portal-ink); }
.portal-admin-shell { width:min(100%,1560px); margin-inline:auto; }
.portal-admin-nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding:.75rem .85rem; border:1px solid var(--portal-line); border-radius:10px; background:#fff; box-shadow:0 5px 18px rgba(23,33,31,.045); }
.portal-admin-brand { display:flex; align-items:center; gap:.55rem; color:var(--portal-ink)!important; text-decoration:none; }
.portal-admin-brand span:first-child { width:34px; height:34px; display:grid; place-items:center; border-radius:8px; color:#fff; background:linear-gradient(135deg,var(--portal-primary),var(--portal-secondary)); }
.portal-admin-brand strong { display:block; font-size:.76rem; }
.portal-admin-brand small { display:block; color:var(--portal-muted); font-size:.56rem; }
.portal-admin-links { display:flex; gap:.3rem; flex-wrap:wrap; }
.portal-admin-links a { padding:.42rem .58rem; border-radius:6px; color:#52605d; font-size:.62rem; font-weight:700; text-decoration:none; }
.portal-admin-links a:hover,.portal-admin-links a.active { color:var(--portal-primary); background:color-mix(in srgb,var(--portal-primary) 8%,#fff); }
.portal-admin-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.portal-admin-head h1 { margin:0; font-size:1.35rem; font-weight:700; }
.portal-admin-head p { margin:.25rem 0 0; color:var(--portal-muted); font-size:.69rem; }
.portal-admin-grid { display:grid; gap:.8rem; }
.portal-admin-card { border:1px solid var(--portal-line); border-radius:10px; background:#fff; box-shadow:0 5px 18px rgba(23,33,31,.045); }
.portal-admin-card-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 1rem; border-bottom:1px solid var(--portal-line); }
.portal-admin-card-head h2 { margin:0; font-size:.8rem; font-weight:700; }
.portal-admin-card-body { padding:1rem; }
.portal-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; margin-bottom:1rem; }
.portal-kpi { display:flex; align-items:center; gap:.6rem; padding:.8rem; border:1px solid var(--portal-line); border-radius:9px; background:#fff; }
.portal-kpi-icon { width:36px; height:36px; flex:0 0 36px; display:grid; place-items:center; border-radius:8px; color:var(--kpi-color,var(--portal-primary)); background:color-mix(in srgb,var(--kpi-color,var(--portal-primary)) 10%,#fff); }
.portal-kpi small { display:block; color:var(--portal-muted); font-size:.55rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.portal-kpi strong { display:block; color:var(--portal-ink); font-size:1.05rem; }
.portal-admin-table { width:100%; margin:0; font-size:.69rem; }
.portal-admin-table th { padding:.65rem .75rem; border-bottom:1px solid var(--portal-line); background:#f7f9fb; color:#687572; font-size:.55rem; letter-spacing:.055em; text-transform:uppercase; white-space:nowrap; }
.portal-admin-table td { padding:.7rem .75rem; border-bottom:1px solid #edf1f0; vertical-align:middle; }
.portal-admin-table tr:last-child td { border-bottom:0; }
.portal-status { display:inline-flex; align-items:center; gap:.3rem; padding:.25rem .48rem; border:1px solid; border-radius:999px; font-size:.56rem; font-weight:700; }
.portal-status.success { border-color:color-mix(in srgb,var(--portal-success) 42%,#fff); color:var(--portal-success); background:color-mix(in srgb,var(--portal-success) 8%,#fff); }
.portal-status.warning { border-color:color-mix(in srgb,var(--portal-warning) 52%,#fff); color:color-mix(in srgb,var(--portal-warning) 65%,#000); background:color-mix(in srgb,var(--portal-warning) 10%,#fff); }
.portal-status.danger { border-color:color-mix(in srgb,var(--portal-danger) 42%,#fff); color:var(--portal-danger); background:color-mix(in srgb,var(--portal-danger) 7%,#fff); }
.portal-status.info { border-color:color-mix(in srgb,var(--portal-info) 42%,#fff); color:color-mix(in srgb,var(--portal-info) 65%,#000); background:color-mix(in srgb,var(--portal-info) 8%,#fff); }
.portal-admin-actions { display:flex; justify-content:flex-end; gap:.3rem; }
.portal-icon-btn { width:33px; height:33px; display:grid; place-items:center; border:1px solid var(--portal-line); border-radius:7px; background:#fff; color:#52615e; text-decoration:none; cursor:pointer; }
.portal-icon-btn:hover { color:var(--portal-primary); border-color:color-mix(in srgb,var(--portal-primary) 38%,var(--portal-line)); }
.portal-icon-btn.danger { color:var(--portal-danger); }
.portal-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.portal-form-grid .full { grid-column:1/-1; }
.portal-field label { display:block; margin:0 0 .3rem .05rem; color:#52605d; font-size:.59rem; font-weight:700; letter-spacing:.045em; text-transform:uppercase; }
.portal-field-errors,.portal-field-errors ul { margin:.25rem 0 0; padding:0; list-style:none; color:var(--portal-danger); font-size:.62rem; }

@media (max-width: 991.98px) {
    .portal-brand-copy small { display:none; }
    .portal-nav .navbar-collapse { padding-top:.75rem; }
    .portal-nav-search input { width:100%; }
    .portal-nav-search { margin:.35rem 0; }
    .portal-hero-inner { min-height:220px; }
    .portal-footer-grid { grid-template-columns:1fr 1fr; }
    .portal-footer-grid > :first-child { grid-column:1/-1; }
    .portal-admin-nav { align-items:flex-start; flex-direction:column; }
    .portal-kpis { grid-template-columns:repeat(2,1fr); }
    .portal-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .portal-content-grid { grid-template-columns:1fr; }
    .portal-about-hero { grid-template-columns:1fr; }
}

@media (max-width: 767.98px) {
    .portal-shell { width:min(100% - 1rem,1280px); }
    .portal-section { padding:2.5rem 0; }
    .portal-hero-inner { min-height:0; padding:2.2rem 0; }
    .portal-hero h1 { font-size:2rem; }
    .portal-hero p { font-size:.76rem; }
    .portal-stat-grid { grid-template-columns:1fr; }
    .portal-grid-2,.portal-grid-3 { grid-template-columns:1fr; }
    .portal-intake-title-row { display:block; }
    .portal-intake-status { margin-bottom:.55rem; }
    .portal-intake-program { grid-template-columns:1fr 1fr; }
    .portal-intake-program > :first-child { grid-column:1/-1; }
    .portal-intake-footer { align-items:stretch; flex-direction:column; }
    .portal-search-box { flex-direction:column; }
    .portal-journey { grid-template-columns:1fr; }
    .portal-journey-step { border-right:0; border-bottom:1px solid var(--portal-line); }
    .portal-journey-step:last-child { border-bottom:0; }
    .portal-faq-toolbar { align-items:stretch; flex-direction:column; }
    .portal-footer { padding-top:2.5rem; }
    .portal-footer-grid { grid-template-columns:1fr; }
    .portal-footer-grid > :first-child { grid-column:auto; }
    .portal-footer-bottom { flex-direction:column; }
    .portal-admin { padding:.55rem; }
    .portal-admin-head { align-items:flex-start; flex-direction:column; }
    .portal-admin-links { width:100%; flex-wrap:nowrap; overflow-x:auto; padding-bottom:.2rem; }
    .portal-admin-links a { white-space:nowrap; }
    .portal-kpis { grid-template-columns:1fr 1fr; }
    .portal-form-grid { grid-template-columns:1fr; }
    .portal-form-grid .full { grid-column:auto; }
    .portal-admin-table,.portal-admin-table tbody,.portal-admin-table tr,.portal-admin-table td { display:block; width:100%; }
    .portal-admin-table thead { display:none; }
    .portal-admin-table tr { padding:.7rem; border-bottom:1px solid var(--portal-line); }
    .portal-admin-table td { display:flex; justify-content:space-between; gap:1rem; padding:.35rem 0; border:0; text-align:right; }
    .portal-admin-table td::before { content:attr(data-label); color:#75817e; font-size:.56rem; font-weight:700; letter-spacing:.04em; text-align:left; text-transform:uppercase; }
    .portal-admin-actions { justify-content:flex-end; }
}

@media (max-width: 420px) {
    .portal-kpis { grid-template-columns:1fr; }
    .portal-brand-copy strong { max-width:180px; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

@media print {
    .portal-nav,.portal-footer,.portal-admin-nav,.portal-admin-actions,.portal-print-hide,.modal { display:none!important; }
    body.portal-site,.portal-admin { background:#fff; }
    .portal-card,.portal-admin-card { box-shadow:none; }
}
