/* ============================================================
   College Predictor — Premium Dark UI (JoSAA + CSAB)
   ============================================================ */

:root {
    --bg:           #080c16;
    --surface-1:    rgba(255,255,255,0.04);
    --surface-2:    rgba(255,255,255,0.07);
    --surface-3:    rgba(255,255,255,0.10);
    --border:       rgba(255,255,255,0.08);
    --border-hover: rgba(255,255,255,0.18);
    --primary:      #5b4cf0;
    --primary-h:    #7a6ff5;
    --accent:       #a855f7;
    --success:      #22c55e;
    --warning:      #eab308;
    --danger:       #ef4444;
    --text-1:       #f1f5f9;
    --text-2:       #94a3b8;
    --text-3:       #64748b;
    --radius-sm:    6px;
    --radius-md:    12px;
    --radius-lg:    16px;
    --radius-xl:    24px;
    --shadow-lg:    0 20px 60px rgba(0,0,0,0.4);

    /* CSAB theme accent */
    --csab-primary:   #0ea5e9;
    --csab-primary-h: #38bdf8;
    --csab-accent:    #06b6d4;
}

/* ============================================================ Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text-1);min-height:100vh;overflow-x:hidden;line-height:1.6;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
input,select{font-family:inherit;}

/* ============================================================ BG Orbs */
.bg-orb{position:fixed;border-radius:50%;filter:blur(80px);opacity:.35;z-index:-1;pointer-events:none;transition:background .5s ease;}
.orb-1{width:700px;height:700px;background:radial-gradient(circle,#4f46e5,transparent 70%);top:-200px;left:-200px;}
.orb-2{width:500px;height:500px;background:radial-gradient(circle,#a855f7,transparent 70%);top:20%;right:-150px;}
.orb-3{width:400px;height:400px;background:radial-gradient(circle,#0ea5e9,transparent 70%);bottom:-100px;left:30%;}

/* CSAB theme orbs */
body.csab-mode .orb-1{background:radial-gradient(circle,#0ea5e9,transparent 70%);}
body.csab-mode .orb-2{background:radial-gradient(circle,#06b6d4,transparent 70%);}
body.csab-mode .orb-3{background:radial-gradient(circle,#14b8a6,transparent 70%);}

/* ============================================================ Nav */
.topnav{
    display:flex;align-items:center;justify-content:space-between;
    padding:.75rem 2rem;
    background:rgba(8,12,22,0.8);
    backdrop-filter:blur(20px);
    border-bottom:1px solid var(--border);
    position:sticky;top:0;z-index:100;
}
.nav-brand{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.1rem;}
.nav-logo{font-size:1.5rem;}
.nav-links{display:flex;align-items:center;gap:1.2rem;}
.nav-link{color:var(--text-2);font-size:.9rem;transition:color .2s;}
.nav-link:hover{color:var(--text-1);}
.nav-badge{
    padding:.3rem .8rem;
    background:linear-gradient(135deg,rgba(91,76,240,.3),rgba(168,85,247,.3));
    border:1px solid rgba(168,85,247,.4);
    border-radius:20px;
    font-size:.8rem;font-weight:600;color:#c4b5fd;
    transition:all .3s ease;
}
body.csab-mode .nav-badge{
    background:linear-gradient(135deg,rgba(14,165,233,.3),rgba(6,182,212,.3));
    border-color:rgba(6,182,212,.5);
    color:#67e8f9;
}

/* ============================================================ Hero */
.hero{
    text-align:center;
    padding:4rem 2rem 2rem;
    max-width:800px;
    margin:0 auto;
}
.hero-tag{
    display:inline-block;
    padding:.4rem 1rem;
    background:rgba(91,76,240,.15);
    border:1px solid rgba(91,76,240,.4);
    border-radius:20px;
    font-size:.8rem;font-weight:600;color:#a5b4fc;
    margin-bottom:1.5rem;letter-spacing:.5px;
    text-transform:uppercase;
}
.hero h1{font-size:3.2rem;font-weight:800;letter-spacing:-1.5px;line-height:1.1;margin-bottom:1rem;}
.gradient-text{
    background:linear-gradient(135deg,#818cf8,#a855f7,#ec4899);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
body.csab-mode .gradient-text{
    background:linear-gradient(135deg,#38bdf8,#06b6d4,#14b8a6);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.hero p{color:var(--text-2);font-size:1.1rem;max-width:600px;margin:0 auto 2rem;}

/* Hero Stats */
.hero-stats{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;}
.stat-pill{
    display:flex;flex-direction:column;align-items:center;
    padding:.75rem 1.5rem;
    background:var(--surface-1);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    min-width:80px;
    transition:all .2s;
}
.stat-pill:hover{background:var(--surface-2);transform:translateY(-2px);}
.stat-num{font-size:1.4rem;font-weight:700;color:var(--text-1);}
.stat-label{font-size:.75rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;}

/* ============================================================ Platform Switcher */
.platform-switcher-container{
    display:flex;
    justify-content:center;
    padding:0 2rem 2rem;
}
.platform-switcher{
    display:flex;
    position:relative;
    background:var(--surface-1);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:6px;
    gap:0;
    width:fit-content;
}
.platform-tab{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    padding:1rem 2.5rem;
    border:none;
    background:transparent;
    color:var(--text-2);
    border-radius:var(--radius-md);
    transition:all .3s ease;
    min-width:220px;
}
.platform-tab:hover{color:var(--text-1);}
.platform-tab.active{color:white;}

.tab-icon{font-size:1.5rem;margin-bottom:2px;}
.tab-label{font-size:1rem;font-weight:700;letter-spacing:.5px;}
.tab-desc{font-size:.7rem;color:var(--text-3);transition:color .3s;}
.platform-tab.active .tab-desc{color:rgba(255,255,255,.7);}

/* Sliding tab indicator */
.tab-indicator{
    position:absolute;
    top:6px;
    left:6px;
    width:calc(50% - 6px);
    height:calc(100% - 12px);
    background:linear-gradient(135deg,var(--primary),var(--accent));
    border-radius:var(--radius-md);
    z-index:1;
    transition:all .35s cubic-bezier(.4,0,.2,1);
    box-shadow:0 4px 20px rgba(91,76,240,.4);
}
body.csab-mode .tab-indicator{
    transform:translateX(100%);
    background:linear-gradient(135deg,var(--csab-primary),var(--csab-accent));
    box-shadow:0 4px 20px rgba(14,165,233,.4);
}

/* Active platform badge in filter panel */
.panel-header-actions{display:flex;align-items:center;gap:.5rem;}
.active-platform-badge{
    padding:.2rem .6rem;
    border-radius:4px;
    font-size:.7rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.5px;
    background:linear-gradient(135deg,var(--primary),var(--accent));
    color:white;
    transition:all .3s ease;
}
body.csab-mode .active-platform-badge{
    background:linear-gradient(135deg,var(--csab-primary),var(--csab-accent));
}

/* ============================================================ Dashboard Layout */
.dashboard-container{
    display:grid;
    grid-template-columns:340px 1fr;
    gap:1.5rem;
    max-width:1500px;
    margin:0 auto;
    padding:0 2rem 3rem;
}
@media(max-width:1024px){.dashboard-container{grid-template-columns:1fr;}}

/* ============================================================ Glass Card */
.glass-card{
    background:var(--surface-1);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:1.5rem;
}

/* ============================================================ Filter Panel */
.filter-panel{align-self:start;position:sticky;top:72px;max-height:calc(100vh - 90px);overflow-y:auto;}
.filter-panel::-webkit-scrollbar{width:4px;}
.filter-panel::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;}
.panel-header h2{font-size:1.2rem;font-weight:700;}

.btn-ghost{
    padding:.35rem .8rem;
    background:transparent;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    color:var(--text-2);font-size:.8rem;
    transition:all .2s;
}
.btn-ghost:hover{border-color:var(--border-hover);color:var(--text-1);}

.divider{height:1px;background:var(--border);margin:1.2rem 0;}

.form-section{display:flex;flex-direction:column;gap:.9rem;}
.section-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);}

.form-group{display:flex;flex-direction:column;gap:.4rem;}
.form-group label{font-size:.85rem;font-weight:600;color:var(--text-2);}
.required-star{color:#f87171;}

/* Rank Input */
.rank-input-wrapper{position:relative;}
.rank-icon{
    position:absolute;left:.9rem;top:50%;transform:translateY(-50%);
    color:var(--primary-h);font-weight:700;font-size:1rem;z-index:1;
}
.rank-group input{padding-left:2.5rem;font-size:1.2rem;font-weight:600;}

input[type=number],input[type=text],.native-select{
    width:100%;
    padding:.7rem 1rem;
    background:rgba(0,0,0,0.3);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    color:var(--text-1);
    outline:none;
    transition:all .2s;
    font-size:.95rem;
}
input:focus,.native-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,76,240,.2);}
body.csab-mode input:focus,body.csab-mode .native-select:focus{border-color:var(--csab-primary);box-shadow:0 0 0 3px rgba(14,165,233,.2);}
input[type=number]::-webkit-inner-spin-button{opacity:.5;}

/* Sort Order Toggle */
.toggle-group{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
.toggle-btn{
    padding:.55rem;
    background:rgba(0,0,0,0.2);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    color:var(--text-2);font-size:.8rem;font-weight:600;
    transition:all .2s;
}
.toggle-btn.active{background:var(--primary);border-color:var(--primary);color:white;}
body.csab-mode .toggle-btn.active{background:var(--csab-primary);border-color:var(--csab-primary);}
.toggle-btn:not(.active):hover{border-color:var(--border-hover);color:var(--text-1);}

/* Choices.js Dark Overrides */
.choices{width:100%;}
.choices__inner{
    background:rgba(0,0,0,0.3) !important;
    border:1px solid var(--border) !important;
    border-radius:var(--radius-sm) !important;
    min-height:44px;padding:.4rem .6rem .2rem !important;
    transition:border-color .2s,box-shadow .2s;
}
.choices.is-focused .choices__inner{border-color:var(--primary) !important;box-shadow:0 0 0 3px rgba(91,76,240,.2) !important;}
body.csab-mode .choices.is-focused .choices__inner{border-color:var(--csab-primary) !important;box-shadow:0 0 0 3px rgba(14,165,233,.2) !important;}
.choices__input{background:transparent !important;color:var(--text-1) !important;font-size:.85rem !important;}
.choices__input::placeholder{color:var(--text-3);}
.choices__list--dropdown,.choices__list[aria-expanded]{
    background:#0f172a !important;
    border:1px solid var(--border) !important;
    border-radius:var(--radius-md) !important;
    box-shadow:0 15px 40px rgba(0,0,0,.6) !important;
    overflow:hidden;
}
.choices__list--dropdown .choices__item{color:var(--text-2);font-size:.85rem;padding:.6rem .9rem;}
.choices__list--dropdown .choices__item--selectable.is-highlighted{background:var(--primary) !important;color:white !important;}
body.csab-mode .choices__list--dropdown .choices__item--selectable.is-highlighted{background:var(--csab-primary) !important;}
.choices__list--multiple .choices__item{
    background:var(--primary) !important;
    border:none !important;border-radius:5px !important;
    font-size:.78rem !important;margin:.1rem .2rem .1rem 0 !important;
}
body.csab-mode .choices__list--multiple .choices__item{background:var(--csab-primary) !important;}
.choices[data-type*=select-multiple] .choices__button{border-left:1px solid rgba(255,255,255,.25);}

/* Predict Button */
.btn-predict{
    width:100%;margin-top:1.5rem;padding:1rem;
    background:linear-gradient(135deg,var(--primary),var(--accent));
    color:white;border:none;border-radius:var(--radius-md);
    font-size:1rem;font-weight:700;
    display:flex;align-items:center;justify-content:center;gap:.6rem;
    transition:all .25s;
    box-shadow:0 4px 20px rgba(91,76,240,.4);
}
body.csab-mode .btn-predict{
    background:linear-gradient(135deg,var(--csab-primary),var(--csab-accent));
    box-shadow:0 4px 20px rgba(14,165,233,.4);
}
.btn-predict:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(91,76,240,.6);}
body.csab-mode .btn-predict:hover{box-shadow:0 8px 30px rgba(14,165,233,.6);}
.btn-predict:active{transform:translateY(-1px);}

.loader{
    display:none;width:20px;height:20px;
    border:2px solid rgba(255,255,255,.3);border-top:2px solid white;
    border-radius:50%;animation:spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============================================================ Results Toolbar */
.results-toolbar{
    display:flex;align-items:center;justify-content:space-between;
    flex-wrap:wrap;gap:1rem;
    margin-bottom:1.5rem;
    padding:1rem 1.5rem;
}
.toolbar-left{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;flex:1;}
.toolbar-left h2{font-size:1.1rem;font-weight:700;white-space:nowrap;}
#active-filters-pills{display:flex;flex-wrap:wrap;gap:.4rem;}
.filter-pill{
    padding:.25rem .65rem;
    background:rgba(91,76,240,.2);
    border:1px solid rgba(91,76,240,.4);
    border-radius:20px;font-size:.75rem;color:#a5b4fc;
}
body.csab-mode .filter-pill{
    background:rgba(14,165,233,.2);
    border-color:rgba(14,165,233,.4);
    color:#7dd3fc;
}

.toolbar-right{display:flex;align-items:center;gap:.75rem;}

/* Search Box */
.search-box{position:relative;display:flex;align-items:center;}
.search-icon{position:absolute;left:.8rem;font-size:.9rem;pointer-events:none;}
.search-box input{
    padding:.55rem .55rem .55rem 2.2rem;
    width:240px;
    background:rgba(0,0,0,0.3);
    border:1px solid var(--border);border-radius:var(--radius-md);
    color:var(--text-1);font-size:.9rem;outline:none;
    transition:all .2s;
}
.search-box input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,76,240,.2);width:300px;}
body.csab-mode .search-box input:focus{border-color:var(--csab-primary);box-shadow:0 0 0 3px rgba(14,165,233,.2);}
.clear-btn{
    position:absolute;right:.6rem;
    background:transparent;border:none;color:var(--text-3);
    font-size:.9rem;padding:.2rem;transition:color .2s;
}
.clear-btn:hover{color:var(--text-1);}

/* View Toggle */
.view-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;}
.view-btn{
    padding:.45rem .7rem;background:transparent;border:none;
    color:var(--text-3);font-size:1rem;transition:all .2s;
}
.view-btn.active{background:var(--primary);color:white;}
body.csab-mode .view-btn.active{background:var(--csab-primary);}
.view-btn:not(.active):hover{background:var(--surface-3);color:var(--text-1);}

/* ============================================================ Card Grid */
.card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
    gap:1.2rem;
}
.card-grid.list-mode{grid-template-columns:1fr;}

/* Landing/Empty States */
.landing-state,.empty-state{
    text-align:center;padding:5rem 2rem;
    grid-column:1/-1;color:var(--text-2);
}
.landing-state .landing-icon,.empty-state .empty-icon{font-size:3.5rem;margin-bottom:1rem;display:block;}
.landing-state h3,.empty-state h3{font-size:1.3rem;font-weight:700;color:var(--text-1);margin-bottom:.5rem;}
.landing-state p,.empty-state p{color:var(--text-2);max-width:400px;margin:0 auto;}

/* ============================================================ College Card */
.college-card{
    background:var(--surface-1);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    padding:1.4rem;
    display:flex;flex-direction:column;gap:1rem;
    transition:all .25s ease;
    position:relative;overflow:hidden;
}
.college-card::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(91,76,240,.05),transparent 60%);
    opacity:0;transition:opacity .25s;pointer-events:none;
}
body.csab-mode .college-card::before{
    background:linear-gradient(135deg,rgba(14,165,233,.05),transparent 60%);
}
.college-card:hover{border-color:rgba(91,76,240,.4);transform:translateY(-5px);box-shadow:0 15px 40px rgba(0,0,0,.3);}
body.csab-mode .college-card:hover{border-color:rgba(14,165,233,.4);}
.college-card:hover::before{opacity:1;}

/* Card List Mode Override */
.card-grid.list-mode .college-card{flex-direction:row;align-items:center;gap:1.5rem;padding:1rem 1.4rem;}
.card-grid.list-mode .card-body{flex:1;}
.card-grid.list-mode .card-footer{margin-top:0;border-top:none;padding-top:0;flex-shrink:0;grid-template-columns:repeat(2,auto);}

.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;}
.college-name{font-size:1.05rem;font-weight:700;color:var(--text-1);line-height:1.35;}
.program-name{font-size:.875rem;color:var(--text-2);line-height:1.5;}

/* Platform source tag on card */
.card-source-tag{
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    padding:.15rem .5rem;
    border-radius:4px;
    font-size:.65rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.3px;
    margin-top:.3rem;
}
.card-source-tag.josaa{background:rgba(91,76,240,.15);color:#a5b4fc;}
.card-source-tag.csab{background:rgba(14,165,233,.15);color:#7dd3fc;}

/* Chance Badge */
.badge{
    padding:.35rem .9rem;border-radius:20px;
    font-size:.75rem;font-weight:700;letter-spacing:.3px;
    white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;
}
.badge.high{background:rgba(34,197,94,.15);color:#4ade80;border:1px solid rgba(34,197,94,.3);}
.badge.medium{background:rgba(234,179,8,.15);color:#fde047;border:1px solid rgba(234,179,8,.3);}
.badge.low{background:rgba(239,68,68,.12);color:#f87171;border:1px solid rgba(239,68,68,.25);}

/* Card Footer Stats */
.card-footer{
    display:grid;grid-template-columns:repeat(2,1fr);
    gap:.75rem 1rem;
    border-top:1px solid var(--border);
    padding-top:1rem;
}
.stat-item{}
.stat-item-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;color:var(--text-3);margin-bottom:.2rem;}
.stat-item-value{font-size:.95rem;font-weight:600;color:var(--text-1);}
.rank-value{color:#a78bfa;font-size:1.1rem;}
body.csab-mode .rank-value{color:#38bdf8;}

/* Institute Type Tag */
.inst-tag{
    display:inline-block;padding:.15rem .5rem;
    border-radius:4px;font-size:.72rem;font-weight:700;
}
.inst-tag.iit{background:rgba(239,68,68,.15);color:#fca5a5;}
.inst-tag.nit{background:rgba(59,130,246,.15);color:#93c5fd;}
.inst-tag.iiit{background:rgba(16,185,129,.15);color:#6ee7b7;}
.inst-tag.gfti{background:rgba(245,158,11,.15);color:#fcd34d;}

/* ============================================================ Pagination */
.pagination-bar{
    display:flex;align-items:center;justify-content:center;
    gap:.5rem;margin-top:2rem;flex-wrap:wrap;
}
.btn-page{
    padding:.5rem .9rem;
    background:var(--surface-1);border:1px solid var(--border);
    border-radius:var(--radius-sm);color:var(--text-2);font-size:.9rem;font-weight:600;
    transition:all .2s;min-width:44px;
}
.btn-page:not(:disabled):hover{background:var(--primary);border-color:var(--primary);color:white;}
body.csab-mode .btn-page:not(:disabled):hover{background:var(--csab-primary);border-color:var(--csab-primary);}
.btn-page:disabled{opacity:.4;cursor:not-allowed;}

.page-numbers{display:flex;gap:.4rem;}
.page-num{
    width:36px;height:36px;display:flex;align-items:center;justify-content:center;
    border-radius:var(--radius-sm);background:var(--surface-1);border:1px solid var(--border);
    cursor:pointer;font-size:.85rem;font-weight:600;color:var(--text-2);transition:all .2s;
}
.page-num:hover{background:var(--surface-2);color:var(--text-1);}
.page-num.active{background:var(--primary);border-color:var(--primary);color:white;}
body.csab-mode .page-num.active{background:var(--csab-primary);border-color:var(--csab-primary);}
.page-ellipsis{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--text-3);}

/* ============================================================ Footer */
.site-footer{
    text-align:center;padding:2rem;
    border-top:1px solid var(--border);
    color:var(--text-3);font-size:.85rem;
    margin-top:2rem;
}

/* ============================================================ Responsive */
@media(max-width:768px){
    .hero h1{font-size:2.2rem;}
    .dashboard-container{padding:0 1rem 3rem;}
    .search-box input{width:180px;}
    .search-box input:focus{width:200px;}
    .card-grid{grid-template-columns:1fr;}
    .platform-tab{min-width:140px;padding:.8rem 1.2rem;}
    .tab-desc{display:none;}
}

/* ============================================================ Transition Pulse */
@keyframes themePulse {
    0%{opacity:1;}
    50%{opacity:.6;}
    100%{opacity:1;}
}
.theme-transitioning .platform-switcher{animation:themePulse .3s ease;}
