/* ═══════════════════════════════════════════════════════════════════
   PreRatings — Institutional Financial Platform v4
   Design Language: Modern Fintech — Bright, Clean, Confident
   ═══════════════════════════════════════════════════════════════════ */

:root {
  /* Primary — Vibrant Blue */
  --primary: #2563eb;
  --primary-dark: #1d4ed8;
  --primary-deep: #1e3a8a;
  --primary-light: #3b82f6;
  --primary-bg: #eff6ff;
  --primary-border: rgba(37,99,235,0.12);

  /* Accent — Warm Gold */
  --gold: #f59e0b;
  --gold-dark: #d97706;
  --gold-light: #fbbf24;
  --gold-pale: #fef3c7;
  --gold-bg: rgba(245,158,11,0.08);
  --gold-border: rgba(245,158,11,0.22);

  /* Dark surfaces (ticker, footer, CTA) */
  --dark: #0f172a;
  --dark-surface: #1e293b;
  --dark-border: rgba(255,255,255,0.08);

  /* Legacy navy aliases — remapped to new palette */
  --navy-deep: #0f172a;
  --navy: #1e293b;
  --navy-light: #334155;
  --navy-surface: #1e293b;
  --navy-border: rgba(255,255,255,0.08);

  /* Neutrals */
  --white: #ffffff;
  --off-white: #fafafa;
  --gray-bg: #f1f5f9;
  --gray-50: #f8fafc;
  --gray-100: #f1f5f9;
  --gray-200: #e2e8f0;
  --gray-300: #cbd5e1;
  --gray-400: #94a3b8;
  --gray-500: #64748b;
  --gray-600: #475569;
  --gray-700: #334155;
  --gray-800: #1e293b;
  --gray-900: #0f172a;

  /* Rating Colors — Bright */
  --rate-aaa: #059669; --rate-aa: #10b981; --rate-a: #34d399;
  --rate-bbb: #f59e0b; --rate-bb: #f97316; --rate-b: #ef4444;
  --rate-c: #dc2626; --rate-d: #64748b;

  /* Semantic */
  --green: #059669; --green-bg: #ecfdf5;
  --red: #dc2626; --red-bg: #fef2f2;
  --amber: #d97706; --amber-bg: #fffbeb;

  /* Layout */
  --nav-h: 64px; --sidebar-w: 264px; --content-max: 1240px;
  --radius-sm: 6px; --radius: 8px; --radius-lg: 12px; --radius-xl: 16px;

  /* Shadows */
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.03);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow: 0 2px 8px rgba(0,0,0,0.06);
  --shadow-md: 0 6px 20px rgba(0,0,0,0.08);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.1);
  --shadow-xl: 0 24px 60px rgba(0,0,0,0.14);

  --font: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ═══════════════════════════════════════════════════════════════════
   RESET & BASE
   ═══════════════════════════════════════════════════════════════════ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font); font-size:15px; font-weight:400; line-height:1.6;
  color:var(--gray-700); background:var(--white);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
::selection { background:var(--primary-bg); color:var(--primary-dark); }

/* ═══════════════════════════════════════════════════════════════════
   TYPOGRAPHY
   ═══════════════════════════════════════════════════════════════════ */
h1,h2,h3,h4,h5,h6 { color:var(--gray-900); line-height:1.2; }
h1 { font-size:2.75rem; font-weight:800; letter-spacing:-0.035em; }
h2 { font-size:1.75rem; font-weight:800; letter-spacing:-0.025em; }
h3 { font-size:1.125rem; font-weight:700; letter-spacing:-0.01em; }
h4 { font-size:0.9375rem; font-weight:700; }
.text-xs { font-size:0.6875rem; }
.text-sm { font-size:0.8125rem; }
.text-base { font-size:0.9375rem; }
.text-lg { font-size:1.125rem; }
.text-muted { color:var(--gray-400); }
.font-mono { font-family:'SF Mono','Fira Code','Consolas',monospace; }
.text-gold { color:var(--gold); }
.text-white { color:var(--white); }
.font-semibold { font-weight:600; }
.font-bold { font-weight:700; }
.font-extrabold { font-weight:800; }
.uppercase { text-transform:uppercase; letter-spacing:0.06em; }
.tabular { font-feature-settings:"tnum"; font-variant-numeric:tabular-nums; }
.label {
  font-size:0.625rem; font-weight:700; color:var(--gray-400);
  text-transform:uppercase; letter-spacing:0.1em;
}

/* ═══════════════════════════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════════════════════════ */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  padding:10px 22px; border-radius:var(--radius); font-weight:600;
  font-size:0.875rem; font-family:var(--font); cursor:pointer;
  border:1.5px solid transparent; text-decoration:none;
  transition:all 0.2s ease; letter-spacing:-0.01em; white-space:nowrap;
}
.btn:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.btn-gold { background:var(--primary); color:var(--white); border-color:var(--primary); font-weight:700; }
.btn-gold:hover { background:var(--primary-dark); border-color:var(--primary-dark); transform:translateY(-1px); box-shadow:0 4px 20px rgba(37,99,235,0.35); }
.btn-primary { background:var(--primary); color:var(--white); border-color:var(--primary); }
.btn-primary:hover { background:var(--primary-dark); transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--gray-700); border-color:var(--gray-200); }
.btn-outline:hover { background:var(--gray-bg); border-color:var(--gray-300); }
.btn-outline-light { background:transparent; color:var(--gray-600); border-color:var(--gray-300); }
.btn-outline-light:hover { border-color:var(--primary); color:var(--primary); background:var(--primary-bg); }
.btn-lg { padding:13px 30px; font-size:0.9375rem; border-radius:var(--radius-lg); }
.btn-sm { padding:5px 14px; font-size:0.75rem; border-radius:var(--radius-sm); }
.btn-link { background:none; border:none; color:var(--primary); font-weight:600; padding:0; cursor:pointer; font-family:var(--font); font-size:0.875rem; text-decoration:none; }
.btn-link:hover { text-decoration:underline; color:var(--primary-dark); }

/* ═══════════════════════════════════════════════════════════════════
   LIVE TICKER TAPE
   ═══════════════════════════════════════════════════════════════════ */
.ticker-wrap {
  width:100%; overflow:hidden; background:var(--navy-deep);
  border-bottom:1px solid var(--navy-border); height:38px;
  position:fixed; top:0; z-index:101;
}
.ticker-track {
  display:flex; animation:tickerScroll 60s linear infinite;
  white-space:nowrap; height:100%; align-items:center;
}
.ticker-track:hover { animation-play-state:paused; }
.ticker-item {
  display:inline-flex; align-items:center; gap:8px; padding:0 28px;
  font-size:0.75rem; color:var(--gray-300); flex-shrink:0;
}
.ticker-item .t-dot { width:5px; height:5px; border-radius:50%; background:var(--gold); }
.ticker-item strong { color:var(--white); font-weight:600; }
.ticker-item .t-rating {
  padding:1px 8px; border-radius:3px; font-weight:700; font-size:0.6875rem;
  background:rgba(13,124,77,0.25); color:#4ade80;
}

