/* ═══════════════════════════════════════════════════════════════
   JEE Counsellor — Components CSS
   Buttons, Cards, Badges, Forms, Tables, FAQ, Premium Gate
   ═══════════════════════════════════════════════════════════════ */

/* ── Buttons ── */
.btn{padding:.6rem 1.25rem;border-radius:var(--r-full);font-weight:600;font-size:.875rem;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:.42rem;border:none;text-decoration:none;font-family:var(--font-sans);line-height:1.2;white-space:nowrap;}
.btn-primary{background:var(--blue-600);color:white;}
.btn-primary:hover{background:var(--blue-700);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.btn-secondary{background:var(--gray-900);color:white;}
.btn-secondary:hover{background:var(--gray-800);}
.btn-outline{background:transparent;color:var(--blue-600);border:1.5px solid var(--blue-600);}
.btn-outline:hover{background:var(--blue-50);}
.btn-ghost{background:transparent;color:var(--gray-600);border:1px solid var(--border);}
.btn-ghost:hover{background:var(--gray-50);color:var(--text);}
.btn-success{background:var(--green-600);color:white;}
.btn-success:hover{background:var(--green-700);}
.btn-danger{background:var(--red-500);color:white;}
.btn-danger:hover{background:var(--red-600);}
.btn-orange{background:var(--orange-500);color:white;}
.btn-orange:hover{background:var(--orange-600);}
.btn-sm{padding:.38rem .85rem;font-size:.78rem;}
.btn-lg{padding:.8rem 2rem;font-size:1rem;}
.btn-xl{padding:1rem 2.5rem;font-size:1.05rem;}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;}

/* ── Cards ── */
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.4rem;box-shadow:var(--shadow-sm);transition:box-shadow .2s;}
.card:hover{box-shadow:var(--shadow-md);}
.card-title{font-size:.95rem;font-weight:700;color:var(--gray-900);margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.4rem;}
.card-sm{padding:1rem;}

/* ── Metric Cards ── */
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;}
.metric-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.25rem 1.4rem;display:flex;align-items:flex-start;gap:1rem;box-shadow:var(--shadow-sm);}
.metric-icon{width:48px;height:48px;border-radius:var(--r-lg);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;}
.metric-icon.blue{background:var(--blue-100);}
.metric-icon.green{background:var(--green-100);}
.metric-icon.orange{background:var(--orange-100);}
.metric-icon.purple{background:var(--purple-100);}
.metric-icon.teal{background:var(--teal-100);}
.metric-value{font-size:1.55rem;font-weight:800;color:var(--gray-900);line-height:1.1;font-family:var(--font-sans);}
.metric-label{font-size:.76rem;color:var(--gray-500);margin-top:.18rem;}
.metric-change{font-size:.72rem;font-weight:600;margin-top:.25rem;}
.metric-change.up{color:var(--green-600);}
.metric-change.down{color:var(--red-500);}
@media(max-width:900px){.metrics-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.metrics-grid{grid-template-columns:1fr 1fr;gap:.6rem;}}

/* ── Badges ── */
.badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--r-full);font-size:.7rem;font-weight:700;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap;}
.badge-iit{background:var(--iit-bg);color:var(--iit-color);border-color:var(--iit-border);}
.badge-nit{background:var(--nit-bg);color:var(--nit-color);border-color:var(--nit-border);}
.badge-iiit{background:var(--iiit-bg);color:var(--iiit-color);border-color:var(--iiit-border);}
.badge-gfti{background:var(--gfti-bg);color:var(--gfti-color);border-color:var(--gfti-border);}
.badge-state{background:var(--state-bg);color:var(--state-color);border-color:var(--state-border);}
.badge-nirf{background:var(--gray-900);color:white;}
.badge-guide{background:var(--blue-100);color:var(--blue-700);}
.badge-tips{background:var(--green-100);color:var(--green-700);}
.badge-news{background:var(--orange-100);color:var(--orange-600);}
.badge-cutoff{background:var(--purple-100);color:var(--purple-700);}

