
/* CampusHub Module 12.5 - Premium Public Landing & Authentication */

:root{
    --ch-public-navy:#0b1f46;
    --ch-public-navy-2:#12386f;
    --ch-public-blue:#2476f3;
    --ch-public-blue-2:#1c64db;
    --ch-public-teal:#15c6b3;
    --ch-public-ink:#13213b;
    --ch-public-muted:#64748b;
    --ch-public-line:#e5eaf1;
    --ch-public-bg:#f5f8fc;
    --ch-public-white:#fff;
}

/* ---------------- Public landing ---------------- */
.layout.guest-layout{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:var(--ch-public-bg);
}
.layout.guest-layout .main-content{
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}
.ch-public-landing{
    min-height:100vh;
    background:
        radial-gradient(circle at 92% 4%, rgba(21,198,179,.13), transparent 25%),
        radial-gradient(circle at 4% 30%, rgba(36,118,243,.10), transparent 24%),
        var(--ch-public-bg);
}
.ch-public-nav{
    width:min(1180px, calc(100% - 40px));
    margin:0 auto;
    min-height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.ch-public-brand{
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:var(--ch-public-ink);
    text-decoration:none;
}
.ch-public-logo{
    width:48px;
    height:48px;
    border-radius:15px;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,var(--ch-public-blue),var(--ch-public-teal));
    color:#fff;
    box-shadow:0 10px 25px rgba(36,118,243,.20);
    font-size:22px;
}
.ch-public-brand-copy strong{
    display:block;
    font-size:1.08rem;
    line-height:1.1;
}
.ch-public-brand-copy span{
    color:var(--ch-public-muted);
    font-size:.79rem;
}
.ch-public-nav-actions{
    display:flex;
    align-items:center;
    gap:10px;
}
.ch-public-btn{
    min-height:44px;
    padding:0 18px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-weight:750;
    font-size:.94rem;
    text-decoration:none;
    transition:.18s ease;
}
.ch-public-btn-primary{
    background:linear-gradient(135deg,var(--ch-public-blue),var(--ch-public-blue-2));
    color:#fff;
    box-shadow:0 12px 24px rgba(36,118,243,.20);
}
.ch-public-btn-primary:hover{ transform:translateY(-1px); color:#fff; }
.ch-public-btn-ghost{
    color:var(--ch-public-ink);
    background:#fff;
    border:1px solid var(--ch-public-line);
}
.ch-public-btn-ghost:hover{ background:#f8fafc; color:var(--ch-public-ink); }

.ch-public-hero{
    width:min(1180px, calc(100% - 40px));
    margin:20px auto 0;
    min-height:520px;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(0,1.03fr) minmax(380px,.97fr);
    align-items:center;
    gap:54px;
    padding:60px;
    border-radius:34px;
    color:#fff;
    background:
        radial-gradient(circle at 84% 18%, rgba(45,212,191,.25), transparent 28%),
        linear-gradient(135deg,#081a3b 0%,#0d2c60 54%,#165c9e 100%);
    box-shadow:0 30px 80px rgba(11,31,70,.18);
}
.ch-public-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid rgba(255,255,255,.14);
    background:rgba(255,255,255,.08);
    border-radius:999px;
    padding:8px 13px;
    font-size:.82rem;
    font-weight:750;
    color:#dce9ff;
    margin-bottom:18px;
}
.ch-public-hero h1{
    margin:0;
    max-width:670px;
    font-size:clamp(2.65rem,5vw,4.7rem);
    line-height:.98;
    letter-spacing:-.055em;
    color:#fff;
}
.ch-public-hero h1 span{
    background:linear-gradient(90deg,#67a8ff,#45ddd0);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}
.ch-public-hero-copy>p{
    max-width:650px;
    margin:22px 0 0;
    color:#c9d7ed;
    font-size:1.08rem;
    line-height:1.75;
}
.ch-public-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:28px;
}
.ch-public-hero-actions .ch-public-btn{
    min-height:50px;
    padding:0 22px;
}
.ch-public-hero-actions .ch-public-btn-ghost{
    color:#fff;
    background:rgba(255,255,255,.09);
    border-color:rgba(255,255,255,.14);
}
.ch-public-proof{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    margin-top:30px;
    color:#d6e2f3;
    font-size:.88rem;
}
.ch-public-proof span{
    display:inline-flex;
    align-items:center;
    gap:7px;
}
.ch-public-proof i{ color:#5eead4; }

.ch-public-preview{
    position:relative;
    min-height:400px;
    display:flex;
    align-items:center;
    justify-content:center;
}
.ch-public-phone{
    width:min(390px,100%);
    border-radius:32px;
    padding:13px;
    background:#07101f;
    box-shadow:0 34px 70px rgba(0,0,0,.28);
    transform:rotate(1.2deg);
}
.ch-public-phone-screen{
    overflow:hidden;
    border-radius:23px;
    background:#f6f8fc;
    min-height:430px;
}
.ch-public-phone-head{
    padding:18px 18px 16px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#0d234d;
    color:#fff;
}
.ch-public-phone-title{
    display:flex;
    align-items:center;
    gap:9px;
    font-weight:800;
}
.ch-public-phone-mini-logo{
    width:34px;height:34px;border-radius:11px;
    display:grid;place-items:center;
    background:linear-gradient(135deg,var(--ch-public-blue),var(--ch-public-teal));
}
.ch-public-phone-icons{ display:flex; gap:12px; opacity:.92; }
.ch-public-phone-body{ padding:14px; }
.ch-public-compose{
    display:flex;align-items:center;gap:10px;
    background:#fff;border:1px solid #e8edf4;border-radius:16px;
    padding:11px 12px;color:#8190a6;font-size:.85rem;
}
.ch-public-avatar{
    width:34px;height:34px;border-radius:50%;
    display:grid;place-items:center;flex:0 0 auto;
    background:linear-gradient(135deg,#dbeafe,#93c5fd);
    color:#0d3b7f;font-weight:800;
}
.ch-public-shortcuts{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    margin:12px 0;
}
.ch-public-shortcut{
    padding:11px 5px;
    border-radius:13px;
    background:#fff;
    text-align:center;
    border:1px solid #e8edf4;
    color:#31415e;
    font-size:.72rem;
    font-weight:700;
}
.ch-public-shortcut i{
    display:block;
    color:var(--ch-public-blue);
    margin-bottom:6px;
    font-size:1rem;
}
.ch-public-post{
    margin-top:10px;
    padding:13px;
    border-radius:16px;
    background:#fff;
    border:1px solid #e8edf4;
}
.ch-public-post-head{
    display:flex;align-items:center;gap:9px;
}
.ch-public-post-head strong{ display:block;font-size:.82rem;color:#1c2942; }
.ch-public-post-head span{ display:block;font-size:.7rem;color:#94a3b8;margin-top:1px; }
.ch-public-post p{
    margin:10px 0;
    color:#40506b;
    line-height:1.5;
    font-size:.78rem;
}
.ch-public-post-actions{
    display:flex;gap:20px;color:#73839a;font-size:.72rem;
}
.ch-public-float{
    position:absolute;
    border-radius:16px;
    padding:12px 14px;
    background:#fff;
    color:#15213a;
    box-shadow:0 15px 35px rgba(0,0,0,.17);
    font-size:.78rem;
    font-weight:700;
}
.ch-public-float-one{ right:-6px; top:35px; }
.ch-public-float-two{ left:-18px; bottom:38px; }
.ch-public-float i{ color:var(--ch-public-blue); margin-right:6px; }

.ch-public-values{
    width:min(1050px,calc(100% - 40px));
    margin:40px auto 0;
}
.ch-public-values-head{
    text-align:center;
    margin-bottom:20px;
}
.ch-public-values-head h2{
    margin:0;
    color:var(--ch-public-ink);
    font-size:1.7rem;
    letter-spacing:-.02em;
}
.ch-public-values-head p{
    color:var(--ch-public-muted);
    margin:7px 0 0;
}
.ch-public-value-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:15px;
}
.ch-public-value{
    min-height:165px;
    padding:22px;
    border-radius:22px;
    background:#fff;
    border:1px solid var(--ch-public-line);
    box-shadow:0 12px 30px rgba(15,23,42,.045);
}
.ch-public-value-icon{
    width:44px;height:44px;border-radius:13px;
    display:grid;place-items:center;
    margin-bottom:16px;
    background:#edf5ff;color:var(--ch-public-blue);
}
.ch-public-value:nth-child(2) .ch-public-value-icon{ background:#edfbf8;color:#0da997; }
.ch-public-value:nth-child(3) .ch-public-value-icon{ background:#f2eeff;color:#7456db; }
.ch-public-value h3{ margin:0 0 7px;color:var(--ch-public-ink);font-size:1.05rem; }
.ch-public-value p{ margin:0;color:var(--ch-public-muted);line-height:1.65;font-size:.92rem; }

.ch-public-footer{
    width:min(1050px,calc(100% - 40px));
    margin:32px auto 0;
    padding:24px 0 38px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    border-top:1px solid var(--ch-public-line);
    color:var(--ch-public-muted);
    font-size:.85rem;
}
.ch-public-footer-links{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
}
.ch-public-footer a{ color:#52627b;text-decoration:none; }
.ch-public-footer a:hover{ color:var(--ch-public-blue); }

/* ---------------- Authentication ---------------- */
.ch-auth-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:32px 18px;
    background:
        radial-gradient(circle at 90% 10%, rgba(21,198,179,.12), transparent 24%),
        radial-gradient(circle at 8% 90%, rgba(36,118,243,.10), transparent 25%),
        var(--ch-public-bg);
}
.ch-auth-shell{
    width:min(1040px,100%);
    display:grid;
    grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);
    background:#fff;
    border:1px solid var(--ch-public-line);
    border-radius:30px;
    overflow:hidden;
    box-shadow:0 30px 75px rgba(15,23,42,.12);
}
.ch-auth-brand-panel{
    position:relative;
    overflow:hidden;
    min-height:620px;
    padding:38px;
    color:#fff;
    background:
        radial-gradient(circle at 76% 15%, rgba(45,212,191,.25), transparent 28%),
        linear-gradient(155deg,#081a3b 0%,#0d2c60 60%,#1769aa 100%);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}
.ch-auth-brand-panel::after{
    content:"";
    position:absolute;
    width:260px;height:260px;border-radius:50%;
    background:rgba(255,255,255,.05);
    right:-100px;bottom:-80px;
}
.ch-auth-brand-row{
    position:relative;z-index:1;
    display:flex;align-items:center;gap:13px;
}
.ch-auth-brand-logo{
    width:54px;height:54px;border-radius:16px;
    display:grid;place-items:center;
    background:linear-gradient(135deg,var(--ch-public-blue),var(--ch-public-teal));
    box-shadow:0 12px 30px rgba(0,0,0,.20);
}
.ch-auth-brand-row strong{ display:block;font-size:1.18rem; }
.ch-auth-brand-row span{ display:block;color:#aebed6;font-size:.78rem;margin-top:2px; }
.ch-auth-copy{ position:relative;z-index:1; }
.ch-auth-copy span{
    display:inline-flex;
    border:1px solid rgba(255,255,255,.13);
    background:rgba(255,255,255,.07);
    border-radius:999px;
    padding:7px 11px;
    color:#caddf7;
    font-size:.78rem;
    font-weight:700;
}
.ch-auth-copy h1{
    margin:16px 0 12px;
    color:#fff;
    font-size:clamp(2rem,3vw,3rem);
    line-height:1.04;
    letter-spacing:-.04em;
}
.ch-auth-copy p{
    margin:0;
    color:#c9d7ed;
    line-height:1.7;
    font-size:.96rem;
}
.ch-auth-mini{
    position:relative;z-index:1;
    display:flex;gap:10px;flex-wrap:wrap;
    color:#bcd0eb;font-size:.78rem;
}
.ch-auth-mini span{ display:inline-flex;align-items:center;gap:6px; }
.ch-auth-mini i{ color:#5eead4; }

.ch-auth-form-panel{
    padding:46px 52px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.ch-auth-back{
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:max-content;
    margin-bottom:28px;
    color:#64748b;
    text-decoration:none;
    font-size:.88rem;
}
.ch-auth-back:hover{ color:var(--ch-public-blue); }
.ch-auth-heading{ margin-bottom:26px; }
.ch-auth-heading h2{
    margin:0 0 8px;
    color:var(--ch-public-ink);
    font-size:1.85rem;
    letter-spacing:-.025em;
}
.ch-auth-heading p{
    margin:0;color:var(--ch-public-muted);line-height:1.65;font-size:.94rem;
}
.ch-auth-form .form-group{ margin-bottom:16px; }
.ch-auth-form label{
    display:block;margin-bottom:7px;
    color:#26344d;font-size:.87rem;font-weight:750;
}
.ch-auth-form input[type=text],
.ch-auth-form input[type=email],
.ch-auth-form input[type=password]{
    width:100%;
    height:52px;
    border-radius:14px;
    border:1px solid #dce3ec;
    background:#fafbfd;
    padding:0 15px;
    color:#14213b;
    font-size:.94rem;
    transition:.18s ease;
}
.ch-auth-form input:focus{
    outline:none;border-color:#8cb9ff;background:#fff;
    box-shadow:0 0 0 4px rgba(36,118,243,.09);
}
.ch-auth-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}
.ch-auth-label-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}
.ch-auth-link{
    color:var(--ch-public-blue);
    font-size:.84rem;
    font-weight:700;
    text-decoration:none;
}
.ch-auth-link:hover{ text-decoration:underline; }
.ch-auth-password{ position:relative; }
.ch-auth-password input{ padding-right:50px !important; }
.ch-auth-toggle{
    position:absolute;
    right:9px;top:50%;transform:translateY(-50%);
    width:36px;height:36px;border:0;border-radius:10px;
    background:transparent;color:#718198;cursor:pointer;
}
.ch-auth-toggle:hover{ background:#eef5ff;color:var(--ch-public-blue); }
.ch-auth-submit{
    width:100%;
    height:52px;
    border:0;
    border-radius:14px;
    margin-top:3px;
    background:linear-gradient(135deg,var(--ch-public-blue),var(--ch-public-blue-2));
    color:#fff;
    font-weight:800;
    box-shadow:0 13px 26px rgba(36,118,243,.20);
    cursor:pointer;
}
.ch-auth-submit:hover{ transform:translateY(-1px); }
.ch-auth-submit:disabled{ opacity:.7;transform:none;cursor:not-allowed; }
.ch-auth-message{ min-height:22px;margin:11px 0 0;font-size:.88rem;font-weight:650; }
.ch-auth-switch{
    margin-top:20px;
    text-align:center;
    color:var(--ch-public-muted);
    font-size:.9rem;
}
.ch-auth-switch a{ color:var(--ch-public-blue);font-weight:750;text-decoration:none; }
.ch-auth-legal{
    margin-top:16px;
    text-align:center;
    color:#94a3b8;
    font-size:.76rem;
    line-height:1.6;
}
.ch-auth-legal a{ color:#718198;text-decoration:none; }
.ch-auth-legal a:hover{ color:var(--ch-public-blue); }

@media(max-width:900px){
    .ch-public-hero{
        grid-template-columns:1fr;
        padding:42px 30px;
        min-height:auto;
    }
    .ch-public-preview{ min-height:360px; }
    .ch-public-phone{ width:360px; }
    .ch-public-float-one{ right:10%; }
    .ch-public-float-two{ left:10%; }
    .ch-auth-shell{ grid-template-columns:1fr; max-width:620px; }
    .ch-auth-brand-panel{
        min-height:auto;
        padding:28px 30px;
        gap:36px;
    }
    .ch-auth-copy h1{ font-size:2rem; }
    .ch-auth-form-panel{ padding:34px 30px; }
}
@media(max-width:650px){
    .ch-public-nav{
        width:calc(100% - 26px);
        min-height:68px;
    }
    .ch-public-brand-copy span{ display:none; }
    .ch-public-nav-actions .ch-public-btn{
        min-height:40px;padding:0 13px;font-size:.85rem;
    }
    .ch-public-hero{
        width:calc(100% - 20px);
        margin-top:8px;
        padding:32px 22px 28px;
        border-radius:25px;
        gap:30px;
    }
    .ch-public-hero h1{ font-size:2.6rem; }
    .ch-public-hero-copy>p{ font-size:.98rem; }
    .ch-public-hero-actions{ flex-direction:column; }
    .ch-public-hero-actions .ch-public-btn{ width:100%; }
    .ch-public-proof{ gap:10px 16px; }
    .ch-public-preview{ min-height:340px; }
    .ch-public-phone{ width:100%; transform:none; }
    .ch-public-float{ display:none; }
    .ch-public-value-grid{ grid-template-columns:1fr; }
    .ch-public-values{ width:calc(100% - 20px); margin-top:26px; }
    .ch-public-values-head{text-align:left;padding:0 4px;}
    .ch-public-footer{
        width:calc(100% - 28px);
        flex-direction:column;
        align-items:flex-start;
        margin-top:26px;
    }
    .ch-auth-page{ padding:12px;align-items:start; }
    .ch-auth-shell{ border-radius:22px; }
    .ch-auth-brand-panel{
        padding:22px;
        gap:22px;
    }
    .ch-auth-copy span{ display:none; }
    .ch-auth-copy h1{
        font-size:1.65rem;
        margin-top:0;
    }
    .ch-auth-copy p{ font-size:.89rem; }
    .ch-auth-mini{ display:none; }
    .ch-auth-form-panel{ padding:28px 20px; }
    .ch-auth-back{ margin-bottom:20px; }
    .ch-auth-heading h2{ font-size:1.55rem; }
    .ch-auth-row{ grid-template-columns:1fr;gap:0; }
}