@keyframes tickerScroll {
  0% { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}

/* ═══════════════════════════════════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════════════════════════════════ */
.nav {
  position:fixed; top:38px; left:0; width:100%; height:var(--nav-h);
  background:rgba(255,255,255,0.97); backdrop-filter:blur(12px);
  z-index:100; border-bottom:1px solid var(--gray-200);
  display:flex; align-items:center; padding:0 40px;
}
.nav-spacer { height:calc(var(--nav-h) + 38px); }
.nav .logo { font-size:1.25rem; font-weight:900; color:var(--gray-900); letter-spacing:-0.03em; white-space:nowrap; }
.nav .logo span { color:var(--primary); }
.nav .logo .tagline { font-size:0.5rem; font-weight:500; color:var(--gray-400); letter-spacing:0.12em; text-transform:uppercase; display:block; line-height:1; margin-top:1px; }
.nav-links { display:flex; gap:4px; margin-left:44px; flex:1; }
.nav-links a {
  color:var(--gray-600); text-decoration:none; font-size:0.8125rem;
  font-weight:500; padding:8px 16px; border-radius:var(--radius);
  transition:all 0.15s; white-space:nowrap;
}
.nav-links a:hover { color:var(--primary); background:var(--primary-bg); }
.nav-actions { display:flex; align-items:center; gap:8px; margin-left:auto; }
.nav-actions .btn { font-size:0.8125rem; padding:7px 16px; }

/* Hamburger toggle (mobile only) */
.nav-toggle { display:none; }

@keyframes menuSlide { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
@keyframes linkFade { from { opacity:0; transform:translateX(-10px); } to { opacity:1; transform:translateX(0); } }

/* ═══════════════════════════════════════════════════════════════════
   HERO — Split layout, data-rich
   ═══════════════════════════════════════════════════════════════════ */
.hero {
  padding:110px 40px 70px; margin-top:calc(var(--nav-h) + 38px);
  background:linear-gradient(180deg, #eff6ff 0%, #ffffff 40%, #f8fafc 100%);
  position:relative; overflow:hidden;
}
.hero::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(ellipse 700px 500px at 75% -15%, rgba(37,99,235,0.06) 0%, transparent 70%),
    radial-gradient(ellipse 500px 400px at 25% 85%, rgba(245,158,11,0.05) 0%, transparent 70%);
  pointer-events:none;
}
.hero-inner { max-width:var(--content-max); margin:0 auto; display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center; position:relative; z-index:1; }
.hero-content .hero-label { font-size:0.625rem; font-weight:700; color:var(--primary); text-transform:uppercase; letter-spacing:0.14em; margin-bottom:16px; display:block; }
.hero-content h1 { color:var(--gray-900); font-size:3.25rem; margin-bottom:20px; line-height:1.08; }
.hero-content h1 span { color:var(--primary); }
.hero-content h1 .highlight { position:relative; display:inline-block; }
.hero-content h1 .highlight::after { content:''; position:absolute; bottom:6px; left:0; right:0; height:8px; background:rgba(37,99,235,0.12); z-index:-1; }
.hero-content p { color:var(--gray-600); font-size:1.0625rem; line-height:1.65; margin-bottom:28px; max-width:500px; }
.hero-actions { display:flex; gap:12px; align-items:center; margin-bottom:36px; }
.hero-stats-row { display:flex; gap:36px; padding-top:24px; border-top:1px solid var(--gray-200); }
.hero-stat .hs-num { font-size:1.75rem; font-weight:800; color:var(--gray-900); letter-spacing:-0.02em; }
.hero-stat .hs-label { font-size:0.625rem; color:var(--gray-500); text-transform:uppercase; letter-spacing:0.08em; margin-top:2px; }

/* Hero Panel — live rating card */
.hero-panel {
  background:var(--white); border:1px solid var(--gray-200);
  border-radius:var(--radius-xl); padding:28px; box-shadow:var(--shadow-lg);
}
.hero-panel .hp-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.hero-panel .hp-header .hp-label { font-size:0.625rem; font-weight:700; color:var(--gray-500); text-transform:uppercase; letter-spacing:0.1em; }
.hero-panel .hp-header .hp-badge { font-size:0.625rem; color:var(--green); font-weight:600; display:inline-flex; align-items:center; gap:5px; }
.hero-panel .hp-header .hp-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }
.hero-panel .hp-row { display:flex; justify-content:space-between; align-items:center; padding:13px 0; border-bottom:1px solid var(--gray-100); }
.hero-panel .hp-row:last-child { border-bottom:none; }
.hero-panel .hp-company { font-weight:600; color:var(--gray-800); font-size:0.875rem; }
.hero-panel .hp-sector { font-size:0.6875rem; color:var(--gray-500); display:block; margin-top:1px; }
.hero-panel .hp-rating { font-size:0.8125rem; font-weight:800; padding:3px 12px; border-radius:3px; }
.hero-panel .hp-rating.strong { background:var(--green-bg); color:var(--green); }
.hero-panel .hp-rating.mid { background:var(--amber-bg); color:var(--amber); }
.hero-panel .hp-rating.weak { background:var(--red-bg); color:var(--red); }
.hero-panel .hp-all { display:block; text-align:center; margin-top:14px; font-size:0.75rem; color:var(--primary); font-weight:600; text-decoration:none; }
.hero-panel .hp-all:hover { text-decoration:underline; }

@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:0.4; } }

/* ═══════════════════════════════════════════════════════════════════
   MARKET DATA STRIP
   ═══════════════════════════════════════════════════════════════════ */
.data-strip { background:var(--white); border-bottom:1px solid var(--gray-100); padding:0 40px; }
.data-strip-inner { max-width:var(--content-max); margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding:22px 0; }
.data-strip .ds-item { text-align:center; }
.data-strip .ds-num { font-size:1.5rem; font-weight:800; color:var(--gray-900); letter-spacing:-0.02em; }
.data-strip .ds-label { font-size:0.625rem; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.08em; margin-top:2px; }
.data-strip .ds-div { width:1px; height:32px; background:var(--gray-200); }

/* ═══════════════════════════════════════════════════════════════════
   SECTION LAYOUTS
   ═══════════════════════════════════════════════════════════════════ */
.section { padding:80px 40px; }
.section.alt { background:var(--gray-bg); }
.section.navy { background:var(--primary-deep); color:var(--white); }
.section.navy h2 { color:var(--white); }
.section.navy p { color:rgba(255,255,255,0.75); }
.page-hero { padding:60px 40px 20px; margin-top:calc(var(--nav-h) + 38px); background:var(--navy); color:var(--white); }
.page-hero h2 { color:var(--white); }
.page-hero p { color:rgba(255,255,255,0.75); }
.section-inner { max-width:var(--content-max); margin:0 auto; }
.section-header { text-align:center; margin-bottom:50px; }
.section-header h2 { margin-bottom:12px; }
.section-header p { color:var(--gray-500); max-width:540px; margin:0 auto; font-size:0.9375rem; }
.section-header .label { margin-bottom:12px; display:block; }

/* ═══════════════════════════════════════════════════════════════════
   STEPS — 3-step with connectors
   ═══════════════════════════════════════════════════════════════════ */
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; position:relative; }
.steps::before { content:''; position:absolute; top:36px; left:calc(16.67% + 20px); right:calc(16.67% + 20px); height:2px; background:var(--gray-200); }
.step { text-align:center; position:relative; z-index:1; }
.step-icon { width:72px; height:72px; border-radius:50%; background:var(--white); border:2px solid var(--primary-border); display:inline-flex; align-items:center; justify-content:center; margin-bottom:16px; position:relative; z-index:1; box-shadow:var(--shadow); }
.step-icon .si-num { font-size:1.5rem; font-weight:800; color:var(--primary); }
.step h4 { margin-bottom:8px; font-size:1rem; }
.step p { font-size:0.875rem; color:var(--gray-500); line-height:1.65; }

/* ═══════════════════════════════════════════════════════════════════
   SECTOR PERFORMANCE GRID (CSS heatmap)
   ═══════════════════════════════════════════════════════════════════ */
.sector-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:4px; }
.sector-cell {
  padding:16px; border-radius:var(--radius); text-align:center;
  border:1px solid var(--gray-200); transition:all 0.2s;
  background:var(--white); box-shadow:var(--shadow-xs);
}
.sector-cell:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); z-index:1; }
.sector-cell .sc-icon { font-size:1.25rem; margin-bottom:4px; }
.sector-cell .sc-name { font-size:0.75rem; font-weight:600; color:var(--gray-900); }
.sector-cell .sc-indicator { display:inline-block; margin-top:6px; padding:2px 10px; border-radius:10px; font-size:0.625rem; font-weight:700; }
.sector-cell .sc-indicator.positive { background:var(--green-bg); color:var(--green); }
.sector-cell .sc-indicator.stable { background:var(--amber-bg); color:var(--amber); }
.sector-cell .sc-indicator.cautious { background:var(--red-bg); color:var(--red); }

/* ═══════════════════════════════════════════════════════════════════
   RATING DISTRIBUTION CHART (CSS)
   ═══════════════════════════════════════════════════════════════════ */
.chart-bars { display:flex; align-items:flex-end; gap:8px; height:200px; padding:0 4px; }
.chart-bar-wrap { flex:1; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end; }
.chart-bar {
  width:100%; max-width:56px; border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  transition:height 0.4s ease; position:relative; min-height:4px;
}
.chart-bar .bar-val { position:absolute; top:-20px; left:50%; transform:translateX(-50%); font-size:0.6875rem; font-weight:700; color:var(--gray-700); }
.chart-bar-wrap .bar-label { margin-top:8px; font-size:0.6875rem; font-weight:700; color:var(--gray-500); }

/* ═══════════════════════════════════════════════════════════════════
   RESEARCH CARDS
   ═══════════════════════════════════════════════════════════════════ */
