@import url('../../assets/tokens/css-variables.css');
@import url('../../assets/tokens/typography.css');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html,body{
  min-height:100%;
  font-family:var(--klj-font);
}

body{
  background:var(--klj-splash-from);
  color:var(--klj-text);
}

/* ── Page shell ── */
.hub-page{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  justify-content:center;
  padding:clamp(16px,3vh,32px) clamp(16px,4vw,40px);
}

.hub-bg{
  position:fixed;
  inset:0;
  z-index:0;
  background:
    radial-gradient(ellipse 75% 55% at 50% 18%, rgba(255,255,255,.85) 0%, transparent 68%),
    linear-gradient(180deg, var(--klj-splash-from) 0%, #E4F7F4 50%, var(--klj-splash-to) 100%),
    url('/assets/splash/klaijai-splash-v2-community.svg') center bottom / cover no-repeat;
}

.hub-wrap{
  position:relative;
  z-index:1;
  width:100%;
  max-width:960px;
  margin:0 auto;
}

/* ── Glass main panel ── */
.hub-main{
  background:rgba(255,255,255,.48);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.75);
  border-radius:clamp(20px,4vw,28px);
  padding:clamp(20px,4vw,32px) clamp(18px,3.5vw,28px) clamp(22px,4vw,28px);
  box-shadow:
    0 8px 40px rgba(15,142,147,.07),
    0 1px 0 rgba(255,255,255,.8) inset;
}

/* ── Top nav ── */
.hub-top{
  display:flex;
  justify-content:flex-end;
  margin-bottom:clamp(10px,2vh,16px);
  max-width:960px;
  margin-left:auto;
  margin-right:auto;
}
.hub-top-link{
  font-size:clamp(11px,2.6vw,12px);
  font-weight:var(--klj-weight-medium);
  color:var(--klj-brand-tagline);
  text-decoration:none;
  padding:7px 14px;
  border-radius:20px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 2px 10px rgba(15,142,147,.06);
  transition:background .2s,color .2s,transform .2s;
}
.hub-top-link:hover{
  background:#fff;
  color:var(--klj-primary-600);
  transform:translateY(-1px);
}

/* ── Hero ── */
.hub-hero{
  text-align:center;
  margin-bottom:clamp(22px,4vh,30px);
  animation:hub-fade-up .65s ease-out both;
}
@keyframes hub-fade-up{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}

.hub-logo{
  width:clamp(92px,18vw,108px);
  height:clamp(92px,18vw,108px);
  margin:0 auto clamp(12px,2.5vh,16px);
  filter:drop-shadow(0 10px 28px rgba(15,142,147,.26));
  animation:hub-float 4s ease-in-out infinite;
}
@keyframes hub-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}
.hub-logo img{width:100%;height:100%;object-fit:contain;display:block}

.hub-brand-th{
  font-size:clamp(34px,7vw,46px);
  line-height:1.05;
  letter-spacing:-0.02em;
}
.hub-brand-en{font-size:clamp(20px,4.5vw,26px);margin-top:4px}
.hub-tagline{font-size:clamp(14px,3vw,16px);margin-top:clamp(8px,1.6vh,12px)}
.hub-tagline-heart{color:var(--klj-primary-400)}
.hub-subtitle{font-size:clamp(11px,2.6vw,13px);margin-top:5px;max-width:36em;margin-left:auto;margin-right:auto}

.hub-icd{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px;
  margin-top:clamp(10px,2vh,14px);
}
.hub-icd-chip{
  font-size:clamp(9px,2.1vw,10px);
  font-weight:var(--klj-weight-medium);
  padding:4px 11px;
  border-radius:9999px;
  border:1px solid transparent;
}
.hub-icd-f20{background:rgba(15,142,147,.1);color:var(--klj-primary-700);border-color:rgba(15,142,147,.2)}
.hub-icd-f30{background:rgba(59,130,246,.08);color:#1D4ED8;border-color:rgba(59,130,246,.18)}
.hub-icd-f10{background:rgba(245,158,11,.1);color:#B45309;border-color:rgba(245,158,11,.22)}

.hub-stats-panel{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  max-width:480px;
  margin:clamp(14px,2.8vh,18px) auto 0;
  padding:clamp(12px,2.2vh,14px) clamp(10px,2vw,14px);
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.95);
  border-radius:clamp(14px,3vw,18px);
  box-shadow:0 4px 18px rgba(15,142,147,.07);
}
.hub-stat-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
  padding:4px 6px;
  position:relative;
}
.hub-stat-item:not(:last-child)::after{
  content:'';
  position:absolute;
  right:0;top:12%;bottom:12%;
  width:1px;
  background:var(--klj-border);
}
.hub-stat-val{
  font-size:clamp(17px,3.5vw,22px);
  font-weight:var(--klj-weight-bold);
  color:var(--klj-primary-600);
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.hub-stat-lbl{
  font-size:clamp(9px,2vw,10px);
  color:var(--klj-brand-subtitle);
  font-weight:var(--klj-weight-medium);
}

/* ── Pick section ── */
.hub-pick{
  animation:hub-fade-up .65s .1s ease-out both;
}
.hub-pick-label{
  font-size:clamp(9px,2.1vw,10px);
  font-weight:var(--klj-weight-semibold);
  color:var(--klj-brand-tagline);
  text-transform:uppercase;
  letter-spacing:var(--klj-tracking-label);
  text-align:center;
  margin-bottom:clamp(10px,2vh,14px);
}

.hub-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(14px,2.5vw,18px);
  align-items:stretch;
  max-width:100%;
  margin:0 auto;
}

