/* SkillMatch AI v4 — Premium Design */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --primary:#0B4A3A;--primary-light:#E6F0ED;--primary-hover:#063126;
  --sidebar-w:240px;--header-h:60px;
  --g50:#FAFAFA;--g100:#F4F4F5;--g200:#E4E4E7;--g300:#D4D4D8;
  --g400:#A1A1AA;--g500:#71717A;--g600:#52525B;--g700:#3F3F46;--g900:#09090B;
  --green:#0B4A3A;--green-bg:#E6F0ED;
  --blue:#2563EB;--blue-bg:#DBEAFE;
  --amber:#D97706;--amber-bg:#FEF3C7;
  --red:#DC2626;--red-bg:#FEE2E2;
  --r:8px;--rl:12px;
  --sh:0 1px 3px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.03);
  --sh-md:0 4px 6px -1px rgba(0,0,0,.05);
  --sh-lg:0 10px 15px -3px rgba(0,0,0,.05),0 4px 6px -2px rgba(0,0,0,.03);
}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--g50);color:var(--g900);font-size:14px;line-height:1.5}
.app{display:flex;min-height:100vh}

/* SIDEBAR */
.sidebar{width:var(--sidebar-w);background:#fff;border-right:1px solid var(--g200);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;overflow-y:auto}
.sb-logo{padding:18px 20px 14px;border-bottom:1px solid var(--g100)}
.logo-wrap{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-icon{width:32px;height:32px;background:var(--primary);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px}
.logo-text{font-size:15px;font-weight:700;color:var(--g900)}.logo-text span{color:var(--primary)}
.sb-nav{padding:12px;flex:1}
.nav-sec{font-size:11px;font-weight:600;color:var(--g400);text-transform:uppercase;letter-spacing:.05em;padding:8px 8px 4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r);color:var(--g600);cursor:pointer;transition:all .15s;font-size:13.5px;font-weight:500;border:none;background:none;width:100%;text-align:left;margin-bottom:2px;position:relative}
.nav-item:hover{background:var(--g100);color:var(--g900)}
.nav-item.active{background:var(--primary-light);color:var(--primary)}
.nav-item svg{width:16px;height:16px;flex-shrink:0}
.nav-badge{margin-left:auto;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px}
.sb-footer{padding:12px;border-top:1px solid var(--g100)}
.user-card{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r);cursor:pointer}
.user-av{width:32px;height:32px;border-radius:50%;background:var(--primary-light);color:var(--primary);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.user-name{font-size:13px;font-weight:600;color:var(--g700)}
.user-role{font-size:11px;color:var(--g400)}

/* MAIN */
.main{margin-left:var(--sidebar-w);flex:1;min-height:100vh;display:flex;flex-direction:column}
.page-hdr{height:var(--header-h);background:#fff;border-bottom:1px solid var(--g200);display:flex;align-items:center;padding:0 24px;gap:12px;position:sticky;top:0;z-index:50}
.page-hdr-title{font-size:18px;font-weight:700;color:var(--g900)}
.page-hdr-sub{font-size:13px;color:var(--g500);margin-left:2px}
.page-body{padding:24px;flex:1}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;border:none;white-space:nowrap}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}
.btn-secondary{background:#fff;color:var(--g700);border:1px solid var(--g300)}.btn-secondary:hover{background:var(--g50)}
.btn-ghost{background:transparent;color:var(--g500)}.btn-ghost:hover{background:var(--g100);color:var(--g700)}
.btn-danger{background:var(--red-bg);color:var(--red)}.btn-danger:hover{background:#FCA5A5}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-icon{padding:7px}

/* CARDS */
.card{background:#fff;border:1px solid var(--g200);border-radius:var(--rl)}
.card-hdr{padding:16px 20px;border-bottom:1px solid var(--g100);display:flex;align-items:center;justify-content:space-between}
.card-body{padding:20px}
.stat-card{background:#fff;border:1px solid var(--g200);border-radius:var(--rl);padding:20px}
.stat-val{font-size:28px;font-weight:700;color:var(--g900)}
.stat-lbl{font-size:13px;color:var(--g500);margin-top:2px}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}
.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.b-applied{background:var(--blue-bg);color:var(--blue)}
.b-screening{background:var(--amber-bg);color:var(--amber)}
.b-interview{background:var(--primary-light);color:var(--primary)}
.b-offer{background:#FEF3C7;color:#92400E}
.b-hired{background:var(--green-bg);color:var(--green)}
.b-rejected{background:var(--g100);color:var(--g500)}
.skill-tag{background:var(--g100);color:var(--g600);padding:3px 8px;border-radius:6px;font-size:11px;font-weight:500}

/* SEARCH / FILTERS */
.search-bar{display:flex;align-items:center;gap:8px;background:var(--g100);border-radius:var(--r);padding:0 12px;min-width:240px}
.search-bar input{border:none;background:transparent;outline:none;font-size:13px;color:var(--g700);width:100%;padding:9px 0}
.view-toggle{display:flex;background:var(--g100);border-radius:var(--r);padding:3px;gap:2px}
.view-btn{padding:5px 10px;border-radius:6px;border:none;background:transparent;cursor:pointer;color:var(--g500);transition:all .15s;display:flex;align-items:center;gap:4px;font-size:12px;font-weight:500}
.view-btn.active{background:#fff;color:var(--g900);box-shadow:var(--sh)}

/* TABLE */
.tbl{width:100%;border-collapse:collapse}
.tbl th{padding:10px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--g500);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--g200);background:var(--g50)}
.tbl td{padding:13px 16px;border-bottom:1px solid var(--g100);vertical-align:middle}
.tbl tr:hover td{background:var(--g50)}
.tbl tr:last-child td{border-bottom:none}

/* CANDIDATE */
.cand-av{width:36px;height:36px;border-radius:50%;background:var(--primary-light);color:var(--primary);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stars{display:flex;gap:2px;cursor:pointer}
.star{width:15px;height:15px;color:var(--g300);transition:color .1s}
.star.on{color:#F59E0B}

/* KANBAN */
.kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:16px;align-items:flex-start}
.kb-col{background:var(--g100);border-radius:var(--rl);padding:12px;min-width:272px;max-width:272px;flex-shrink:0}
.kb-col-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:0 2px}
.kb-col-title{font-size:13px;font-weight:600;color:var(--g700);display:flex;align-items:center;gap:8px}
.kb-count{background:#fff;border:1px solid var(--g200);color:var(--g600);font-size:11px;font-weight:700;padding:1px 7px;border-radius:20px}
.kb-card{background:#fff;border:1px solid var(--g200);border-radius:var(--r);padding:13px;margin-bottom:8px;cursor:pointer;transition:box-shadow .15s}
.kb-card:hover{box-shadow:var(--sh-md);border-color:var(--g300)}
.kb-name{font-weight:600;color:var(--g900);font-size:13px}
.kb-pos{font-size:11.5px;color:var(--g500);margin:3px 0 10px}
.score-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px}
.sp-high{background:var(--green-bg);color:var(--green)}
.sp-mid{background:var(--amber-bg);color:var(--amber)}
.sp-low{background:var(--g100);color:var(--g500)}
.kb-add-btn{width:100%;border:1.5px dashed var(--g300);border-radius:var(--r);padding:9px;text-align:center;color:var(--g400);font-size:12.5px;cursor:pointer;background:transparent;transition:all .15s;margin-top:4px;display:block}
.kb-add-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}
.drag-over{border:2px dashed var(--primary)!important;background:var(--primary-light)!important}

/* MODAL */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:#fff;border-radius:var(--rl);box-shadow:var(--sh-lg);width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}
.modal-xl{max-width:980px}
.modal-sm{max-width:480px}
.modal-hdr{padding:20px 24px;border-bottom:1px solid var(--g200);display:flex;align-items:flex-start;gap:14px;flex-shrink:0}
.modal-title{font-size:17px;font-weight:700;color:var(--g900)}
.modal-sub{font-size:13px;color:var(--g500);margin-top:2px}
.modal-x{width:32px;height:32px;border-radius:var(--r);border:none;background:var(--g100);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--g500);flex-shrink:0;margin-left:auto}
.modal-x:hover{background:var(--g200)}
.modal-tabs{display:flex;padding:0 24px;border-bottom:1px solid var(--g200);flex-shrink:0}
.modal-tab{padding:12px 16px;font-size:13px;font-weight:500;color:var(--g500);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}
.modal-tab.active{color:var(--primary);border-bottom-color:var(--primary)}
.modal-body{flex:1;overflow-y:auto;padding:24px}
.modal-ftr{padding:16px 24px;border-top:1px solid var(--g200);display:flex;justify-content:flex-end;gap:10px;flex-shrink:0}

/* FORMS */
.fg{margin-bottom:16px}
.fl{display:block;font-size:13px;font-weight:600;color:var(--g700);margin-bottom:6px}
.fi,.fs,.fta{width:100%;padding:9px 12px;border:1px solid var(--g300);border-radius:var(--r);font-size:13.5px;color:var(--g900);background:#fff;outline:none;transition:border-color .15s;font-family:inherit}
.fi:focus,.fs:focus,.fta:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(124,58,237,.1)}
.fta{resize:vertical;min-height:90px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* SCORE BAR */
.score-bar{height:6px;background:var(--g100);border-radius:3px;overflow:hidden;margin-top:4px}
.score-fill{height:100%;border-radius:3px;transition:width .5s}
.sf-high{background:var(--green)}
.sf-mid{background:var(--amber)}
.sf-low{background:var(--red)}

/* PIPELINE DOTS */
.pipe-steps{display:flex;align-items:center}
.pipe-step{display:flex;align-items:center;flex:1}
.pipe-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid var(--g300);background:#fff;color:var(--g400);flex-shrink:0}
.pipe-dot.done{background:var(--green);border-color:var(--green);color:#fff}
.pipe-dot.cur{background:var(--primary);border-color:var(--primary);color:#fff}
.pipe-line{flex:1;height:2px;background:var(--g200)}
.pipe-line.done{background:var(--green)}

/* CHAT */
.chat-fab{position:fixed;bottom:24px;right:24px;width:48px;height:48px;background:var(--primary);border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-lg);z-index:150;color:#fff;transition:transform .2s}
.chat-fab:hover{transform:scale(1.08)}
.chat-win{position:fixed;bottom:84px;right:24px;width:360px;height:500px;background:#fff;border-radius:var(--rl);box-shadow:var(--sh-lg);border:1px solid var(--g200);z-index:150;display:flex;flex-direction:column;overflow:hidden}
.chat-hdr{padding:14px 16px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.chat-hdr-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.chat-ondot{width:8px;height:8px;border-radius:50%;background:#4ADE80}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}
.chat-msg{max-width:85%}
.chat-msg.user{align-self:flex-end}
.chat-msg.bot{align-self:flex-start}
.chat-bubble{padding:10px 14px;border-radius:16px;font-size:13px;line-height:1.5}
.chat-msg.user .chat-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}
.chat-msg.bot .chat-bubble{background:var(--g100);color:var(--g900);border-bottom-left-radius:4px}
.chat-inp-area{padding:12px 16px;border-top:1px solid var(--g200);display:flex;gap:8px;flex-shrink:0}
.chat-inp{flex:1;border:1px solid var(--g300);border-radius:20px;padding:8px 14px;font-size:13px;outline:none;font-family:inherit}
.chat-inp:focus{border-color:var(--primary)}
.chat-send{width:36px;height:36px;background:var(--primary);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}

/* UPLOAD ZONE */
.upload-zone{border:2px dashed var(--g300);border-radius:var(--rl);padding:40px;text-align:center;cursor:pointer;transition:all .2s}
.upload-zone:hover,.upload-zone.over{border-color:var(--primary);background:var(--primary-light)}

/* LOGIN PAGE */
.login-page{position:fixed;inset:0;background:var(--g50);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}
.login-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--g200);border-radius:24px;box-shadow:var(--sh-lg);display:flex;flex-direction:column;overflow:hidden;animation:slideUp .5s ease-out}
@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.login-hdr{padding:40px 40px 24px;text-align:center}
.login-logo{width:56px;height:56px;background:var(--primary);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:24px;margin:0 auto 20px;box-shadow:0 8px 16px rgba(124,58,237,.25)}
.login-title{font-size:24px;font-weight:800;color:var(--g900);letter-spacing:-.02em}
.login-sub{font-size:14px;color:var(--g500);margin-top:8px}
.login-body{padding:0 40px 40px}
.login-footer{padding:20px;background:var(--g50);text-align:center;font-size:12px;color:var(--g400);border-top:1px solid var(--g100)}

/* UTILS */
.loading-spin{width:28px;height:28px;border:3px solid var(--g200);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}
@keyframes spin{to{transform:rotate(360deg)}}
.empty{text-align:center;padding:60px 20px;color:var(--g500)}
.empty-title{font-size:16px;font-weight:600;color:var(--g700);margin-bottom:6px}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-thumb{background:var(--g200);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:var(--g300)}
.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.justify-between{justify-content:space-between}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.text-sm{font-size:12px}.text-muted{color:var(--g500)}.font-semibold{font-weight:600}.w-full{width:100%}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

/* Toast Container */
.toast-container {
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 380px;
  pointer-events: none;
}
.toast {
  padding: 14px 20px;
  border-radius: var(--r);
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: var(--sh-lg);
  pointer-events: auto;
  animation: toastSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 250px;
  border-left: 4px solid rgba(0,0,0,0.1);
}
.toast.success { background: #059669; }
.toast.error { background: #DC2626; }
.toast.info { background: #2563EB; }
.toast.warning { background: #D97706; }

@keyframes toastSlideIn {
  from { transform: translateX(120%); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

/* --- PREMIUM REDESIGN STYLES --- */
.logo-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.logo-icon-svg {
  flex-shrink: 0;
  border-radius: 8px;
  background: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo-text-container {
  display: flex;
  flex-direction: column;
}
.logo-main-text {
  font-family: 'Times New Roman', Georgia, serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--primary);
  line-height: 1.15;
}
.logo-sub-text {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--g500);
  margin-top: 1px;
}

/* Glassmorphism Cards */
.glass-card {
  background: rgba(255, 255, 255, 0.7) !important;
  backdrop-filter: blur(12px);
  border: 1px solid rgba(228, 228, 231, 0.6) !important;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.02) !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.glass-card:hover {
  transform: translateY(-2px);
  border-color: rgba(11, 74, 58, 0.3) !important;
  box-shadow: 0 10px 30px rgba(11, 74, 58, 0.05) !important;
}

/* AI Recruitment Intelligence Glow Panel */
.glass-glow-panel {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.8), rgba(230, 240, 237, 0.4)) !important;
  border: 1px solid rgba(11, 74, 58, 0.15) !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.glass-glow-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 100% 0%, rgba(11, 74, 58, 0.08) 0%, transparent 60%);
}
.glass-glow-panel:hover {
  transform: translateY(-2px);
  border-color: rgba(11, 74, 58, 0.4) !important;
  box-shadow: 0 12px 40px rgba(11, 74, 58, 0.08) !important;
}

/* Mini Sparkline */
.sparkline-container {
  width: 100%;
  height: 24px;
  margin-top: 12px;
  opacity: 0.8;
  transition: opacity 0.3s;
}
.stat-card:hover .sparkline-container {
  opacity: 1;
}

/* Decision Engine Flow */
.decision-engine-flow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 30px 10px;
  background: #ffffff;
  border: 1px solid var(--g200);
  border-radius: var(--rl);
  position: relative;
  overflow: hidden;
}
.flow-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  z-index: 2;
  width: 130px;
  transition: transform 0.2s;
}
.flow-node:hover {
  transform: scale(1.05);
}
.node-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--primary-light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: bold;
  box-shadow: inset 0 0 0 1px rgba(11, 74, 58, 0.1);
  margin-bottom: 8px;
}
.node-val {
  font-size: 18px;
  font-weight: 700;
  color: var(--g900);
}
.node-lbl {
  font-size: 11px;
  font-weight: 600;
  color: var(--g500);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 2px;
}
.flow-arrow {
  flex: 1;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 0 10px;
}
.flow-arrow svg {
  width: 100%;
  height: 6px;
  overflow: visible;
}
.flow-dash {
  stroke-dasharray: 8, 6;
  animation: flowDash 0.8s linear infinite;
}
@keyframes flowDash {
  to {
    stroke-dashoffset: -14;
  }
}

/* Circular Chart */
.circular-chart {
  display: block;
  max-width: 44px;
  max-height: 44px;
  transition: transform 0.3s;
}
.circular-score-wrapper:hover .circular-chart {
  transform: rotate(5deg) scale(1.05);
}
.circular-chart .circle {
  stroke: var(--primary);
  stroke-linecap: round;
  transition: stroke-dasharray 0.3s ease;
}
.circular-chart .circle-bg {
  stroke: var(--primary-light);
}

/* Premium Candidate Cards */
.premium-candidate-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 16px;
}
.premium-cand-card {
  background: #ffffff;
  border: 1px solid var(--g200);
  border-radius: var(--rl);
  padding: 16px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}
.premium-cand-card:hover {
  transform: translateY(-2px);
  border-color: var(--primary);
  box-shadow: 0 8px 20px rgba(11, 74, 58, 0.04);
}
.cand-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--g900);
}
.cand-position {
  font-size: 12px;
  color: var(--g500);
  margin-top: 2px;
}
.cand-details-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid var(--g100);
}
.cand-metric {
  font-size: 11.5px;
  color: var(--g600);
}