.research-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(360px,1fr)); gap:18px; }
.research-card {
  background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius-lg);
  padding:22px 24px; transition:all 0.2s; cursor:pointer; display:flex; flex-direction:column;
  box-shadow:var(--shadow-xs);
}
.research-card:hover { box-shadow:var(--shadow-md); border-color:var(--primary-border); }
.research-card .rc-meta { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.research-card .rc-type { font-weight:700; text-transform:uppercase; letter-spacing:0.06em; font-size:0.625rem; }
.research-card .rc-type.rating { color:var(--primary); }
.research-card .rc-type.report { color:var(--navy); }
.research-card .rc-type.insight { color:var(--green); }
.research-card .rc-date { font-size:0.75rem; color:var(--gray-400); }
.research-card .rc-title { font-size:0.9375rem; font-weight:700; color:var(--gray-900); margin-bottom:8px; line-height:1.45; flex:1; }
.research-card .rc-title:hover { color:var(--primary); }
.research-card .rc-excerpt { font-size:0.8125rem; color:var(--gray-500); line-height:1.6; margin-bottom:12px; }
.research-card .rc-tags { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; }
.rc-tag { padding:3px 10px; border-radius:20px; font-size:0.6875rem; font-weight:600; background:var(--gray-bg); color:var(--gray-500); border:1px solid var(--gray-100); }
.research-card .rc-link { font-size:0.8125rem; font-weight:600; color:var(--primary); text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.research-card .rc-link:hover { text-decoration:underline; }

/* ═══════════════════════════════════════════════════════════════════
   TABS
   ═══════════════════════════════════════════════════════════════════ */
.tabs { display:flex; gap:0; border-bottom:2px solid var(--gray-100); margin-bottom:28px; justify-content:center; }
.tabs .tab {
  padding:12px 24px; font-size:0.875rem; font-weight:600; color:var(--gray-400);
  cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px;
  transition:all 0.15s; background:none; font-family:var(--font); border-top:none; border-left:none; border-right:none;
}
.tabs .tab:hover { color:var(--gray-700); }
.tabs .tab.active { color:var(--primary); border-bottom-color:var(--primary); }

/* ═══════════════════════════════════════════════════════════════════
   FEATURE CARDS
   ═══════════════════════════════════════════════════════════════════ */
.feature-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:18px; }
.feature-grid-2 { grid-template-columns:repeat(2,1fr); }
.feature-card {
  position:relative; overflow:hidden;
  background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius-lg);
  padding:26px; transition:box-shadow 0.2s, transform 0.2s, border-color 0.2s; box-shadow:var(--shadow-xs);
}
.feature-card::after { content:''; position:absolute; bottom:0; left:0; width:100%; height:3px; background:linear-gradient(90deg, var(--primary), var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease; }
.feature-card:hover { box-shadow:var(--shadow-md); border-color:var(--primary-border); transform:translateY(-3px); }
.feature-card:hover::after { transform:scaleX(1); }
.feature-card .fc-icon {
  width:46px; height:46px; border-radius:12px;
  background:linear-gradient(135deg, var(--primary), var(--primary-dark));
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
  font-size:1.125rem; color:#fff; box-shadow:0 4px 12px rgba(37,99,235,0.25);
}
.feature-card h4 { margin-bottom:8px; }
.feature-card p { font-size:0.875rem; color:var(--gray-500); line-height:1.65; }

/* ═══════════════════════════════════════════════════════════════════
   CASE STUDIES / TESTIMONIALS
   ═══════════════════════════════════════════════════════════════════ */
.case-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:20px; }
.case-card {
  background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius-xl);
  padding:28px; transition:all 0.2s; position:relative; box-shadow:var(--shadow-xs);
}
.case-card:hover { box-shadow:var(--shadow-lg); }
.case-card .case-quote { font-size:0.9375rem; color:var(--gray-700); line-height:1.7; font-style:italic; margin-bottom:16px; }
.case-card .case-quote::before { content:'\201C'; font-size:3rem; color:var(--primary); line-height:0; vertical-align:middle; margin-right:6px; font-style:normal; }
.case-card .case-author { display:flex; align-items:center; gap:12px; padding-top:16px; border-top:1px solid var(--gray-50); }
.case-card .case-avatar { width:40px; height:40px; border-radius:50%; background:var(--primary); color:var(--white); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.875rem; }
.case-card .case-name { font-weight:700; font-size:0.875rem; color:var(--gray-900); }
.case-card .case-role { font-size:0.75rem; color:var(--gray-400); }

/* ═══════════════════════════════════════════════════════════════════
   FAQ ACCORDION
   ═══════════════════════════════════════════════════════════════════ */
.faq-list { max-width:760px; margin:0 auto; }
.faq-item { border-bottom:1px solid var(--gray-100); }
.faq-q {
  width:100%; padding:18px 0; text-align:left; background:none; border:none;
  font-size:0.9375rem; font-weight:600; color:var(--gray-900); cursor:pointer;
  font-family:var(--font); display:flex; justify-content:space-between; align-items:center;
  transition:color 0.15s;
}
.faq-q:hover { color:var(--primary); }
.faq-q::after { content:'+'; font-size:1.25rem; color:var(--gray-300); font-weight:400; transition:transform 0.2s; }
.faq-q.open::after { content:'\2212'; color:var(--primary); }
.faq-a { max-height:0; overflow:hidden; transition:max-height 0.4s ease; font-size:0.875rem; color:var(--gray-600); line-height:1.7; }
.faq-a.open { max-height:800px; padding-bottom:18px; }

/* ═══════════════════════════════════════════════════════════════════
   TAB PANELS — working tab content switching
   ═══════════════════════════════════════════════════════════════════ */
.tab-panel { display:none; animation:fadeSlide 0.25s ease; }
.tab-panel.active { display:block; }

/* ═══════════════════════════════════════════════════════════════════
   SERVICES MEGA GRID — Rating types, Research, About
   ═══════════════════════════════════════════════════════════════════ */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.services-col { position:relative; overflow:hidden; background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-xs); transition:box-shadow 0.2s, transform 0.2s, border-color 0.2s; }
.services-col::after { content:''; position:absolute; top:0; left:0; width:100%; height:3px; background:linear-gradient(90deg, var(--primary), var(--gold)); transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease; }
.services-col:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--primary-border); }
.services-col:hover::after { transform:scaleX(1); }
.services-col h4 { font-size:0.75rem; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:16px; color:var(--gray-900); padding-bottom:12px; border-bottom:2px solid var(--primary); display:inline-block; }
.services-col .svc-group { margin-bottom:14px; }
.services-col .svc-group:last-child { margin-bottom:0; }
.services-col .svc-group .svc-group-title { font-size:0.6875rem; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:6px; }
.services-col .svc-group a:not(.btn) { display:flex; align-items:flex-start; gap:8px; font-size:0.8125rem; color:var(--gray-700); text-decoration:none; padding:5px 0; transition:color 0.12s; line-height:1.5; }
.services-col .svc-group a:not(.btn)::before { content:'\203A'; color:var(--gray-300); font-weight:700; flex-shrink:0; transition:color 0.12s; }
.services-col .svc-group a:not(.btn):hover { color:var(--primary); }
.services-col .svc-group a:not(.btn):hover::before { color:var(--gold); }
.services-col .svc-group a.btn { margin-top:8px; }

/* ═══════════════════════════════════════════════════════════════════
   NEWS CARDS
   ═══════════════════════════════════════════════════════════════════ */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.news-card { background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius-lg); overflow:hidden; transition:all 0.2s; box-shadow:var(--shadow-xs); }
.news-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:var(--primary-border); }
.news-card .nc-img { height:140px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.news-card .nc-img .nc-art { position:absolute; inset:0; width:100%; height:100%; }
.news-card .nc-img::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,15,36,0.05) 0%, rgba(6,15,36,0.60) 100%); }
.news-card .nc-img .nc-banner-label { font-size:0.625rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; color:rgba(255,255,255,0.92); z-index:1; padding:6px 16px; border:1px solid rgba(255,255,255,0.18); border-radius:3px; background:rgba(6,15,36,0.35); text-shadow:0 1px 2px rgba(0,0,0,0.4); }
.news-card .nc-body { padding:18px; }
.news-card .nc-date { font-size:0.6875rem; color:var(--gray-400); margin-bottom:6px; }
.news-card .nc-title { font-size:0.875rem; font-weight:700; color:var(--gray-900); margin-bottom:6px; line-height:1.4; }
.news-card .nc-title a { color:inherit; text-decoration:none; }
.news-card .nc-title a:hover { color:var(--primary); }
.news-card .nc-excerpt { font-size:0.75rem; color:var(--gray-500); line-height:1.6; }
.news-more-wrap { text-align:right; margin-top:16px; }

/* ═══════════════════════════════════════════════════════════════════
   MARKET SNAPSHOT
   ═══════════════════════════════════════════════════════════════════ */
