:root{
    --ccs-blue:#24568f;
    --ccs-blue-dark:#173d68;
    --ccs-soft:#f3f7fb;
    --ccs-text:#17212b;
}
body{
    background:var(--ccs-soft);
    color:var(--ccs-text);
    font-size:16px;
}
.portal-navbar,
.bg-primary{
    background:linear-gradient(135deg,var(--ccs-blue-dark),var(--ccs-blue))!important;
}
.navbar-brand{letter-spacing:.01em}
.card{
    border:0;
    border-radius:24px;
    box-shadow:0 18px 45px rgba(20,40,70,.08);
}
.btn-primary{
    background:var(--ccs-blue);
    border-color:var(--ccs-blue);
}
.btn-primary:hover,
.btn-primary:focus{
    background:var(--ccs-blue-dark);
    border-color:var(--ccs-blue-dark);
}
.btn-outline-primary{
    color:var(--ccs-blue);
    border-color:var(--ccs-blue);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus{
    background:var(--ccs-blue);
    border-color:var(--ccs-blue);
}
.badge-soft{background:#eaf4fb;color:var(--ccs-blue)}
.dashboard-card{
    min-height:230px;
    display:flex;
    flex-direction:column;
}
.table td,.table th{vertical-align:middle}.required{color:#d92d20}
.portal-kicker{
    color:var(--ccs-blue);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.78rem;
}
.dashboard-hero{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    border-radius:28px;
    padding:34px;
    color:#fff;
    background:
        radial-gradient(circle at top left,rgba(255,255,255,.25),transparent 34%),
        linear-gradient(135deg,var(--ccs-blue-dark),var(--ccs-blue));
    box-shadow:0 18px 45px rgba(36,86,143,.18);
}
.dashboard-hero .portal-kicker{color:#d9efff}
.mini-info{
    padding:18px 20px;
    border-radius:18px;
    background:#fff;
    border:1px solid rgba(36,86,143,.08);
    box-shadow:0 10px 28px rgba(20,40,70,.05);
}
.mini-info strong{
    display:block;
    color:#64748b;
    font-size:.83rem;
    margin-bottom:7px;
}
.mini-info span{
    display:block;
    color:#17212b;
    font-weight:800;
}
.card-icon{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:16px;
    background:#eaf4fb;
    margin-bottom:18px;
    font-size:24px;
}
.payment-box{
    padding:24px;
    border-radius:20px;
    background:#f8fbff;
    border:1px solid rgba(36,86,143,.12);
}
.live-embed-wrap{
    position:relative;
    overflow:hidden;
    border-radius:18px;
    background:#111827;
}
.live-embed-wrap iframe,
.live-embed-wrap video{
    width:100%;
    min-height:520px;
    border:0;
    display:block;
}
.form-control,
.form-select{
    border-radius:12px;
    min-height:46px;
}
textarea.form-control{min-height:auto}
@media(max-width:767px){
    .dashboard-hero{display:block;padding:26px}
    .dashboard-hero .btn{margin-top:18px;width:100%}
    .live-embed-wrap iframe,
    .live-embed-wrap video{min-height:260px}
}

/* ==============================
   Conference visual identity V3
   ============================== */
.fw-black{font-weight:900}.opacity-90{opacity:.9}
.portal-nav-logo{width:34px;height:34px;object-fit:contain;border-radius:8px;background:rgba(255,255,255,.9);padding:3px}
.conference-hero{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    border-radius:32px;
    padding:38px;
    min-height:250px;
    color:#fff;
    background-size:cover;
    background-position:center;
    background-image:
        radial-gradient(circle at top left,rgba(255,255,255,.22),transparent 35%),
        linear-gradient(135deg,var(--ccs-blue-dark),var(--ccs-blue));
    box-shadow:0 22px 60px rgba(36,86,143,.20);
    overflow:hidden;
}
.conference-hero.compact{min-height:auto;padding:30px}
.conference-hero .portal-kicker{color:#d9efff}.conference-hero h1{max-width:900px}.hero-description{max-width:760px;color:rgba(255,255,255,.86)}
.conference-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.welcome-user{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.2)}
.poster-card{padding:18px;border-radius:26px;background:#fff;box-shadow:0 18px 45px rgba(20,40,70,.08)}
.poster-card img{width:100%;max-height:620px;object-fit:contain;border-radius:18px;background:#f8fafc}
.auth-shell{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(420px,1.1fr);gap:28px;align-items:stretch}.auth-shell-login{grid-template-columns:minmax(320px,1fr) minmax(360px,.65fr)}
.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:650px;padding:36px;border-radius:32px;color:#fff;background-size:cover;background-position:center;background-image:radial-gradient(circle at top left,rgba(255,255,255,.22),transparent 35%),linear-gradient(135deg,var(--ccs-blue-dark),var(--ccs-blue));box-shadow:0 22px 60px rgba(36,86,143,.18);overflow:hidden}
.auth-brand h1{font-size:clamp(2rem,3vw,3.2rem);font-weight:900;line-height:1.05}.auth-brand p{font-size:1.05rem;color:rgba(255,255,255,.9)}
.auth-poster{width:min(260px,65%);max-height:360px;object-fit:contain;align-self:flex-start;margin-top:26px;border-radius:18px;background:#fff;padding:8px;box-shadow:0 18px 45px rgba(0,0,0,.18)}
.auth-card{align-self:center}.conference-asset-preview{border:1px solid #e2e8f0;border-radius:16px;padding:10px;background:#f8fafc}.conference-asset-preview img{width:100%;height:150px;object-fit:contain;border-radius:10px}
.form-control-color{width:100%;height:46px;padding:.45rem}.dashboard-card .btn{align-self:flex-start}
@media(max-width:991px){.auth-shell,.auth-shell-login{grid-template-columns:1fr}.auth-brand{min-height:auto}.auth-poster{width:180px}.conference-hero{display:block}.conference-hero-actions{align-items:flex-start;margin-top:20px}}
@media(max-width:767px){.conference-hero{padding:26px;border-radius:24px}.auth-brand{padding:26px;border-radius:24px}.auth-card{border-radius:24px}.poster-card img{max-height:480px}}

/* ==============================
   V3.1 cleanup before staging
   ============================== */
.portal-mark{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border-radius:12px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.22);
    color:#fff;
    font-weight:900;
    letter-spacing:.02em;
    font-size:.86rem;
}
.portal-nav-logo{display:none!important}
.auth-card .form-control,
.auth-card .form-select{
    background:#fff;
}
.auth-card .form-control:focus,
.auth-card .form-select:focus{
    border-color:var(--ccs-accent);
    box-shadow:0 0 0 .22rem rgba(114,173,214,.18);
}
.poster-card--compact{
    display:flex;
    flex-direction:column;
    gap:14px;
}
.poster-card-header{
    display:flex;
    align-items:center;
    gap:12px;
}
.small-icon{
    width:42px;
    height:42px;
    min-width:42px;
    margin-bottom:0;
    font-size:20px;
}
.poster-card--compact img{
    max-height:540px;
}
.mini-info small{
    display:block;
    margin-top:4px;
    font-weight:600;
}
.dashboard-card{
    min-height:210px;
}
.dashboard-card .btn{
    min-width:150px;
}
@media(max-width:1199px){
    .poster-card--compact img{max-height:460px}
}
@media(max-width:767px){
    .portal-mark{width:36px;height:36px;border-radius:10px;font-size:.78rem}
    .poster-card--compact img{max-height:420px}
    .dashboard-card .btn{width:100%}
}

/* ==============================
   V3.2 BLS + CCS logo cleanup
   ============================== */
.ccs-navbar-logo{
    width:44px;
    height:30px;
    object-fit:contain;
    display:block;
}
.navbar-brand span{
    font-weight:900;
}
.bls-option{
    padding:16px 18px 16px 44px;
    border:1px solid rgba(36,86,143,.14);
    border-radius:16px;
    background:#f8fbff;
}
.bls-option .form-check-input{
    width:1.15rem;
    height:1.15rem;
    margin-left:-1.7rem;
    margin-top:.2rem;
}
.bls-option .form-check-label{
    font-weight:800;
    color:#17212b;
}
.bls-option .form-text{
    color:#64748b;
}
.ccs-logo-blue{
    max-width:180px;
    height:auto;
}
@media(max-width:767px){
    .ccs-navbar-logo{width:38px;height:26px}
}