/* ── Chance Score Badges ── */
.chance-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .7rem;border-radius:var(--r-full);font-size:.8rem;font-weight:700;white-space:nowrap;}
.chance-high{background:var(--green-100);color:var(--green-600);}
.chance-medium{background:var(--blue-100);color:var(--blue-600);}
.chance-low{background:var(--orange-100);color:var(--orange-500);}
.chance-reach{background:var(--red-100);color:var(--red-500);}

/* ── Trend ── */
.trend-up{color:var(--green-600);font-weight:700;}
.trend-down{color:var(--red-500);font-weight:700;}
.trend-stable{color:var(--gray-400);}

/* ── Premium Gate ── */
.premium-gate-wrap{position:relative;overflow:hidden;}
.premium-gate{position:absolute;inset:0;background:rgba(255,255,255,.9);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:inherit;}
.premium-gate-inner{text-align:center;padding:2rem 1.5rem;}
.premium-gate-icon{font-size:2.5rem;margin-bottom:.6rem;}
.premium-gate-title{font-size:1.05rem;font-weight:800;color:var(--gray-900);margin-bottom:.35rem;}
.premium-gate-desc{font-size:.84rem;color:var(--text-muted);margin-bottom:1.25rem;max-width:280px;margin-left:auto;margin-right:auto;}

/* ── Forms ── */
.form-group{margin-bottom:1rem;}
.form-label{display:block;font-size:.74rem;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.32rem;}
.form-input,.form-select,.form-textarea{width:100%;padding:.6rem .9rem;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text);font-size:.88rem;font-family:var(--font-sans);outline:none;transition:border-color .15s;box-sizing:border-box;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--blue-400);box-shadow:0 0 0 3px rgba(37,99,235,.08);}
.form-input:disabled,.form-select:disabled{opacity:.6;cursor:not-allowed;background:var(--gray-50);}
.form-hint{font-size:.7rem;color:var(--text-dim);margin-top:.22rem;}
.form-error{font-size:.75rem;color:var(--red-500);margin-top:.22rem;}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;}
.form-full{grid-column:1/-1;}
@media(max-width:600px){.form-grid-2{grid-template-columns:1fr;}}

/* ── Tables ── */
.data-table{width:100%;border-collapse:collapse;font-size:.85rem;}
.data-table th{padding:.7rem 1rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500);background:var(--gray-50);border-bottom:2px solid var(--border);white-space:nowrap;}
.data-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);color:var(--gray-700);vertical-align:middle;}
.data-table tbody tr:hover{background:var(--blue-50);}
.data-table tbody tr:last-child td{border-bottom:none;}
.table-wrap{overflow-x:auto;border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--shadow-sm);}
.table-best{background:var(--green-50)!important;}

/* ── Info Boxes ── */
.ibox{padding:.65rem .9rem;border-radius:var(--r-lg);font-size:.83rem;line-height:1.65;display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.9rem;}
.ibox-blue{background:var(--blue-50);border:1px solid var(--blue-100);color:#1D4ED8;}
.ibox-green{background:var(--green-50);border:1px solid var(--green-100);color:var(--green-700);}
.ibox-orange{background:var(--orange-50);border:1px solid var(--orange-100);color:var(--orange-600);}
.ibox-red{background:var(--red-50);border:1px solid var(--red-100);color:var(--red-600);}

/* ── Tabs ── */
.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--border);margin-bottom:1.5rem;overflow-x:auto;scrollbar-width:none;}
.tabs::-webkit-scrollbar{display:none;}
.tab-btn{padding:.6rem 1.1rem;border-radius:var(--r-lg) var(--r-lg) 0 0;font-size:.85rem;font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;transition:.15s;white-space:nowrap;font-family:var(--font-sans);}
.tab-btn:hover{color:var(--text);background:var(--gray-50);}
.tab-btn.active{color:var(--blue-600);border-bottom:2px solid var(--blue-600);margin-bottom:-2px;}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* ── FAQ ── */
.faq-item{border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:.5rem;overflow:hidden;transition:border-color .2s;}
.faq-item.open{border-color:var(--blue-400);}
.faq-q{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;cursor:pointer;user-select:none;}
.faq-q-text{font-size:.92rem;font-weight:600;color:var(--gray-900);}
.faq-arrow{color:var(--text-dim);transition:transform .3s;font-size:.8rem;}
.faq-item.open .faq-arrow{transform:rotate(180deg);color:var(--blue-600);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1);}
.faq-item.open .faq-a{max-height:800px;}
.faq-a-inner{padding:.25rem 1.25rem 1.1rem;font-size:.88rem;color:var(--text-muted);line-height:1.8;border-top:1px solid var(--border);}
.faq-a-inner strong{color:var(--gray-800);}
.faq-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--orange-500);margin:1.5rem 0 .75rem;}