.snap-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.snap-card { position:relative; overflow:hidden; background:var(--white); border:1px solid var(--gray-200); border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow-xs); transition:box-shadow 0.2s, transform 0.2s, border-color 0.2s; }
.snap-card::before { content:''; position:absolute; top:0; right:0; width:90px; height:90px; background:radial-gradient(circle, var(--primary-bg) 0%, transparent 70%); pointer-events:none; }
.snap-card::after { content:''; position:absolute; top:0; left:0; width:100%; height:3px; background:linear-gradient(90deg, var(--primary), var(--primary-dark)); transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease; }
.snap-card:hover { box-shadow:var(--shadow-md); transform:translateY(-3px); border-color:var(--primary-border); }
.snap-card:hover::after { transform:scaleX(1); }
.snap-card .snap-num { font-size:1.75rem; font-weight:800; color:var(--primary); margin-bottom:6px; letter-spacing:-0.02em; }
.snap-card .snap-label { font-size:0.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--gray-400); margin-bottom:8px; }
.snap-card p { font-size:0.8125rem; color:var(--gray-500); line-height:1.6; }

/* ═══════════════════════════════════════════════════════════════════
   MEGA FOOTER — comprehensive sitemap
   ═══════════════════════════════════════════════════════════════════ */
.footer-mega { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:32px; }
.footer-mega .fm-col h5 { color:var(--white); font-size:0.6875rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:12px; }
.footer-mega .fm-col a { color:var(--gray-400); text-decoration:none; font-size:0.75rem; display:block; margin-bottom:6px; transition:color 0.15s; line-height:1.5; }
.footer-mega .fm-col a:hover { color:var(--primary); }
.footer-mega .fm-col .fm-sub { font-size:0.625rem; color:var(--gray-500); text-transform:uppercase; letter-spacing:0.06em; margin-top:10px; margin-bottom:5px; }

/* ═══════════════════════════════════════════════════════════════════
   CTA BANDS
   ═══════════════════════════════════════════════════════════════════ */
.cta-band {
  background:linear-gradient(135deg, var(--primary-deep), var(--primary-dark));
  padding:64px 40px; text-align:center;
  position:relative; overflow:hidden;
}
.cta-band::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 500px 400px at center, rgba(245,158,11,0.08) 0%, transparent 70%);
}
.cta-band h2 { color:var(--white); margin-bottom:10px; position:relative; }
.cta-band p { color:rgba(255,255,255,0.75); margin-bottom:28px; font-size:0.9375rem; position:relative; }
.cta-band .btn { position:relative; }
.cta-band .btn-gold { background:var(--white); color:var(--primary); border-color:var(--white); }
.cta-band .btn-gold:hover { background:var(--primary-bg); color:var(--primary); border-color:var(--primary-bg); box-shadow:0 4px 20px rgba(255,255,255,0.25); }
.cta-band .cta-note { margin-top:18px; font-size:0.6875rem; color:rgba(255,255,255,0.45); position:relative; }

/* ═══════════════════════════════════════════════════════════════════
   NEWSLETTER SIGNUP
   ═══════════════════════════════════════════════════════════════════ */
.newsletter {
  background:var(--gray-bg); border:1px solid var(--gray-100); border-radius:var(--radius-xl);
  padding:36px; text-align:center; max-width:600px; margin:0 auto;
}
.newsletter h4 { margin-bottom:6px; }
.newsletter p { font-size:0.875rem; color:var(--gray-500); margin-bottom:16px; }
.newsletter-form { display:flex; gap:8px; max-width:420px; margin:0 auto; }
.newsletter-form input {
  flex:1; padding:10px 14px; border:1.5px solid var(--gray-200); border-radius:var(--radius);
  font-size:0.875rem; font-family:var(--font);
}
.newsletter-form input:focus { outline:none; border-color:var(--primary); }

/* ═══════════════════════════════════════════════════════════════════
   RATING SCALE — single row, no wrapping, labels inside items
   ═══════════════════════════════════════════════════════════════════ */
.scale-wrap { max-width:100%; margin:0 auto; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.scale-row { display:flex; gap:3px; flex-wrap:nowrap; justify-content:center; margin-bottom:8px; min-width:fit-content; }
.scale-item {
  padding:8px 6px 6px; border-radius:var(--radius-sm); text-align:center;
  font-weight:700; font-size:0.6875rem; letter-spacing:0.02em; min-width:52px;
  transition:transform 0.15s; cursor:default; flex-shrink:0;
  display:flex; flex-direction:column; align-items:center; gap:2px;
}
.scale-item:hover { transform:scale(1.08); z-index:1; }
.scale-aaa{background:#0b6e47;color:#d1fae5;} .scale-aa{background:#158554;color:#d1fae5;}
.scale-a{background:#249e63;color:#d1fae5;} .scale-bbb{background:#b47810;color:#fef3c7;}
.scale-bb{background:#d97706;color:#fef3c7;} .scale-b{background:#c1292e;color:#fee2e2;}
.scale-c{background:#991b1b;color:#fecaca;} .scale-d{background:#2d3748;color:#cbd5e1;}
.scale-item .scale-label {
  font-size:0.5rem; font-weight:500; opacity:0.75; letter-spacing:0.01em;
  line-height:1.2; max-width:48px; word-wrap:break-word;
}
.scale-desc { display:none; }

/* Scale scroller — left/right arrows to make horizontal scroll obvious */
.scale-scroller { display:flex; align-items:center; }
.scale-scroller .scale-wrap { flex:1; min-width:0; margin:0; }
.scale-arrow {
  display:none; flex-shrink:0; width:38px; height:38px; border-radius:50%;
  background:var(--white); border:1px solid var(--gray-200); box-shadow:var(--shadow-md);
  cursor:pointer; align-items:center; justify-content:center;
  font-size:1.4rem; font-weight:700; line-height:1; color:var(--primary);
  padding:0; transition:all 0.15s;
}
.scale-scroller.scrollable { gap:10px; }
.scale-scroller.scrollable .scale-arrow { display:inline-flex; }
.scale-arrow:hover { background:var(--primary-bg); color:var(--primary); border-color:var(--primary-border); }
.scale-arrow:disabled { opacity:0.35; cursor:default; pointer-events:none; }

/* ═══════════════════════════════════════════════════════════════════
   FOOTER
   ═══════════════════════════════════════════════════════════════════ */
.footer { background:var(--dark); color:var(--gray-400); padding:60px 40px 28px; border-top:1px solid var(--dark-border); }
.footer-grid { max-width:var(--content-max); margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:44px; }
.footer h4 { color:var(--white); font-size:0.75rem; margin-bottom:14px; text-transform:uppercase; letter-spacing:0.08em; }
.footer a { color:var(--gray-400); text-decoration:none; font-size:0.8125rem; display:block; margin-bottom:8px; transition:color 0.15s; }
.footer a:hover { color:var(--white); }
.footer .footer-brand { font-size:1rem; font-weight:800; color:var(--white); margin-bottom:10px; }
.footer .footer-brand span { color:inherit; }
.footer .footer-about p { font-size:0.8125rem; line-height:1.7; margin-bottom:14px; }
.footer .footer-bottom { max-width:var(--content-max); margin:36px auto 0; padding-top:24px; border-top:1px solid var(--dark-border); display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; font-size:0.6875rem; }
.footer .footer-bottom .disc { color:var(--gray-500); max-width:620px; font-size:0.6875rem; line-height:1.6; }

/* ═══════════════════════════════════════════════════════════════════
   MODALS
   ═══════════════════════════════════════════════════════════════════ */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(3,9,22,0.78); backdrop-filter:blur(4px); z-index:200; justify-content:center; align-items:center; }
.modal-overlay.open { display:flex; }
.modal-box { background:var(--white); border-radius:var(--radius-xl); padding:36px; width:100%; max-width:440px; position:relative; box-shadow:var(--shadow-xl); animation:modalIn 0.22s ease; max-height:90vh; overflow-y:auto; }
.modal-box.wide { max-width:740px; }
.modal-box .close { position:absolute; top:14px; right:16px; background:none; border:none; font-size:1.25rem; cursor:pointer; color:var(--gray-300); width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; transition:all 0.15s; }
.modal-box .close:hover { background:var(--gray-50); color:var(--gray-700); }
.modal-box h3 { margin-bottom:20px; }
.modal-box label { display:block; font-size:0.625rem; font-weight:700; color:var(--gray-600); margin-bottom:4px; margin-top:14px; text-transform:uppercase; letter-spacing:0.06em; }
.modal-box input, .modal-box select { width:100%; padding:10px 14px; border:1.5px solid var(--gray-200); border-radius:var(--radius); font-size:0.875rem; font-family:var(--font); transition:border 0.15s; }
.modal-box input:focus, .modal-box select:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-bg); }
.modal-box .submit { width:100%; padding:12px; background:var(--primary); color:var(--white); border:none; border-radius:var(--radius); font-size:0.875rem; font-weight:700; cursor:pointer; margin-top:18px; font-family:var(--font); transition:background 0.2s; }
.modal-box .submit:hover { background:var(--primary-dark); }
.modal-box .switch { text-align:center; margin-top:14px; font-size:0.8125rem; color:var(--gray-500); }
.modal-box .switch a { color:var(--primary); cursor:pointer; font-weight:600; text-decoration:none; }
.modal-box .switch a:hover { text-decoration:underline; }
.error { color:var(--red); font-size:0.75rem; margin-top:6px; display:none; padding:8px 12px; background:var(--red-bg); border-radius:var(--radius-sm); }
.modal-box .error { color:var(--red); font-size:0.75rem; margin-top:6px; display:none; }

@keyframes modalIn { from { opacity:0; transform:scale(0.95) translateY(8px); } to { opacity:1; transform:scale(1) translateY(0); } }

/* ═══════════════════════════════════════════════════════════════════
   DASHBOARD LAYOUT
   ═══════════════════════════════════════════════════════════════════ */
.dash-sidebar { width:var(--sidebar-w); position:fixed; top:0; left:0; height:100vh; background:var(--navy-deep); z-index:50; display:flex; flex-direction:column; border-right:1px solid var(--navy-border); overflow-y:auto; }
.dash-sidebar .logo { padding:20px 22px; font-size:1.125rem; font-weight:900; color:var(--white); letter-spacing:-0.02em; border-bottom:1px solid var(--navy-border); }
.dash-sidebar .logo span { color:var(--primary-light); }
.dash-sidebar .logo .sub { display:block; font-size:0.5rem; font-weight:500; color:var(--gray-500); letter-spacing:0.1em; text-transform:uppercase; margin-top:1px; }
.dash-sidebar nav { padding:14px; flex:1; }
.dash-sidebar .nav-item { display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:var(--radius); color:var(--gray-400); text-decoration:none; font-size:0.8125rem; font-weight:500; margin-bottom:1px; transition:all 0.12s; cursor:pointer; }
.dash-sidebar .nav-item:hover { background:rgba(255,255,255,0.03); color:var(--gray-200); }
.dash-sidebar .nav-item.active { background:rgba(37,99,235,0.12); color:var(--primary-light); font-weight:600; }
.dash-sidebar .divider { border-top:1px solid var(--navy-border); margin:10px 0; }
.dash-sidebar .user-box { margin:auto 14px 14px; padding:14px; background:rgba(255,255,255,0.02); border-radius:var(--radius-lg); border:1px solid var(--navy-border); }
.dash-sidebar .user-box .uname { color:var(--white); font-weight:600; font-size:0.8125rem; }
.dash-sidebar .user-box .ucompany { color:var(--gray-500); font-size:0.6875rem; margin-top:1px; }
.dash-sidebar .user-box .ulogout { color:var(--gold-light); cursor:pointer; font-size:0.6875rem; font-weight:500; margin-top:8px; display:inline-block; opacity:0.8; }
.dash-sidebar .user-box .ulogout:hover { opacity:1; }

.dash-main { margin-left:var(--sidebar-w); padding:32px 36px; min-height:100vh; background:var(--gray-bg); }

/* Dashboard Components */
.dash-page-header { margin-bottom:28px; }
.dash-page-header h1 { font-size:1.5rem; }
.dash-page-header p { font-size:0.8125rem; color:var(--gray-400); margin-top:4px; }
.stat-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:16px; margin-bottom:24px; }
.stat-card { background:var(--white); border-radius:var(--radius-lg); padding:20px 24px; border:1px solid var(--gray-200); box-shadow:var(--shadow-xs); position:relative; overflow:hidden; }
.stat-card::after { content:''; position:absolute; top:0; right:0; width:80px; height:80px; background:radial-gradient(circle,var(--primary-bg) 0%,transparent 70%); pointer-events:none; }
.stat-card .s-label { font-size:0.625rem; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:8px; }
.stat-card .s-value { font-size:2rem; font-weight:800; color:var(--gray-900); letter-spacing:-0.03em; }
.stat-card .s-value.gold { color:var(--primary); }
.stat-card .s-value.amber { color:var(--amber); }
.stat-card .s-sub { font-size:0.75rem; color:var(--gray-400); margin-top:2px; }

.dash-card { background:var(--white); border-radius:var(--radius-lg); border:1px solid var(--gray-200); padding:24px; margin-bottom:18px; box-shadow:var(--shadow-sm); }
.dash-card h3 { margin-bottom:16px; }

/* Tables */
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--radius); border:1px solid var(--gray-100); }
table { width:100%; border-collapse:collapse; font-size:0.8125rem; }
table thead { background:var(--gray-bg); }
table th { text-align:left; padding:10px 14px; font-size:0.625rem; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:0.08em; border-bottom:2px solid var(--gray-100); white-space:nowrap; }
table td { padding:10px 14px; border-bottom:1px solid var(--gray-50); color:var(--gray-700); }
table tbody tr:hover td { background:var(--primary-bg); }