/* AI Talent Map Heatmap */
.talent-map-container {
  background: #ffffff;
  border: 1px solid var(--g200);
  border-radius: var(--rl);
  padding: 24px;
}
.talent-map-grid {
  display: grid;
  grid-template-columns: 140px repeat(3, 1fr);
  gap: 8px;
}
.heatmap-header-cell {
  font-size: 11px;
  font-weight: 700;
  color: var(--g500);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 8px 12px;
  text-align: center;
}
.heatmap-header-cell:first-child {
  text-align: left;
}
.heatmap-label-cell {
  font-size: 13px;
  font-weight: 600;
  color: var(--g800);
  padding: 12px 0;
  display: flex;
  align-items: center;
}
.heatmap-cell {
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  transition: all 0.2s ease;
  position: relative;
  cursor: help;
}
.heatmap-cell:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 10px rgba(11, 74, 58, 0.08);
}
.heatmap-cell-val {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--primary);
}

/* Forecast Cards */
.forecast-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}
.forecast-card {
  background: #ffffff;
  border: 1px solid var(--g200);
  border-radius: var(--rl);
  padding: 20px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.forecast-card:hover {
  transform: translateY(-2px);
  border-color: var(--primary);
  box-shadow: 0 8px 24px rgba(11, 74, 58, 0.03);
}
.forecast-val {
  font-size: 26px;
  font-weight: 800;
  color: var(--g900);
}
.forecast-lbl {
  font-size: 12px;
  font-weight: 600;
  color: var(--g500);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 2px;
}
.forecast-desc {
  font-size: 12px;
  color: var(--g400);
  margin-top: 6px;
  line-height: 1.4;
}