/* ── Range Slider ── */
.range-wrap{padding:.25rem 0;}
input[type=range]{width:100%;accent-color:var(--blue-600);}

/* ── Checkbox Items (filter sidebar) ── */
.filter-checks{display:flex;flex-direction:column;gap:.4rem;}
.check-item{display:flex;align-items:center;gap:.4rem;font-size:.82rem;cursor:pointer;}
.check-item input[type=checkbox]{accent-color:var(--blue-600);width:15px;height:15px;cursor:pointer;}
.check-count{margin-left:auto;font-size:.7rem;color:var(--text-dim);font-weight:600;}
.filter-section{margin-bottom:1rem;}
.filter-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-500);margin-bottom:.4rem;display:block;}
.filter-title{display:flex;align-items:center;justify-content:space-between;font-size:.9rem;font-weight:700;color:var(--gray-900);margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border);}

/* ── Pricing Cards ── */
.pricing-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:800px;margin:0 auto;}
.pricing-card{background:var(--white);border:1px solid var(--border);border-radius:var(--r-2xl);padding:2rem;position:relative;transition:all .2s;}
.pricing-card.popular{border:2px solid var(--blue-600);box-shadow:var(--shadow-lg);}
.pricing-popular-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--blue-600);color:white;font-size:.72rem;font-weight:700;padding:.25rem .9rem;border-radius:var(--r-full);white-space:nowrap;}
.pricing-name{font-size:1.1rem;font-weight:800;margin-bottom:.3rem;color:var(--gray-900);}
.pricing-price{font-size:2rem;font-weight:800;color:var(--gray-900);margin-bottom:.15rem;}
.pricing-price span{font-size:.85rem;font-weight:500;color:var(--text-muted);}
.pricing-period{font-size:.78rem;color:var(--text-muted);margin-bottom:1.5rem;}
.pricing-features{list-style:none;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:.55rem;}
.pricing-features li{font-size:.86rem;color:var(--gray-700);display:flex;align-items:center;gap:.5rem;}
.pricing-features li .fa-check{color:var(--green-600);font-size:.7rem;}
.pricing-features li .fa-times{color:var(--gray-300);font-size:.7rem;}
.pricing-features li.disabled{color:var(--text-dim);}
@media(max-width:600px){.pricing-grid{grid-template-columns:1fr;}}

/* ── Auth Card ── */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--nav-h) - 200px);padding:2rem 1rem;}
.auth-card{width:100%;max-width:420px;}
.auth-title{font-size:1.5rem;font-weight:800;text-align:center;margin-bottom:.3rem;}
.auth-subtitle{text-align:center;color:var(--text-muted);font-size:.88rem;margin-bottom:1.5rem;}
.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--text-dim);font-size:.78rem;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--white);cursor:pointer;font-size:.88rem;font-weight:600;transition:all .15s;font-family:var(--font-sans);}
.google-btn:hover{background:var(--gray-50);border-color:var(--border-strong);}
.auth-link{text-align:center;margin-top:1rem;font-size:.84rem;color:var(--text-muted);}
.auth-link a{color:var(--blue-600);font-weight:600;}
.auth-link a:hover{text-decoration:underline;}

/* ── Skeleton Loaders ── */
.skeleton {
  background: #eee;
  background: linear-gradient(110deg, #ececec 8%, #f5f5f5 18%, #ececec 33%);
  border-radius: var(--r-md);
  background-size: 200% 100%;
  animation: 1.5s shimmer linear infinite;
  min-height: 20px;
}
@keyframes shimmer {
  to {
    background-position-x: -200%;
  }
}

