/* ═══════════════════════════════════════════════
   style.css — MHT CET Advanced College Predictor
   TwinsparkTech 2025
   ═══════════════════════════════════════════════ */

:root {
  --blue-50:#eff6ff;--blue-100:#dbeafe;--blue-200:#bfdbfe;
  --blue-400:#60a5fa;--blue-500:#3b82f6;--blue-600:#2563eb;--blue-700:#1d4ed8;--blue-900:#1e3a8a;
  --indigo-500:#6366f1;--indigo-600:#4f46e5;
  --green-50:#f0fdf4;--green-100:#dcfce7;--green-500:#22c55e;--green-600:#16a34a;--green-700:#15803d;
  --amber-50:#fffbeb;--amber-100:#fef3c7;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;
  --red-50:#fef2f2;--red-100:#fee2e2;--red-400:#f87171;--red-500:#ef4444;--red-600:#dc2626;
  --purple-50:#faf5ff;--purple-100:#f3e8ff;--purple-500:#a855f7;--purple-600:#9333ea;--purple-700:#7c3aed;
  --gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;
  --gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;
  --gray-800:#1f2937;--gray-900:#111827;
  --font-sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-xl:24px;
  --shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:0 8px 32px rgba(0,0,0,.10);--shadow-xl:0 20px 60px rgba(0,0,0,.14);
  --header-h:64px;--max-w:1140px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-sans);background:var(--gray-50);color:var(--gray-800);line-height:1.6;min-height:100vh;padding-top:var(--header-h);}
a{color:var(--blue-600);text-decoration:none;}a:hover{text-decoration:underline;}
button{font-family:inherit;cursor:pointer;}input,select{font-family:inherit;}
.hidden{display:none!important;}