/* Stack table — collapse wide tables into labelled cards on mobile */
@media (max-width:768px) {
  .table-wrap:has(.stack-table) { border:none; overflow:visible; }
  .stack-table, .stack-table tbody, .stack-table tr, .stack-table td { display:block; width:100%; }
  .stack-table thead { display:none; }
  .stack-table tbody tr {
    background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius);
    padding:14px 16px; margin-bottom:12px; box-shadow:var(--shadow-xs);
  }
  .stack-table tbody tr:last-child { margin-bottom:0; }
  .stack-table td {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:6px 0; border-bottom:1px solid var(--gray-50); text-align:right;
  }
  .stack-table td:last-child { border-bottom:none; }
  .stack-table td::before {
    content:attr(data-label); flex-shrink:0; text-align:left;
    font-size:0.6875rem; font-weight:700; color:var(--gray-500);
    text-transform:uppercase; letter-spacing:0.04em;
  }
  .stack-table td strong { text-align:right; }
  .stack-table.factor-table td:first-child {
    justify-content:center; text-align:center;
    padding:4px 0 12px; margin-bottom:2px;
    border-bottom:1px solid var(--gray-100);
  }
  .stack-table.factor-table td:first-child::before { display:none; }
  .stack-table.factor-table td:first-child strong { font-size:0.9375rem; color:var(--gray-900); }
}