.hub-card{
  display:flex;
  flex-direction:column;
  text-decoration:none;
  color:inherit;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.98);
  border-radius:clamp(14px,3vw,18px);
  padding:clamp(16px,3vw,20px);
  box-shadow:0 3px 18px rgba(15,142,147,.07);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
  overflow:hidden;
  min-height:0;
  text-align:left;
}
.hub-card:hover{
  transform:translateY(-4px);
  box-shadow:0 10px 32px rgba(15,142,147,.13);
  border-color:rgba(15,142,147,.16);
}
.hub-card--app{border-top:3px solid var(--klj-primary-500)}
.hub-card--dash{border-top:3px solid var(--klj-dash-teal);padding-top:0}

.hub-card-preview{
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 12px;
  margin:0 calc(-1 * clamp(16px,3vw,20px)) 12px;
  background:linear-gradient(135deg,var(--klj-dash-bg) 0%,#111827 100%);
  border-bottom:1px solid rgba(0,188,212,.15);
}
.hub-card--dash .hub-card-head{margin-top:4px}
.hub-preview-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--klj-status-ok);
  box-shadow:0 0 6px rgba(34,197,94,.6);
  flex-shrink:0;
}
.hub-preview-bar{height:4px;flex:1;border-radius:2px;background:rgba(0,188,212,.35)}
.hub-preview-bar.short{flex:.45;opacity:.5}

.hub-card-head{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.hub-card-icon{
  width:42px;height:42px;flex-shrink:0;
  border-radius:var(--klj-radius-md);
  display:flex;align-items:center;justify-content:center;
}
.hub-card-icon svg{width:21px;height:21px}
.hub-card--app .hub-card-icon{
  background:linear-gradient(135deg,var(--klj-primary-100),var(--klj-primary-50));
  border:1px solid var(--klj-primary-200);
  color:var(--klj-primary-600);
}
.hub-card--dash .hub-card-icon{
  background:rgba(0,188,212,.12);
  border:1px solid rgba(0,188,212,.25);
  color:var(--klj-dash-teal);
}

.hub-card h2{
  font-size:clamp(14px,3.2vw,16px);
  font-weight:var(--klj-weight-semibold);
  line-height:1.25;
}
.hub-card--app h2{color:var(--klj-primary-700)}
.hub-card--dash h2{color:#0E7490}
.hub-card-role{
  font-size:clamp(10px,2.2vw,11px);
  color:var(--klj-brand-subtitle);
  margin-top:2px;
}

.hub-card-features{
  list-style:none;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:0;
  margin-bottom:10px;
}
.hub-card-features li{
  display:flex;
  align-items:flex-start;
  gap:8px;
  font-size:clamp(10px,2.2vw,11px);
  color:var(--klj-brand-tagline);
  line-height:1.38;
  padding:6px 0;
  border-bottom:1px solid rgba(226,232,240,.55);
}
.hub-card-features li:last-child{border-bottom:none;padding-bottom:0}
.feat-num{
  flex-shrink:0;
  width:17px;height:17px;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:var(--klj-weight-bold);
  border-radius:5px;
  margin-top:1px;
}
.hub-card--app .feat-num{
  background:var(--klj-primary-100);
  color:var(--klj-primary-700);
}
.hub-card--dash .feat-num{
  background:rgba(0,188,212,.15);
  color:#0E7490;
}

.hub-card-cta{
  display:block;
  text-align:center;
  font-size:clamp(11px,2.5vw,12px);
  font-weight:var(--klj-weight-semibold);
  padding:10px 12px;
  margin-top:auto;
  border-radius:var(--klj-radius-sm);
  border:1px solid transparent;
  transition:background .2s,border-color .2s;
  flex-shrink:0;
}
.hub-card--app .hub-card-cta{
  color:var(--klj-primary-600);
  background:rgba(15,142,147,.06);
  border-color:rgba(15,142,147,.12);
}
.hub-card--app:hover .hub-card-cta{
  background:rgba(15,142,147,.12);
  border-color:rgba(15,142,147,.22);
}
.hub-card--dash .hub-card-cta{
  color:var(--klj-dash-teal);
  background:rgba(0,188,212,.08);
  border-color:rgba(0,188,212,.15);
}
.hub-card--dash:hover .hub-card-cta{
  background:rgba(0,188,212,.14);
  border-color:rgba(0,188,212,.25);
}

/* ── Footer ── */
.hub-footer{
  text-align:center;
  margin-top:clamp(20px,3.5vh,26px);
  padding-top:clamp(14px,2.5vh,18px);
  border-top:1px solid rgba(226,232,240,.7);
  animation:hub-fade-up .65s .2s ease-out both;
}
.hub-footer p{
  font-size:clamp(10px,2.3vw,11px);
  color:var(--klj-brand-subtitle);
  line-height:1.5;
  max-width:38em;
  margin-left:auto;
  margin-right:auto;
}
.hub-footer-sub{margin-top:4px;opacity:.85}

/* ── Responsive ── */
@media(max-width:680px){
  .hub-cards{grid-template-columns:1fr;max-width:420px}
  .hub-main{padding:clamp(16px,4vw,22px) clamp(14px,3.5vw,18px)}
}

@media(max-width:400px){
  .hub-stats-panel{grid-template-columns:repeat(2,1fr);max-width:100%}
  .hub-stat-item:nth-child(2)::after{display:none}
  .hub-stat-item{padding:8px 4px}
}

@media(max-height:700px){
  .hub-logo{width:76px;height:76px;margin-bottom:8px}
  .hub-brand-th{font-size:30px}
  .hub-icd{display:none}
}

@media(min-width:900px){
  .hub-wrap{max-width:1000px}
  .hub-cards{gap:20px}
}