/* ── Loader ─────────────────────────────────── */
.loader-screen{position:fixed;inset:0;background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 50%,#2563eb 100%);z-index:99999;display:flex;align-items:center;justify-content:center;}
.loader-inner{text-align:center;color:#fff;width:220px;}
.loader-ring{width:56px;height:56px;border:4px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite;margin:0 auto 20px;}
.loader-brand{font-size:1.25rem;font-weight:800;letter-spacing:-.02em;}
.loader-sub{font-size:.8rem;opacity:.7;margin:4px 0 14px;}
.loader-bar-wrap{height:4px;background:rgba(255,255,255,.2);border-radius:100px;overflow:hidden;}
.loader-bar{height:100%;background:linear-gradient(90deg,#60a5fa,#a78bfa);border-radius:100px;width:0;transition:width .4s ease;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── Header ─────────────────────────────────── */
.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--gray-200);z-index:1000;transition:box-shadow .2s;}
.site-header.scrolled{box-shadow:var(--shadow-md);}
.header-inner{max-width:var(--max-w);margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.header-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--gray-900);font-weight:800;font-size:.95rem;}
.logo-icon{font-size:1.2rem;}
.logo-tag{background:var(--blue-100);color:var(--blue-700);font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:100px;letter-spacing:.04em;text-transform:uppercase;}
.header-nav{display:flex;align-items:center;gap:16px;}
.nav-link{font-size:.875rem;font-weight:500;color:var(--gray-600);}
.nav-link:hover{color:var(--blue-600);text-decoration:none;}
.shortlist-nav-btn{display:flex;align-items:center;gap:6px;background:var(--amber-50);border:1.5px solid var(--amber-400);color:#92400e;padding:6px 14px;border-radius:100px;font-size:.8rem;font-weight:700;transition:all .15s;}
.shortlist-nav-btn:hover{background:var(--amber-400);color:#fff;}
.shortlist-count-badge{background:var(--amber-500);color:#fff;border-radius:100px;min-width:18px;height:18px;font-size:.65rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;}

/* ── Hero ────────────────────────────────────── */
.hero{position:relative;background:linear-gradient(160deg,#0f172a 0%,#1e3a8a 45%,#1d4ed8 100%);overflow:hidden;padding:72px 24px 80px;text-align:center;}
.hero-bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04)1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04)1px,transparent 1px);background-size:40px 40px;}
.hero-content{position:relative;max-width:760px;margin:0 auto;}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.9);font-size:.75rem;font-weight:600;padding:5px 14px;border-radius:100px;margin-bottom:22px;letter-spacing:.04em;text-transform:uppercase;}
.badge-dot{width:7px;height:7px;background:#4ade80;border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.6;transform:scale(1.3);}}
.hero-title{font-size:clamp(1.8rem,4.5vw,3rem);font-weight:800;color:#fff;line-height:1.15;letter-spacing:-.03em;margin-bottom:18px;}
.gradient-text{background:linear-gradient(90deg,#93c5fd,#c4b5fd,#6ee7b7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-subtitle{font-size:.975rem;color:rgba(255,255,255,.72);max-width:580px;margin:0 auto 28px;line-height:1.7;}
.hero-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;}
.stat-pill{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.9);padding:6px 16px;border-radius:100px;font-size:.82rem;font-weight:500;}
.stat-pill strong{color:#fff;font-weight:800;margin-right:3px;}

/* ── Main / Tabs ─────────────────────────────── */
.main-content{max-width:var(--max-w);margin:0 auto;padding:0 20px 80px;}
.tab-bar{display:flex;gap:6px;margin:-28px 0 20px;position:relative;z-index:10;}
.tab-btn{padding:10px 22px;border:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:.875rem;font-weight:700;color:var(--gray-500);background:rgba(255,255,255,.6);backdrop-filter:blur(8px);transition:all .15s;letter-spacing:-.01em;}
.tab-btn.active{background:#fff;color:var(--blue-600);box-shadow:0 -2px 10px rgba(37,99,235,.12);}
.tab-btn span{background:var(--blue-600);color:#fff;border-radius:100px;padding:1px 7px;font-size:.7rem;margin-left:5px;}
.tab-panel{animation:fadeIn .25s ease;}

/* ── Predictor Card ──────────────────────────── */
.predictor-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:36px 40px;margin-bottom:32px;}
.card-header{margin-bottom:28px;}
.card-title{font-size:1.5rem;font-weight:800;color:var(--gray-900);letter-spacing:-.02em;}
.card-desc{color:var(--gray-500);font-size:.85rem;margin-top:4px;}

/* ── Form ────────────────────────────────────── */
.predictor-form{display:flex;flex-direction:column;gap:20px;}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.form-group{display:flex;flex-direction:column;gap:6px;}
.form-label{font-size:.8rem;font-weight:600;color:var(--gray-700);display:flex;align-items:center;gap:6px;}
.select-wrapper{position:relative;}
.select-wrapper::after{content:'▾';position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--gray-400);font-size:.72rem;}
.form-select{width:100%;padding:10px 32px 10px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:.875rem;color:var(--gray-800);background:#fff;appearance:none;transition:border-color .15s,box-shadow .15s;}
.form-select:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.15);}
.form-input{width:100%;padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:var(--radius);font-size:.875rem;color:var(--gray-800);background:#fff;transition:border-color .15s,box-shadow .15s;}
.form-input:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(59,130,246,.15);}
.form-input::placeholder{color:var(--gray-300);}
.checkbox-row{display:flex;gap:20px;align-items:center;padding:10px 0;}
.checkbox-label{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--gray-700);cursor:pointer;}
.checkbox-input{display:none;}
.checkbox-custom{width:18px;height:18px;border:1.5px solid var(--gray-300);border-radius:4px;background:#fff;flex-shrink:0;transition:all .15s;position:relative;}
.checkbox-input:checked+.checkbox-custom{background:var(--blue-600);border-color:var(--blue-600);}
.checkbox-input:checked+.checkbox-custom::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;}
.info-btn{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--blue-400);background:var(--blue-50);color:var(--blue-600);font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:all .15s;}
.info-btn:hover{background:var(--blue-600);color:#fff;}
.info-box{background:var(--blue-50);border:1px solid var(--blue-200);border-left:4px solid var(--blue-500);border-radius:var(--radius);padding:12px 16px;display:flex;gap:12px;font-size:.8rem;color:var(--gray-700);line-height:1.6;animation:fadeIn .2s ease;}
.info-box-icon{font-size:.95rem;flex-shrink:0;}
.filters-section{border:1.5px dashed var(--gray-200);border-radius:var(--radius-lg);padding:20px;background:var(--gray-50);}
.filters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.filters-label{font-size:.8rem;font-weight:700;color:var(--gray-700);}
.filters-hint{font-size:.72rem;color:var(--gray-400);background:var(--gray-200);padding:2px 8px;border-radius:100px;}

/* Safety Zone Filter Row */
.safety-filter-row{margin-top:14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.zone-chips{display:flex;gap:8px;flex-wrap:wrap;}
.zone-chip{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;font-size:.775rem;font-weight:600;cursor:pointer;border:1.5px solid transparent;transition:all .15s;}
.zone-chip input{display:none;}
.zone-chip.safe{background:var(--green-50);border-color:var(--green-500);color:var(--green-700);}
.zone-chip.moderate{background:var(--amber-50);border-color:var(--amber-500);color:#92400e;}
.zone-chip.ambitious{background:var(--purple-50);border-color:var(--purple-600);color:var(--purple-700);}
.zone-chip.reach{background:var(--red-50);border-color:var(--red-500);color:var(--red-600);}
.zone-chip:has(input:not(:checked)){opacity:.45;filter:grayscale(.5);}

.predict-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;background:linear-gradient(135deg,var(--blue-600),var(--indigo-600));color:#fff;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 20px rgba(37,99,235,.35);}
.predict-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(37,99,235,.45);}
.predict-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.btn-icon{font-size:1.1rem;}
.form-disclaimer{margin-top:16px;font-size:.72rem;color:var(--gray-400);text-align:center;line-height:1.5;}
.form-disclaimer a{color:var(--blue-500);}

/* ── Stats Dashboard ──────────────────────────── */
.stats-dashboard{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px;}
.stat-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:16px 12px;text-align:center;box-shadow:var(--shadow-sm);transition:transform .15s;}
.stat-card:hover{transform:translateY(-2px);}
.stat-icon{font-size:1.4rem;margin-bottom:6px;}
.stat-num{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1;}
.stat-lbl{font-size:.7rem;color:var(--gray-500);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:4px;}
.stat-card.safe .stat-num{color:var(--green-600);}
.stat-card.moderate .stat-num{color:var(--amber-600);}
.stat-card.ambitious .stat-num{color:var(--purple-700);}
.stat-card.reach .stat-num{color:var(--red-600);}
.stat-card.total .stat-num{color:var(--blue-600);}
.stat-card.avg-score .stat-num{color:var(--gray-800);}

/* ── Results Bar ─────────────────────────────── */
.results-summary-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:12px 18px;box-shadow:var(--shadow-sm);}
.summary-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.summary-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.results-count-badge{background:var(--blue-600);color:#fff;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:100px;}
.results-mode-info{font-size:.78rem;color:var(--gray-500);}
.search-box{display:flex;align-items:center;gap:7px;background:var(--gray-50);border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:7px 11px;transition:border-color .15s;}
.search-box:focus-within{border-color:var(--blue-500);}
.search-input{border:none;background:transparent;font-size:.85rem;color:var(--gray-800);width:160px;outline:none;}
.search-input::placeholder{color:var(--gray-400);}
.sort-wrapper.select-wrapper::after{right:9px;}
.sort-select{padding:7px 30px 7px 10px;font-size:.78rem;}
.view-toggle{display:flex;background:var(--gray-100);border-radius:var(--radius);padding:3px;gap:2px;}
.view-btn{background:transparent;border:none;padding:6px 9px;border-radius:7px;color:var(--gray-500);display:flex;align-items:center;transition:all .15s;}
.view-btn.active{background:#fff;color:var(--blue-600);box-shadow:var(--shadow-sm);}
.export-btn-sm{background:var(--blue-600);color:#fff;border:none;border-radius:var(--radius);padding:7px 14px;font-size:.78rem;font-weight:600;transition:all .15s;}
.export-btn-sm:hover{background:var(--blue-700);}

/* ── Legend Row ──────────────────────────────── */
.legend-row{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:18px;font-size:.775rem;}
.legend-group{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.legend-title{font-weight:700;color:var(--gray-600);}
.trend-chip{padding:2px 9px;border-radius:100px;font-weight:600;font-size:.72rem;}
.trend-chip.tight{background:var(--red-100);color:var(--red-600);}
.trend-chip.loose{background:var(--green-100);color:var(--green-600);}
.trend-chip.stable{background:var(--gray-100);color:var(--gray-600);}
.vol-chip{padding:2px 9px;border-radius:100px;font-weight:600;font-size:.72rem;background:var(--gray-100);color:var(--gray-600);}

/* ── College Card ─────────────────────────────── */
.college-list.card-view-mode{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:20px;}
.college-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,border-color .18s;animation:cardIn .3s ease both;display:flex;flex-direction:column;}
@keyframes cardIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.college-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--blue-200);}

/* Zone border accent */
.college-card.zone-safe     {border-top:3px solid var(--green-500);}
.college-card.zone-moderate {border-top:3px solid var(--amber-500);}
.college-card.zone-ambitious{border-top:3px solid var(--purple-600);}
.college-card.zone-reach    {border-top:3px solid var(--red-500);}

.card-top{padding:14px 16px 10px;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.card-college-info{flex:1;min-width:0;}
.card-college-name{font-size:.92rem;font-weight:700;color:var(--gray-900);line-height:1.3;margin-bottom:3px;word-break:break-word;}
.card-college-code{font-size:.7rem;color:var(--gray-400);font-family:var(--font-mono);}
.card-badges{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex-shrink:0;}

/* Zone Badge */
.zone-badge{font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:100px;white-space:nowrap;}
.zone-badge.safe     {background:var(--green-100);color:var(--green-700);}
.zone-badge.moderate {background:var(--amber-100);color:#92400e;}
.zone-badge.ambitious{background:var(--purple-100);color:var(--purple-700);}
.zone-badge.reach    {background:var(--red-100);color:var(--red-600);}

/* Chance Badge */
.chance-badge{font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:100px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;}
.chance-badge.very-high{background:#d1fae5;color:#065f46;}
.chance-badge.high     {background:var(--green-100);color:var(--green-600);}
.chance-badge.medium   {background:var(--amber-100);color:#92400e;}
.chance-badge.low      {background:var(--red-100);color:#991b1b;}
.chance-badge.very-low {background:#fce7f3;color:#9d174d;}

/* Smart Score + Probability Row */
.card-scores-row{padding:12px 16px;display:flex;align-items:center;gap:14px;background:var(--gray-50);border-bottom:1px solid var(--gray-100);}
.score-ring{flex-shrink:0;}
.score-details{flex:1;}
.prob-bar-wrap{width:100%;}
.prob-bar-label{display:flex;justify-content:space-between;font-size:.7rem;color:var(--gray-500);margin-bottom:4px;}
.prob-pct{font-weight:700;color:var(--gray-800);}
.prob-bar{height:8px;background:var(--gray-200);border-radius:100px;overflow:hidden;}
.prob-fill{height:100%;border-radius:100px;transition:width .6s ease;}
.card-right-meta{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex-shrink:0;}

/* Volatility Tag */
.vol-tag{font-size:.68rem;font-weight:700;padding:3px 8px;border-radius:100px;white-space:nowrap;}
.vol-tag.low-vol {background:var(--green-100);color:var(--green-700);}
.vol-tag.med-vol {background:var(--amber-100);color:#92400e;}
.vol-tag.high-vol{background:var(--red-100);color:var(--red-600);}

/* Round Trend Tag */
.round-trend-tag{font-size:.68rem;font-weight:600;padding:3px 8px;border-radius:100px;white-space:nowrap;}
.round-trend-tag.round-tight {background:var(--red-100);color:var(--red-600);}
.round-trend-tag.round-loose {background:var(--green-100);color:var(--green-600);}
.round-trend-tag.round-stable{background:var(--gray-100);color:var(--gray-600);}

.card-body{padding:12px 16px;flex:1;}
.card-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;margin-bottom:12px;}
.meta-label{font-size:.67rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1px;}
.meta-value{font-size:.82rem;font-weight:600;color:var(--gray-800);}
.branch-val{font-size:.78rem;}
.card-trend{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:100px;font-size:.68rem;font-weight:600;}
.card-trend.tight{background:var(--red-100);color:var(--red-600);}
.card-trend.loose{background:var(--green-100);color:var(--green-600);}
.card-trend.stable{background:var(--gray-100);color:var(--gray-600);}

/* Rounds Table */
.rounds-table{width:100%;border-collapse:collapse;font-size:.75rem;margin-bottom:10px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--gray-100);}
.rounds-table thead{background:var(--gray-50);}
.rounds-table th{padding:5px 7px;text-align:center;font-weight:600;color:var(--gray-500);font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--gray-200);}
.rounds-table td{padding:5px 7px;text-align:center;color:var(--gray-700);font-family:var(--font-mono);font-size:.75rem;border-bottom:1px solid var(--gray-100);}
.rounds-table tr:last-child td{border-bottom:none;}
.rounds-table tbody tr:hover{background:var(--blue-50);}
.round-highlight{font-weight:700;color:var(--blue-700);}

/* Weighted + YoY Row */
.weighted-row{background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--radius-sm);padding:7px 10px;font-size:.72rem;color:var(--blue-700);display:flex;gap:14px;flex-wrap:wrap;margin-bottom:8px;}
.weighted-row strong{font-weight:700;}
.yoy-badge{font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:100px;background:var(--gray-100);}

/* Smart Insight Strip */
.insight-strip{background:linear-gradient(135deg,var(--amber-50),#fffbf0);border:1px solid var(--amber-200);border-radius:var(--radius-sm);padding:8px 11px;font-size:.78rem;color:#92400e;line-height:1.5;margin-bottom:6px;}

/* Why Shown Strip — Rule 4 */
.why-shown-strip{background:var(--blue-50);border:1px solid var(--blue-200);border-radius:var(--radius-sm);padding:7px 11px;font-size:.72rem;color:var(--blue-700);line-height:1.5;margin-bottom:6px;}

/* Low Probability Warning — Rule 4 */
.low-prob-warning{background:var(--red-50);border:1.5px solid var(--red-400);border-radius:var(--radius-sm);padding:6px 11px;font-size:.75rem;font-weight:700;color:var(--red-600);display:flex;align-items:center;gap:6px;margin-bottom:6px;}

/* Card Actions */
.card-actions{padding:10px 16px;border-top:1px solid var(--gray-100);display:flex;gap:8px;flex-wrap:wrap;background:var(--gray-50);}
.action-btn{padding:6px 12px;border:1.5px solid var(--gray-200);background:#fff;border-radius:var(--radius-sm);font-size:.72rem;font-weight:600;color:var(--gray-600);transition:all .15s;}
.action-btn:hover{border-color:var(--blue-400);color:var(--blue-600);background:var(--blue-50);}
.shortlist-btn:hover{border-color:var(--amber-400);color:#92400e;background:var(--amber-50);}
.shortlist-btn.in-shortlist{background:var(--amber-50);border-color:var(--amber-400);color:#92400e;}

/* ── Table View ──────────────────────────────── */
.college-list.table-view-mode{display:block;}
.table-scroll{width:100%;overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--gray-200);background:#fff;box-shadow:var(--shadow-sm);}
.data-table{width:100%;border-collapse:collapse;font-size:.8rem;}
.data-table thead{background:linear-gradient(135deg,var(--blue-700),var(--indigo-600));color:#fff;position:sticky;top:0;z-index:2;}
.data-table th{padding:10px 12px;text-align:left;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;}
.data-table td{padding:10px 12px;border-bottom:1px solid var(--gray-100);color:var(--gray-700);vertical-align:middle;}
.data-table tbody tr:last-child td{border-bottom:none;}
.data-table tbody tr:hover{background:var(--blue-50);}
.data-table tbody tr:nth-child(even){background:var(--gray-50);}
.data-table tbody tr:nth-child(even):hover{background:var(--blue-50);}
.tbl-college-name{font-weight:600;color:var(--gray-900);max-width:180px;}
.tbl-code{font-family:var(--font-mono);font-size:.7rem;color:var(--gray-400);}
.tbl-num{font-family:var(--font-mono);font-size:.78rem;}
.prob-pill{display:inline-block;color:#fff;padding:2px 8px;border-radius:100px;font-size:.7rem;font-weight:700;}
.smart-cell{font-weight:700;color:var(--blue-700);}
.tbl-sl-btn{background:none;border:none;font-size:1rem;color:var(--gray-400);cursor:pointer;transition:color .15s;}
.tbl-sl-btn.in-sl{color:var(--amber-500);}
.tbl-sl-btn:hover{color:var(--amber-500);}

/* ── Pagination ──────────────────────────────── */
.pagination{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-top:24px;}
.page-btn{min-width:36px;height:36px;padding:0 9px;border:1.5px solid var(--gray-200);background:#fff;color:var(--gray-700);border-radius:var(--radius);font-weight:600;font-size:.82rem;transition:all .15s;}
.page-btn:hover:not(:disabled):not(.active){border-color:var(--blue-400);color:var(--blue-600);background:var(--blue-50);}
.page-btn.active{background:var(--blue-600);border-color:var(--blue-600);color:#fff;}
.page-btn:disabled{opacity:.35;cursor:not-allowed;}
.page-dots{color:var(--gray-400);padding:0 4px;font-size:.9rem;}

/* ── Empty State ─────────────────────────────── */
.empty-state{text-align:center;padding:64px 24px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);}
.empty-icon{font-size:3rem;margin-bottom:16px;}
.empty-title{font-size:1.2rem;font-weight:700;color:var(--gray-800);margin-bottom:8px;}
.empty-desc{color:var(--gray-500);font-size:.875rem;}

/* ── Export Row ──────────────────────────────── */
.export-row{margin-top:24px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}
.export-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:var(--blue-600);color:#fff;border:none;border-radius:var(--radius-lg);font-weight:600;font-size:.875rem;transition:all .15s;box-shadow:0 4px 14px rgba(37,99,235,.25);cursor:pointer;}
.export-btn:hover{background:var(--blue-700);transform:translateY(-1px);}
.export-btn.secondary{background:#fff;color:var(--gray-600);border:1.5px solid var(--gray-200);}
.export-btn.secondary:hover{border-color:var(--red-400);color:var(--red-600);background:var(--red-50);}

/* ── Shortlist Header ────────────────────────── */
.shortlist-header{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-xl);padding:28px 32px;margin-bottom:20px;box-shadow:var(--shadow-sm);}

/* ── Modals ──────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeOverlay .2s ease;}
@keyframes fadeOverlay{from{opacity:0;}to{opacity:1;}}
.modal-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);position:relative;width:100%;animation:slideUp .25s ease;max-height:90vh;overflow-y:auto;}
@keyframes slideUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.modal-close{position:sticky;float:right;top:16px;right:16px;margin:12px 12px 0 0;background:var(--gray-100);border:none;border-radius:50%;width:30px;height:30px;font-size:.8rem;color:var(--gray-600);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;z-index:1;}
.modal-close:hover{background:var(--red-100);color:var(--red-600);}
.modal-title{font-size:1.25rem;font-weight:800;color:var(--gray-900);letter-spacing:-.02em;padding:24px 24px 0;}

/* Compare Modal */
.compare-modal{max-width:860px;padding-bottom:24px;}
.compare-body{padding:16px 24px;}
.compare-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.compare-table thead{background:linear-gradient(135deg,var(--blue-700),var(--indigo-600));color:#fff;}
.compare-table th{padding:12px 16px;text-align:center;font-weight:700;font-size:.8rem;}
.compare-table .col-a,.compare-table .col-b{width:38%;}
.compare-table .col-mid{width:24%;color:rgba(255,255,255,.8);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;}
.compare-table td{padding:10px 14px;border-bottom:1px solid var(--gray-100);text-align:center;color:var(--gray-700);}
.compare-table td.compare-label{font-weight:600;color:var(--gray-600);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50);}
.compare-table td.winner{background:var(--green-50);color:var(--green-700);font-weight:700;}

/* Insight Modal */
.insight-modal{max-width:680px;padding-bottom:24px;}
.insight-header{padding:24px 24px 0;}
.insight-badges{display:flex;gap:8px;flex-wrap:wrap;padding:12px 24px;}
.insight-scores{display:flex;align-items:center;gap:16px;padding:12px 24px;background:var(--gray-50);margin:0 24px;border-radius:var(--radius-lg);}
.insight-strip{margin:12px 24px 0;background:linear-gradient(135deg,var(--amber-50),#fffbf0);border:1px solid var(--amber-200);border-radius:var(--radius);padding:10px 14px;font-size:.82rem;color:#92400e;line-height:1.5;}
.insight-table{width:calc(100% - 48px);margin:16px 24px 0;border-collapse:collapse;font-size:.8rem;}
.insight-table tr{border-bottom:1px solid var(--gray-100);}
.insight-table th{background:var(--gray-800);color:#fff;padding:8px 12px;text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;}
.insight-table td{padding:8px 12px;color:var(--gray-700);}
.insight-table td:first-child{font-weight:600;color:var(--gray-600);width:45%;}

/* ── Footer ──────────────────────────────────── */
.site-footer{background:var(--gray-900);color:var(--gray-400);padding:28px 24px;text-align:center;}
.footer-inner{max-width:var(--max-w);margin:0 auto;}
.footer-brand{display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-weight:800;font-size:.95rem;margin-bottom:10px;}
.footer-disclaimer{font-size:.72rem;color:var(--gray-600);}

/* ── Animations ──────────────────────────────── */
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* ── Responsive ──────────────────────────────── */
@media(max-width:900px){
  .stats-dashboard{grid-template-columns:repeat(3,1fr);}
  .college-list.card-view-mode{grid-template-columns:1fr;}
}
@media(max-width:768px){
  .predictor-card{padding:20px 16px;}
  .hero{padding:52px 16px 56px;}
  .hero-title{font-size:1.8rem;}
  .form-row{grid-template-columns:1fr;}
  .results-summary-bar{flex-direction:column;align-items:flex-start;}
  .summary-right{width:100%;justify-content:flex-start;}
  .search-input{width:120px;}
  .stats-dashboard{grid-template-columns:repeat(2,1fr);}
  .card-meta-grid{grid-template-columns:1fr;}
  .compare-table .col-a,.compare-table .col-b{font-size:.72rem;}
  .tab-btn{padding:8px 14px;font-size:.78rem;}
}
@media(max-width:480px){
  :root{--header-h:56px;}
  .hero-stats{gap:5px;}
  .stat-pill{font-size:.74rem;padding:5px 11px;}
  .filters-section{padding:14px;}
  .stats-dashboard{grid-template-columns:1fr 1fr;}
}

/* ── Gap Badge (v2 engine) ───────────────── */
.gap-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:100px;font-family:var(--font-mono);}
.gap-pos{background:#dcfce7;color:#15803d;}
.gap-neg{background:#fee2e2;color:#dc2626;}
.gap-na{background:#f3f4f6;color:#6b7280;}
.gap-filter-wrap .select-wrapper{display:inline-block;}

/* ═══════════════════════════════════════════════
   QUOTA TOGGLE — Maharashtra State / All India Merit
   ═══════════════════════════════════════════════ */

.quota-toggle-row {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #f0f7ff 0%, #f5f3ff 100%);
  border: 1.5px solid var(--blue-200);
  border-radius: var(--radius-lg);
  padding: 10px 16px;
  margin-bottom: 4px;
  flex-wrap: wrap;
}

.quota-toggle-label {
  font-size: .78rem;
  font-weight: 700;
  color: var(--gray-500);
  text-transform: uppercase;
  letter-spacing: .06em;
  white-space: nowrap;
}

.quota-toggle-group {
  display: flex;
  background: var(--gray-100);
  border-radius: var(--radius);
  padding: 3px;
  gap: 3px;
}

.quota-btn {
  padding: 7px 18px;
  font-size: .84rem;
  font-weight: 600;
  border: none;
  border-radius: calc(var(--radius) - 2px);
  background: transparent;
  color: var(--gray-500);
  cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s;
  white-space: nowrap;
  line-height: 1.3;
}

.quota-btn:hover:not(.active) {
  background: var(--gray-200);
  color: var(--gray-700);
}

.quota-btn.active {
  background: #fff;
  color: var(--blue-700);
  box-shadow: 0 1px 4px rgba(0,0,0,.10);
}

/* Purple accent for AI mode to visually signal the different quota */
#quotaBtnAI.active {
  color: #7c3aed;
}

.quota-hint {
  font-size: .76rem;
  color: var(--gray-400);
  font-style: italic;
  margin-left: auto;
  white-space: nowrap;
}

/* Fields that hide when AI quota is active */
.ai-hide { transition: opacity .15s; }

@media (max-width: 640px) {
  .quota-toggle-row { gap: 10px; padding: 10px 12px; }
  .quota-btn        { padding: 7px 11px; font-size: .8rem; }
  .quota-hint       { display: none; }
}
