:root{
  --brand:#0ea5a4; --brand-dark:#0f766e; --brand-light:#ccfbf1;
  --ink:#0f172a; --muted:#64748b; --line:#e2e8f0; --bg:#f1f5f9;
  --sidebar:#0b3b3a; --sidebar-2:#0f766e;
}
*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}
body{background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{text-decoration:none}
.text-brand{color:var(--brand-dark)!important}
.bg-brand{background:var(--brand)!important}
.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-brand:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}
.btn-outline-brand{color:var(--brand-dark);border-color:var(--brand)}
.btn-outline-brand:hover{background:var(--brand);color:#fff}

/* ---------- App shell ---------- */
.app-wrap{display:flex;min-height:100vh}
.sidebar{width:260px;flex-shrink:0;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:#cbeae8;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;z-index:1040;transition:.25s}
.sidebar .brand{padding:20px 22px;font-weight:800;font-size:1.15rem;color:#fff;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand .dot{width:32px;height:32px;border-radius:9px;background:var(--brand);display:grid;place-items:center;color:#fff;font-size:1rem}
.sidebar .nav-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#5fbdb8;padding:16px 22px 6px;font-weight:700}
.sidebar a.side-link{display:flex;align-items:center;gap:12px;padding:10px 22px;color:#bfe6e3;font-size:.92rem;font-weight:500;border-left:3px solid transparent}
.sidebar a.side-link:hover{background:rgba(255,255,255,.06);color:#fff}
.sidebar a.side-link.active{background:rgba(14,165,164,.18);color:#fff;border-left-color:var(--brand)}
.sidebar a.side-link i{font-size:1.05rem;width:20px;text-align:center}
.content{flex:1;margin-left:260px;min-width:0}
.topbar{background:#fff;border-bottom:1px solid var(--line);padding:12px 24px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:1030}
.topbar .page-title{font-weight:700;font-size:1.1rem;margin:0}
.main{padding:26px 24px}
@media(max-width:991px){.sidebar{left:-280px}.sidebar.show{left:0;box-shadow:0 0 40px rgba(0,0,0,.3)}.content{margin-left:0}}
.backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1035}
.backdrop.show{display:block}

/* ---------- Cards / stats ---------- */
.card{border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.card-head{font-weight:700;font-size:.98rem}
.stat-card{border-radius:14px;padding:18px 20px;background:#fff;border:1px solid var(--line)}
.stat-card .ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem}
.stat-card .num{font-size:1.6rem;font-weight:800;line-height:1}
.stat-card .lbl{color:var(--muted);font-size:.82rem;font-weight:600}
.soft-teal{background:var(--brand-light);color:var(--brand-dark)}
.soft-blue{background:#dbeafe;color:#1d4ed8}
.soft-amber{background:#fef3c7;color:#b45309}
.soft-rose{background:#ffe4e6;color:#be123c}
.soft-violet{background:#ede9fe;color:#6d28d9}
.soft-green{background:#dcfce7;color:#15803d}

.badge-soft{padding:.35em .7em;border-radius:999px;font-weight:600;font-size:.74rem}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}

/* ---------- Journey timeline ---------- */
.flow-track{position:relative;padding-left:8px}
.flow-step{display:flex;gap:14px;padding-bottom:2px}
.flow-step .rail{display:flex;flex-direction:column;align-items:center}
.flow-step .bullet{width:26px;height:26px;border-radius:50%;background:#e2e8f0;color:#94a3b8;display:grid;place-items:center;font-size:.8rem;flex-shrink:0;z-index:1}
.flow-step .line{flex:1;width:2px;background:#e2e8f0}
.flow-step.done .bullet{background:var(--brand);color:#fff}
.flow-step.done .line{background:var(--brand)}
.flow-step.current .bullet{background:#0ea5a4;color:#fff;box-shadow:0 0 0 4px var(--brand-light)}
.flow-step .body{padding-bottom:20px}
.flow-step .body .t{font-weight:600;font-size:.9rem}

/* ---------- Public site ---------- */
.hero{background:linear-gradient(120deg,#0b3b3a,#0f766e 60%,#0ea5a4);color:#fff;border-radius:0 0 28px 28px}
.hero h1{font-weight:800}
.pub-nav{background:#fff;border-bottom:1px solid var(--line)}
.feature-ico{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:1.5rem}
.hover-lift{transition:.2s}
.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(15,23,42,.10)}
.rating-star{color:#f59e0b}
footer.site{background:var(--ink);color:#cbd5e1}

/* ==========================================================================
   UI/UX ENHANCEMENT PACK — animations, 3D hover, gradient motion, polish
   ========================================================================== */

/* Respect reduced-motion preference first */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

html { scroll-behavior: smooth; }

/* ---------- Animated gradient hero ---------- */
.hero{
  background: linear-gradient(120deg,#0b3b3a,#0f766e 45%,#0ea5a4 75%,#14b8a6);
  background-size: 200% 200%;
  animation: heroShift 12s ease-in-out infinite;
  position: relative;
  overflow: hidden;
}
@keyframes heroShift { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
.hero::before{
  content:'';
  position:absolute; inset:0;
  background-image: radial-gradient(circle at 20% 20%, rgba(255,255,255,.08) 0, transparent 40%),
                     radial-gradient(circle at 85% 75%, rgba(255,255,255,.06) 0, transparent 45%);
  pointer-events:none;
}
.hero > * { position: relative; z-index: 1; }
.hero h1 { animation: fadeInUp .7s ease both; }
.hero p, .hero .hero-cta { animation: fadeInUp .7s ease .12s both; }
.hero-visual { animation: floatY 5s ease-in-out infinite; }
@keyframes floatY { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-12px); } }

/* ---------- Page-load fade-in (safe: no JS required, no hidden fallback) ---------- */
@keyframes fadeInUp { from { opacity:0; transform: translateY(18px);} to { opacity:1; transform:none; } }
section > .container > h2 { animation: fadeInUp .6s ease both; }

/* ---------- 3D tilt cards (pure CSS, no JS needed) ---------- */
.hover-lift, .tilt-card, .feature-ico { transform-style: preserve-3d; perspective: 800px; }
.hover-lift{ transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
.hover-lift:hover{
  transform: translateY(-8px) rotateX(3deg) rotateY(-3deg) scale(1.015);
  box-shadow: 0 20px 40px rgba(15,23,42,.14);
}
.tilt-card{ transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease; }
.tilt-card:hover{
  transform: translateY(-6px) rotateX(2deg) rotateY(2deg);
  box-shadow: 0 18px 36px rgba(14,165,164,.16);
}

/* Regular (non-hover-lift) cards still get a gentle lift so the whole UI feels alive */
.card{ transition: box-shadow .25s ease, transform .25s ease; }
.card:hover{ box-shadow: 0 8px 22px rgba(15,23,42,.08); }

/* ---------- Buttons: glow + press feedback ---------- */
.btn-brand{ transition: all .25s ease; box-shadow: 0 2px 8px rgba(14,165,164,.25); }
.btn-brand:hover{ box-shadow: 0 8px 20px rgba(14,165,164,.38); transform: translateY(-2px); }
.btn-brand:active{ transform: translateY(0) scale(.98); }
.btn-outline-brand{ transition: all .25s ease; }
.btn-outline-brand:hover{ transform: translateY(-2px); }

/* ---------- Feature icons: subtle bounce on hover ---------- */
.feature-ico{ transition: transform .3s cubic-bezier(.34,1.56,.64,1); }
.card:hover .feature-ico, .hover-lift:hover .feature-ico{ transform: rotateY(360deg) scale(1.08); }

/* ---------- Stat cards: number pop ---------- */
.stat-card{ transition: transform .3s ease, box-shadow .3s ease; }
.stat-card:hover{ transform: translateY(-4px); box-shadow: 0 12px 26px rgba(15,23,42,.10); }

/* ---------- Sidebar link micro-interaction ---------- */
.sidebar a.side-link{ transition: background .2s ease, color .2s ease, padding-left .2s ease; }
.sidebar a.side-link:hover{ padding-left: 26px; }

/* ---------- Badges pulse when "current" in journey flow ---------- */
.flow-step.current .bullet{ animation: pulseRing 1.8s ease-in-out infinite; }
@keyframes pulseRing {
  0%   { box-shadow: 0 0 0 0 rgba(14,165,164,.45); }
  70%  { box-shadow: 0 0 0 10px rgba(14,165,164,0); }
  100% { box-shadow: 0 0 0 0 rgba(14,165,164,0); }
}

/* ---------- Smooth topbar shadow on scroll (class toggled is optional; safe default) ---------- */
.topbar{ transition: box-shadow .2s ease; }

/* ---------- Avatar ring ---------- */
.avatar{ transition: transform .25s ease; box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--brand-light); }
.hover-lift:hover .avatar{ transform: scale(1.08); }

/* ---------- Public nav: smoother active underline ---------- */
.pub-nav .nav-link{ position: relative; transition: color .2s ease; }
.pub-nav .nav-link.active::after, .pub-nav .nav-link:hover::after{
  content:''; position:absolute; left:8px; right:8px; bottom:-2px; height:2px; background:var(--brand); border-radius:2px;
}

/* ---------- Footer subtle top glow ---------- */
footer.site{ position: relative; }
footer.site::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, transparent, var(--brand), transparent);
}

/* ---------- Mobile polish ---------- */
@media (max-width: 767px){
  .hero{ border-radius: 0 0 20px 20px; }
  .hero h1{ font-size: 1.7rem; }
  .main{ padding: 18px 14px; }
  .hover-lift:hover, .tilt-card:hover{ transform: translateY(-4px); } /* less rotation on touch devices */
}

/* ---------- Loading / skeleton shimmer (available for future async widgets) ---------- */
.skeleton{ background: linear-gradient(90deg,#eef2f5 25%,#f8fafc 37%,#eef2f5 63%); background-size: 400% 100%; animation: shimmer 1.4s ease infinite; border-radius: 8px; }
@keyframes shimmer { 0%{background-position:100% 50%} 100%{background-position:0 50%} }

/* ---------- Scrollbar polish (webkit) ---------- */
::-webkit-scrollbar{ width:8px; height:8px; }
::-webkit-scrollbar-thumb{ background:#cbd5e1; border-radius:8px; }
::-webkit-scrollbar-thumb:hover{ background:#94a3b8; }

/* ---------- Focus visibility (accessibility, kept crisp) ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--brand); outline-offset: 2px;
}