/* Database quick-view table */
.db-table { font-size:0.78rem; }
.db-table thead th { font-size:0.6rem; padding:8px 10px; }
.db-table td { padding:8px 10px; font-size:0.78rem; }
.db-table .t-mono { font-family:'SF Mono','Fira Code','Consolas',monospace; font-size:0.7rem; color:var(--gray-400); }
.db-table .t-email { font-size:0.75rem; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.db-table .t-phone { font-size:0.75rem; white-space:nowrap; }
.db-table .t-date { font-size:0.72rem; color:var(--gray-400); white-space:nowrap; }
.db-table .t-num { text-align:center; font-weight:600; }
.db-table .t-rating { text-align:center; }
.db-table .t-status { text-align:center; }
.db-table th.t-num, .db-table th.t-rating, .db-table th.t-status, .db-table th.t-date { text-align:center; }

/* Clickable rows */
tr.clickable-row { cursor:pointer; transition:background 0.15s; }
tr.clickable-row:hover td { background:rgba(200,146,43,0.06) !important; }
tr.clickable-row:active td { background:rgba(200,146,43,0.12) !important; }

/* Client search */
#client-search:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,146,43,0.12); }

/* Disabled user rows */
tr.disabled-row td { color:var(--gray-400); }
tr.disabled-row:hover td { background:rgba(239,68,68,0.05) !important; }

/* Archived table */
#archived-table { font-size:0.78rem; }
#archived-table th { font-size:0.6rem; padding:8px 10px; }

/* Small danger button */
.btn-danger-sm { font-size:0.65rem; padding:4px 8px; background:var(--red); color:#fff; border:none; border-radius:4px; cursor:pointer; }
.btn-danger-sm:hover { opacity:0.85; }
table tbody tr:last-child td { border-bottom:none; }

/* Rating Badges */
.rating { display:inline-flex; padding:2px 10px; border-radius:var(--radius-sm); font-weight:800; font-size:0.75rem; letter-spacing:0.03em; }
.rating.aaa{background:var(--rate-aaa);color:#fff;} .rating.aa-plus,.rating.aa,.rating.aa-minus{background:var(--rate-aa);color:#fff;}
.rating.a-plus,.rating.a,.rating.a-minus{background:var(--rate-a);color:#fff;}
.rating.bbb-plus,.rating.bbb,.rating.bbb-minus{background:var(--rate-bbb);color:#fff;}
.rating.bb-plus,.rating.bb,.rating.bb-minus{background:var(--rate-bb);color:#fff;}
.rating.b-plus,.rating.b,.rating.b-minus{background:var(--rate-b);color:#fff;}
.rating.c,.rating.d{background:var(--rate-d);color:#fff;}

/* Status Badges */
.badge { display:inline-flex; align-items:center; gap:5px; padding:3px 12px; border-radius:20px; font-size:0.6875rem; font-weight:600; }
.badge.done{background:var(--green-bg);color:var(--green);} .badge.done::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);}
.badge.pending{background:var(--amber-bg);color:var(--amber);} .badge.pending::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--amber);}
.badge.draft{background:var(--gray-50);color:var(--gray-500);}

/* Empty State */
.empty { text-align:center; padding:40px 20px; }
.empty p { color:var(--gray-400); font-size:0.8125rem; }
.empty a { color:var(--primary); font-weight:600; text-decoration:none; }
.empty a:hover { text-decoration:underline; }

/* Forms */
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:0.625rem; font-weight:700; color:var(--gray-600); margin-bottom:4px; text-transform:uppercase; letter-spacing:0.06em; }
.form-group input,.form-group select,.form-group textarea { width:100%; padding:9px 14px; border:1.5px solid var(--gray-200); border-radius:var(--radius); font-size:0.875rem; font-family:var(--font); color:var(--gray-800); transition:border 0.15s,box-shadow 0.15s; }
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-bg); }

/* Page Transition */
.page { display:none; animation:fadeSlide 0.2s ease; }
.page.active { display:block; }
@keyframes fadeSlide { from{opacity:0;transform:translateY(6px);} to{opacity:1;transform:translateY(0);} }

/* ═══════════════════════════════════════════════════════════════════
   REPORT (Modal)
   ═══════════════════════════════════════════════════════════════════ */
.report { background:var(--white); border:2px solid var(--gray-100); border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow-lg); }
.report .r-header { background:var(--dark); padding:22px 28px; color:var(--white); display:flex; justify-content:space-between; align-items:center; }
.report .r-body { padding:28px; }
.report .r-score { text-align:center; padding:24px; background:var(--gray-bg); border-radius:var(--radius-lg); border:1px solid var(--gray-100); margin-bottom:22px; }
.report .r-score .big { font-size:3rem; font-weight:900; letter-spacing:-0.04em; line-height:1; }
.report .r-score .bar { height:8px; background:var(--gray-100); border-radius:4px; margin:14px auto 0; max-width:300px; overflow:hidden; }
.report .r-score .bar .fill { height:100%; border-radius:4px; transition:width 0.8s ease; }
.report .r-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
.report .r-col { padding:18px; border-radius:var(--radius); border:1px solid var(--gray-100); }
.report .r-col.good { background:var(--green-bg); border-color:#b8d9cc; }
.report .r-col.bad { background:var(--red-bg); border-color:#f0c4c6; }
.report .r-col h4 { font-size:0.625rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:10px; }
.report .r-col ul { padding-left:18px; font-size:0.8125rem; }
.report .r-col ul li { margin-bottom:6px; }
.report .r-footer { padding:18px 28px; border-top:1px solid var(--gray-100); background:var(--gray-bg); font-size:0.75rem; color:var(--gray-400); line-height:1.6; }

/* ═══════════════════════════════════════════════════════════════════
   WIZARD — Multi-Step Rating Process
   ═══════════════════════════════════════════════════════════════════ */
.wizard-progress {
  display:flex; align-items:center; justify-content:center; gap:0;
  margin-bottom:28px; padding:0 20px;
}
.wp-step {
  display:flex; flex-direction:column; align-items:center; gap:6px;
  text-align:center; position:relative;
}
.wp-step .wp-num {
  width:36px; height:36px; border-radius:50%; background:var(--gray-100);
  color:var(--gray-400); display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:0.8125rem; transition:all 0.2s;
  border:2px solid var(--gray-200);
}
.wp-step span {
  font-size:0.625rem; font-weight:600; color:var(--gray-400);
  text-transform:uppercase; letter-spacing:0.04em; white-space:nowrap;
}
.wp-step.active .wp-num {
  background:var(--primary); color:var(--white); border-color:var(--primary);
  box-shadow:0 0 0 6px var(--primary-bg);
}
.wp-step.active span { color:var(--primary); }
.wp-step.done .wp-num {
  background:var(--green); color:var(--white); border-color:var(--green);
}
.wp-step.done span { color:var(--green); }
.wp-connector {
  width:40px; height:2px; background:var(--gray-200); margin:0 8px;
  margin-bottom:22px; transition:background 0.2s;
}
.wp-step.done + .wp-connector { background:var(--green); }

.wizard-panel { display:none; animation:fadeSlide 0.2s ease; }
.wizard-panel.active { display:block; }

/* Completion Bar */
.completion-bar-wrap {
  display:flex; align-items:center; gap:16px; margin-bottom:14px;
}
.completion-bar {
  flex:1; height:10px; background:var(--gray-100); border-radius:5px; overflow:hidden;
}
.completion-fill {
  height:100%; background:linear-gradient(90deg, var(--primary), var(--green));
  border-radius:5px; transition:width 0.6s ease;
}
.completion-pct {
  font-size:1.25rem; font-weight:800; color:var(--primary);
  min-width:48px; text-align:right;
}
.completion-steps { display:flex; gap:16px; flex-wrap:wrap; }
.cs-step {
  font-size:0.6875rem; color:var(--gray-400); font-weight:500;
}
.cs-step.done { color:var(--green); font-weight:600; }

/* Big Rating Display */
.big-rating-display {
  display:flex; justify-content:space-between; align-items:center; gap:24px;
}
.brd-left { flex:1; }
.brd-company { font-size:1.25rem; font-weight:700; color:var(--gray-900); margin-top:4px; }
.brd-type { font-size:0.875rem; color:var(--gray-500); }
.brd-date { font-size:0.75rem; color:var(--gray-400); margin-top:4px; }
.brd-right { text-align:center; }
.brd-rating {
  font-size:3.5rem; font-weight:900; letter-spacing:-0.04em; line-height:1;
  padding:12px 28px; border-radius:var(--radius-lg); display:inline-block; color:var(--white);
}
.brd-rating.aaa,.brd-rating.aa-plus,.brd-rating.aa,.brd-rating.aa-minus{background:var(--rate-aaa);}
.brd-rating.a-plus,.brd-rating.a,.brd-rating.a-minus{background:var(--rate-a);}
.brd-rating.bbb-plus,.brd-rating.bbb,.brd-rating.bbb-minus{background:var(--rate-bbb);}
.brd-rating.bb-plus,.brd-rating.bb,.brd-rating.bb-minus{background:var(--rate-bb);}
.brd-rating.b-plus,.brd-rating.b,.brd-rating.b-minus{background:var(--rate-b);}
.brd-rating.c,.brd-rating.d{background:var(--rate-d);}
.brd-score { font-size:0.9375rem; font-weight:600; color:var(--gray-600); margin-top:8px; }
.brd-outlook { font-size:0.8125rem; color:var(--gray-500); margin-top:2px; }

/* Document Checklist */
.doc-checklist { display:flex; flex-direction:column; gap:8px; }
.doc-checklist-item {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border:1px solid var(--gray-200); border-radius:var(--radius);
  background:var(--white); transition:all 0.15s; gap:12px;
}
.doc-checklist-item:hover { border-color:var(--primary-border); background:var(--primary-bg); }
.doc-checklist-item.uploaded { opacity:0.5; background:var(--gray-50); }
.dci-info { flex:1; display:flex; flex-direction:column; gap:2px; }
.dci-cat {
  font-size:0.625rem; font-weight:700; color:var(--primary); text-transform:uppercase;
  letter-spacing:0.06em;
}
.dci-name { font-size:0.8125rem; font-weight:600; color:var(--gray-800); }
.dci-desc { font-size:0.6875rem; color:var(--gray-400); }
.dci-action { flex-shrink:0; }

/* Checkbox Group */
.checkbox-group { display:flex; flex-direction:column; gap:10px; }
.checkbox-label {
  display:flex; align-items:flex-start; gap:10px; cursor:pointer;
  font-size:0.8125rem; color:var(--gray-700); line-height:1.5;
  padding:8px 0;
}
.checkbox-label input[type="checkbox"] {
  width:18px; height:18px; margin-top:1px; accent-color:var(--primary);
  cursor:pointer; flex-shrink:0;
}
.checkbox-label a { color:var(--primary); font-weight:600; text-decoration:none; }
.checkbox-label a:hover { text-decoration:underline; }

/* Review Summary */
.review-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px;
  margin-top:12px;
}
.review-section {
  background:var(--gray-bg); border:1px solid var(--gray-100);
  border-radius:var(--radius); padding:16px;
}
.review-section h4 {
  font-size:0.6875rem; text-transform:uppercase; letter-spacing:0.06em;
  color:var(--gray-500); margin-bottom:10px; padding-bottom:8px;
  border-bottom:1px solid var(--gray-200);
}
.review-row {
  display:flex; justify-content:space-between; align-items:center;
  padding:6px 0; font-size:0.8125rem;
}
.review-row span { color:var(--gray-500); }
.review-row strong { color:var(--gray-900); font-weight:600; }

/* Document Upload Rows (dropdown-based) */
.doc-upload-row {
  display:flex; align-items:center; gap:10px; padding:8px 0;
}
.doc-upload-row .doc-select {
  flex:1; padding:8px 12px; border:1.5px solid var(--gray-200);
  border-radius:var(--radius); font-size:0.8125rem; font-family:var(--font);
  color:var(--gray-700); background:var(--white);
}
.doc-upload-row .doc-select:focus { outline:none; border-color:var(--primary); }
.doc-upload-row .doc-file-btn { flex-shrink:0; cursor:pointer; }
.doc-upload-row .doc-file-name {
  font-size:0.75rem; color:var(--gray-400); max-width:150px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.doc-upload-row .doc-upload-btn { flex-shrink:0; }
.doc-upload-row .doc-upload-btn:disabled { opacity:0.4; cursor:not-allowed; }

.uploaded-doc-item {
  display:flex; align-items:center; gap:8px; padding:6px 0;
  font-size:0.8125rem; border-bottom:1px solid var(--gray-50);
}
.uploaded-doc-item:last-child { border-bottom:none; }

/* ═══════════════════════════════════════════════════════════════════
   PROFILE LOCK BANNER
   ═══════════════════════════════════════════════════════════════════ */
.profile-lock-banner {
  display:flex; align-items:center; gap:16px;
  padding:16px 20px; background:linear-gradient(135deg, #fffbeb, #fef3c7);
  border:1px solid #fde68a; border-radius:var(--radius-lg);
  margin-bottom:20px;
}
.plb-icon { font-size:1.5rem; flex-shrink:0; }
.plb-text { flex:1; }
.plb-text strong { display:block; font-size:0.875rem; color:#92400e; margin-bottom:2px; }
.plb-text span { font-size:0.75rem; color:#a16207; }

/* Frozen Profile Grid */
.frozen-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  border:1px solid var(--gray-100); border-radius:var(--radius);
  overflow:hidden; margin-top:16px;
}
.frozen-row {
  display:flex; flex-direction:column; padding:14px 18px;
  border-bottom:1px solid var(--gray-50); border-right:1px solid var(--gray-50);
  background:var(--gray-50);
}
.frozen-row:nth-child(even) { border-right:none; }
.frozen-row:nth-last-child(-n+2) { border-bottom:none; }
.frozen-row span {
  font-size:0.625rem; font-weight:700; color:var(--gray-400);
  text-transform:uppercase; letter-spacing:0.06em; margin-bottom:3px;
}
.frozen-row strong {
  font-size:0.875rem; font-weight:600; color:var(--gray-900);
}

/* Rich Text Toolbar */
.rich-toolbar {
  display:flex; align-items:center; gap:2px; padding:6px 8px;
  background:var(--gray-bg); border:1.5px solid var(--gray-200);
  border-bottom:none; border-radius:var(--radius) var(--radius) 0 0;
}
.rich-toolbar .rt-btn {
  width:30px; height:28px; display:flex; align-items:center; justify-content:center;
  border:1px solid transparent; border-radius:4px; background:none;
  cursor:pointer; font-size:0.75rem; color:var(--gray-600); font-family:var(--font);
  transition:all 0.12s;
}
.rich-toolbar .rt-btn:hover { background:var(--white); border-color:var(--gray-200); color:var(--gray-900); }
.rich-toolbar .rt-sep { width:1px; height:18px; background:var(--gray-200); margin:0 4px; }
.rich-toolbar + textarea {
  border-top-left-radius:0; border-top-right-radius:0; margin-top:0;
  font-family:'SF Mono','Fira Code','Consolas',monospace; font-size:0.8125rem;
}

/* Content item type badges in table */
.badge.rating { background:var(--primary-bg); color:var(--primary); }
.badge.insight { background:var(--green-bg); color:var(--green); }
.badge.report { background:var(--amber-bg); color:var(--amber); }

/* Locked sidebar items */
.dash-sidebar .nav-item.locked {
  opacity:0.4; cursor:not-allowed; pointer-events:none;
}

/* Custom document name input */
.doc-custom-name {
  padding:8px 12px; border:1.5px solid var(--gray-200);
  border-radius:var(--radius); font-size:0.8125rem; font-family:var(--font);
  color:var(--gray-700); min-width:180px; flex:0 0 auto;
}
.doc-custom-name:focus { outline:none; border-color:var(--primary); }

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .section { padding:64px 32px; }
  .hero { padding:96px 32px 60px; }
  .hero-inner { grid-template-columns:1fr; gap:40px; }
  .hero-content h1 { font-size:2.75rem; }
  .data-strip { padding:0 32px; }
  .research-grid { grid-template-columns:1fr 1fr; }
  .case-grid { grid-template-columns:1fr 1fr; }
  .news-grid { grid-template-columns:repeat(2,1fr); }
  .snap-grid { grid-template-columns:repeat(2,1fr); }
  .footer { padding:48px 32px 24px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-mega { grid-template-columns:1fr 1fr 1fr; }
  .services-grid { grid-template-columns:1fr 1fr; }
  .cta-band { padding:56px 32px; }
  .page-hero { padding:60px 32px 20px; }
}
@media (max-width:768px) {
  .ticker-wrap { display:none; }
  .nav { top:0; padding:0 16px; flex-wrap:wrap; height:auto; min-height:var(--nav-h); }
  .nav .logo { order:1; }
  .nav-toggle { order:2; position:relative; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-left:auto; padding:0; background:linear-gradient(135deg, var(--primary), var(--primary-dark)); border:none; border-radius:12px; cursor:pointer; flex-shrink:0; box-shadow:0 4px 14px rgba(37,99,235,0.35); transition:box-shadow 0.25s ease, transform 0.25s ease; }
  .nav-toggle:hover { box-shadow:0 6px 18px rgba(37,99,235,0.5); transform:translateY(-1px); }
  .nav-toggle span { position:absolute; left:50%; top:50%; width:20px; height:2px; background:#fff; border-radius:2px; transition:transform 0.32s cubic-bezier(0.68,-0.55,0.27,1.55), opacity 0.25s ease; }
  .nav-toggle span:nth-child(1) { transform:translate(-50%, calc(-50% - 7px)); }
  .nav-toggle span:nth-child(2) { transform:translate(-50%, -50%); }
  .nav-toggle span:nth-child(3) { transform:translate(-50%, calc(-50% + 7px)); }
  .nav-toggle.open span:nth-child(1) { transform:translate(-50%,-50%) rotate(45deg); }
  .nav-toggle.open span:nth-child(2) { opacity:0; transform:translate(-50%,-50%) scaleX(0); }
  .nav-toggle.open span:nth-child(3) { transform:translate(-50%,-50%) rotate(-45deg); }
  .nav-links, .nav-actions { display:none; }
  .nav.open .nav-links, .nav.open .nav-actions { display:flex; }
  .nav.open .nav-links {
    order:3; flex-direction:column; width:100%; margin:0; padding:10px 0 14px;
    border-top:1px solid var(--gray-100);
    animation:menuSlide 0.3s ease;
  }
  .nav.open .nav-links a {
    display:flex; align-items:center; justify-content:space-between;
    padding:13px 16px; font-size:0.9375rem; font-weight:600;
    border-radius:var(--radius); color:var(--gray-700);
    opacity:0; animation:linkFade 0.35s ease forwards;
  }
  .nav.open .nav-links a::after { content:'\203A'; color:var(--gray-300); font-weight:700; font-size:1.15rem; line-height:1; transition:color 0.15s, transform 0.15s; }
  .nav.open .nav-links a:hover { color:var(--primary); background:var(--primary-bg); }
  .nav.open .nav-links a:hover::after { color:var(--primary); transform:translateX(3px); }
  .nav.open .nav-links a:nth-child(1){animation-delay:0.03s;}
  .nav.open .nav-links a:nth-child(2){animation-delay:0.06s;}
  .nav.open .nav-links a:nth-child(3){animation-delay:0.09s;}
  .nav.open .nav-links a:nth-child(4){animation-delay:0.12s;}
  .nav.open .nav-links a:nth-child(5){animation-delay:0.15s;}
  .nav.open .nav-links a:nth-child(6){animation-delay:0.18s;}
  .nav.open .nav-links a:nth-child(7){animation-delay:0.21s;}
  .nav.open .nav-actions {
    order:4; width:100%; margin:0 0 16px; gap:8px; padding-top:4px;
    animation:menuSlide 0.3s ease;
  }
  .nav.open .nav-actions .btn { flex:1; justify-content:center; padding:11px 16px; }
  .nav.open { box-shadow:0 16px 40px rgba(15,23,42,0.14); }
  .hero { padding:64px 16px 40px; margin-top:var(--nav-h); }
  .hero-content h1 { font-size:2rem; }
  .hero-actions { flex-wrap:wrap; }
  .hero-stats-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .hero-stat { padding:16px 12px; border-radius:var(--radius-lg); border:1px solid transparent; }
  .hero-stat:nth-child(1) { background:#eff6ff; border-color:#dbeafe; }
  .hero-stat:nth-child(2) { background:#ecfdf5; border-color:#d1fae5; }
  .hero-stat:nth-child(3) { background:#fffbeb; border-color:#fef3c7; }
  .hero-stat:nth-child(4) { background:#f5f3ff; border-color:#ede9fe; }
  .data-strip { padding:16px; }
  .data-strip-inner { display:grid; grid-template-columns:1fr; gap:10px; padding:0; }
  .data-strip .ds-div { display:none; }
  .data-strip .ds-item { padding:14px; border-radius:var(--radius-lg); text-align:center; }
  .data-strip .ds-item:nth-child(1) { background:#eff6ff; }
  .data-strip .ds-item:nth-child(3) { background:#ecfdf5; }
  .data-strip .ds-item:nth-child(5) { background:#fffbeb; }
  .data-strip .ds-item:nth-child(7) { background:#f5f3ff; }
  .data-strip .ds-item:nth-child(9) { background:#fff1f2; }
  .steps { grid-template-columns:1fr; gap:20px; }
  .steps::before { display:none; }
  .section { padding:48px 16px; }
  .sector-grid { grid-template-columns:repeat(2,1fr); }
  .chart-bars { height:140px; gap:4px; }
  .case-grid { grid-template-columns:1fr; }
  .feature-grid { grid-template-columns:1fr; }
  .feature-grid-2 .feature-card { padding:18px 16px; }
  .feature-grid-2 .feature-card h4 { font-size:0.875rem; }
  .feature-grid-2 .feature-card p { font-size:0.8125rem; }
  .research-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-mega { grid-template-columns:1fr 1fr; }
  .services-grid { grid-template-columns:1fr; }
  .news-grid { grid-template-columns:1fr; }
  .snap-grid { grid-template-columns:repeat(2,1fr); gap:12px; }
  .snap-card { padding:18px 16px; }
  .snap-card .snap-num { font-size:1.4rem; }
  .newsletter { padding:28px 20px; }
  .newsletter-form { flex-direction:column; }
  .tabs { flex-wrap:wrap; }
  .tabs .tab { flex:1 1 auto; padding:12px 10px; font-size:0.8125rem; white-space:normal; }
  .footer { padding:44px 16px 24px; }
  .cta-band { padding:48px 16px; }
  .page-hero { padding:48px 16px 20px; margin-top:var(--nav-h); }
  .hero-panel { padding:20px; }
  .form-row { grid-template-columns:1fr; }
  .dash-sidebar { width:100%; height:auto; position:relative; }
  .dash-sidebar nav { display:flex; flex-wrap:wrap; gap:4px; padding:8px; }
  .dash-sidebar .nav-item { font-size:0.75rem; padding:6px 10px; }
  .dash-main { margin-left:0; padding:16px; }
  .stat-row { grid-template-columns:1fr 1fr; }
  .report .r-grid { grid-template-columns:1fr; }
  .scale-row { flex-wrap:nowrap; justify-content:flex-start; gap:2px; }
  .scale-item { min-width:40px; padding:6px 4px 5px; font-size:0.625rem; }
  .scale-item .scale-label { font-size:0.4375rem; max-width:40px; }
  .scale-desc { font-size:0.5625rem; }
  .scale-arrow { width:32px; height:32px; font-size:1.15rem; border-radius:50%; }
  .sector-cell { display:flex; align-items:center; gap:10px; min-height:52px; min-width:0; padding:10px 14px; text-align:left; }
  .sector-cell .sc-icon { font-size:1.15rem; line-height:1; margin-bottom:0; flex-shrink:0; }
  .sector-cell .sc-name { flex:1; }
  .sector-cell .sc-indicator { margin-top:0; margin-left:auto; flex-shrink:0; white-space:nowrap; }
  .dash-card.factor-engine { text-align:center; position:relative; overflow:hidden; }
  .dash-card.factor-engine::before { content:''; position:absolute; top:0; left:0; width:100%; height:4px; background:linear-gradient(90deg,var(--primary),var(--primary-dark)); }
  .dash-card.factor-engine h3 { justify-content:center; }
  .dash-card.factor-engine h3 span { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:12px; background:linear-gradient(135deg,var(--primary),var(--primary-dark)); color:#fff; font-weight:800; flex-shrink:0; }
  .dash-card.factor-engine p { margin-left:auto; margin-right:auto; }
}
@media (max-width:480px) {
  .hero-content h1 { font-size:1.625rem; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .btn { justify-content:center; }
  .hero-stats-row { gap:10px; }
  .hero-stat { padding:14px 10px; }
  .hero-stat .hs-num { font-size:1.5rem; }
  .sector-cell { padding:12px 10px; }
  .sector-grid { grid-template-columns:1fr; }
  .stat-row { grid-template-columns:1fr; }
  .footer-mega { grid-template-columns:1fr; }
  .tabs .tab { padding:10px 6px; font-size:0.75rem; }
  .modal-overlay.open { padding:16px; }
  .modal-box { padding:24px; }
  .wizard-progress { overflow-x:auto; justify-content:flex-start; padding:0 0 12px; }
  .wp-step span { font-size:0.5625rem; }
  .wp-connector { width:20px; }
  .big-rating-display { flex-direction:column; text-align:center; }
  .brd-rating { font-size:2.5rem; }
}

/* ═══════════════════════════════════════════════════
   Rich Report Modal — India-Ratings-Style Detail
   ═══════════════════════════════════════════════════ */

.clickable-row { cursor: pointer; transition: background 0.15s; }
.clickable-row:hover { background: var(--primary-bg) !important; }

.report-full { background: var(--white); border: 2px solid var(--gray-100); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-lg); }
.rf-header { background: var(--dark); padding: 22px 28px; color: var(--white); display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 16px; }
.rf-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.rp-section { margin-bottom: 20px; }
.rp-label { font-size: 0.625rem; font-weight: 700; color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.rp-text-block { font-size: 0.8125rem; line-height: 1.7; color: var(--gray-800); padding: 14px; background: var(--gray-bg); border-radius: 8px; }

.rp-story-box { padding: 16px; background: var(--gray-bg); border-radius: 8px; border-left: 4px solid var(--gold); font-size: 0.8125rem; line-height: 1.7; color: var(--gray-800); }

.admin-obs-box { margin-top: 16px; padding: 16px; background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; }

.sensitivity-box { padding: 14px; border-radius: 8px; background: var(--gray-bg); border: 1px solid var(--gray-100); }
.sens-head { font-size: 0.6875rem; font-weight: 700; margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.04em; }
.sens-head.up { color: var(--green); }
.sens-head.down { color: var(--red); }
.sens-body { font-size: 0.8125rem; line-height: 1.6; color: var(--gray-800); }

.driver-hdr { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 10px; }

.pill { display: inline-block; padding: 4px 12px; border-radius: 20px; font-size: 0.6875rem; font-weight: 600; margin: 2px; }
.pill.s { background: var(--green-bg); color: var(--green); border: 1px solid #b8d9cc; }
.pill.w { background: var(--red-bg); color: var(--red); border: 1px solid #f0c4c6; }
.pill.r { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }

/* Big rating card hover state */
#latest-rating-card:hover { border-color: var(--gold); box-shadow: 0 4px 24px rgba(245,158,11,0.15); transition: all 0.2s ease; }
#latest-rating-card .brd-date { transition: color 0.2s; }
#latest-rating-card:hover .brd-date { color: var(--gold-dark); }

@media print {
  body > *:not(#modal-report) { display: none !important; }
  #modal-report { position: static !important; background: white !important; }
  #modal-report .modal-box { box-shadow: none !important; border: none !important; max-width: 100% !important; }
}

@media (max-width: 768px) {
  .rf-grid-2, .report .r-grid { grid-template-columns: 1fr; }
  .rf-header { flex-direction: column; align-items: flex-start; }
  .review-grid { grid-template-columns:1fr; }
  .doc-upload-row { flex-wrap:wrap; }
  .doc-upload-row .doc-file-name { max-width:100px; }
}
