:root {
  --color-bg:#020617;
  --color-card:#020617;
  --color-border:#1f2937;
  --color-primary:#2563eb;
  --color-primary-soft:#1d4ed8;
  --color-text-main:#e5e7eb;
  --color-text-muted:#9ca3af;
}

*{box-sizing:border-box;}
body{
  margin:0;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
  background:var(--color-bg);
  color:var(--color-text-main);
}
a{text-decoration:none;color:inherit;}
.container{width:100%;max-width:1080px;margin:0 auto;padding:0 1rem;}

.site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(18px);
  background:rgba(2,6,23,.92);
  border-bottom:1px solid var(--color-border);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 0;
}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:600;}
.brand-mark{
  width:28px;height:28px;border-radius:999px;
  background:radial-gradient(circle at 0 0,#38bdf8,#6366f1);
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;color:#0b1120;
}
.brand-text{letter-spacing:.02em;}
.main-nav{display:flex;gap:.9rem;font-size:.85rem;}
.main-nav a{padding:.25rem .7rem;border-radius:999px;}
.main-nav a:hover{background:rgba(148,163,184,.12);}
.header-user{display:flex;align-items:center;gap:.4rem;}
.theme-toggle{
  border:none;background:transparent;cursor:pointer;
  font-size:1rem;color:var(--color-text-main);
}

.site-main{padding:1.4rem 0 2.2rem;}

.section-title{
  font-size:1.1rem;margin-bottom:.6rem;
}

/* Cards / generic shells */
.why{margin-top:.7rem;}
.why-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1rem;
}
.why-card{
  background:var(--color-card);
  border-radius:1.25rem;
  border:1px solid var(--color-border);
  padding:1rem 1.1rem;
  box-shadow:0 22px 60px rgba(15,23,42,.85);
}

/* Simple dashboard bits (used by assistant/blog etc.) */
.kpi-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:.8rem;
}
.kpi-card{
  border-radius:1rem;
  border:1px solid var(--color-border);
  padding:.7rem .8rem;
  background:radial-gradient(circle at 0 0,#1e293b,#020617);
}
.kpi-label{
  font-size:.8rem;color:var(--color-text-muted);margin-bottom:.15rem;
}
.kpi-value{
  font-size:1.1rem;font-weight:600;
}
.kpi-sub{
  font-size:.8rem;color:var(--color-text-muted);margin-top:.1rem;
}

/* Blog */
.blog-list .why-card h3{margin-top:0;font-size:1rem;}
.blog-list .why-card p{font-size:.88rem;}
.chip{
  display:inline-flex;align-items:center;
  padding:.1rem .6rem;border-radius:999px;
  border:1px solid #334155;
  font-size:.72rem;
  background:#020617;color:#cbd5f5;
}
.chip-type{border-color:#1d4ed8;}
.chip-views{border-color:#b91c1c;color:#fecaca;}
.post-meta{
  font-size:.8rem;color:var(--color-text-muted);
}

/* Assistant page */
.assistant-layout{
  display:grid;
  grid-template-columns:minmax(0,2.1fr) minmax(0,1.3fr);
  gap:1rem;
}
.assistant-chat-card{
  min-height:420px;display:flex;flex-direction:column;
}
.assistant-chat-header h2{margin:0 0 .25rem;}
.assistant-chat-header p{
  margin:0;font-size:.85rem;color:var(--color-text-muted);
}
.assistant-chat-messages{
  margin-top:.7rem;padding:.5rem;border-radius:.75rem;
  background:#020617;flex:1;overflow-y:auto;font-size:.85rem;
}
.assistant-chat-message{
  margin-bottom:.45rem;padding:.4rem .55rem;
  border-radius:.7rem;max-width:95%;line-height:1.45;
}
.assistant-chat-message.bot{
  background:#1e293b;border-bottom-left-radius:.15rem;
}
.assistant-chat-message.user{
  background:#020617;border:1px solid #1f2937;
  margin-left:auto;border-bottom-right-radius:.15rem;
}
.assistant-chat-form{margin-top:.6rem;display:flex;gap:.5rem;}
.assistant-chat-form input{
  flex:1;border-radius:999px;border:1px solid #374151;
  padding:.4rem .8rem;font-size:.85rem;
  background:#020617;color:var(--color-text-main);
}
.assistant-chat-form button{
  border-radius:999px;border:none;background:var(--color-primary);
  color:#fff;padding:.4rem 1.1rem;font-size:.85rem;cursor:pointer;
}
.assistant-side{display:flex;flex-direction:column;gap:1rem;}
.assistant-side ul{padding-left:1rem;font-size:.82rem;color:var(--color-text-muted);}

/* Inline article assistant */
.article-assistant{margin-top:1.6rem;}
.article-assistant-card{margin-top:1rem;}
.article-assistant-header h2{margin:0 0 .25rem;font-size:1.02rem;}
.article-assistant-header p{
  margin:0;font-size:.85rem;color:var(--color-text-muted);
}
.article-chat-messages{
  margin-top:.7rem;padding:.5rem;border-radius:.75rem;
  background:#020617;max-height:260px;overflow-y:auto;font-size:.85rem;
}
.article-chat-message{
  margin-bottom:.45rem;padding:.4rem .55rem;border-radius:.7rem;
  max-width:95%;line-height:1.45;
}
.article-chat-message.bot{
  background:#1e293b;border-bottom-left-radius:.15rem;
}
.article-chat-message.user{
  background:#020617;border:1px solid #1f2937;
  margin-left:auto;border-bottom-right-radius:.15rem;
}
.article-chat-form{margin-top:.6rem;display:flex;gap:.5rem;}
.article-chat-form input{
  flex:1;border-radius:999px;border:1px solid #374151;
  padding:.4rem .8rem;font-size:.85rem;
  background:#020617;color:var(--color-text-main);
}
.article-chat-form button{
  border-radius:999px;border:none;background:var(--color-primary);
  color:#fff;padding:.4rem 1.1rem;font-size:.85rem;cursor:pointer;
}

/* Footer */
.site-footer{
  border-top:1px solid var(--color-border);
  margin-top:1.4rem;
}
.footer-inner{
  padding:1rem 0;font-size:.8rem;color:var(--color-text-muted);
}

/* Admin */
.admin-shell{max-width:960px;margin:2rem auto;padding:0 1rem;}
.admin-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;}
.admin-nav a{font-size:.85rem;color:#93c5fd;}
.admin-table{width:100%;border-collapse:collapse;font-size:.85rem;}
.admin-table th,.admin-table td{
  border-bottom:1px solid #1f2937;
  padding:.4rem .3rem;text-align:left;
}
.admin-form label{display:block;font-size:.8rem;margin:.3rem 0 .1rem;color:var(--color-text-muted);}
.admin-form input[type="text"],
.admin-form textarea,
.admin-form select,
.admin-form input[type="password"]{
  width:100%;border-radius:.5rem;border:1px solid #374151;
  padding:.35rem .55rem;font-size:.85rem;
  background:#020617;color:var(--color-text-main);
}
.admin-form textarea{min-height:180px;}
.admin-form button{
  margin-top:.7rem;border-radius:999px;border:none;
  background:var(--color-primary);color:#fff;
  padding:.4rem 1.1rem;font-size:.85rem;cursor:pointer;
}
.admin-login-card{max-width:360px;margin:3rem auto;}

/* Advanced dashboard layout */
.fs-shell {
  max-width:1200px;
  margin:0 auto;
  padding:1.5rem 1rem 3rem;
}
.fs-kicker {
  font-size:.75rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#60a5fa;
  font-weight:600;
}
.fs-title-bar {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:1rem;
  justify-content:space-between;
  margin-bottom:1.5rem;
}
.fs-title-bar h1 {
  font-size:1.75rem;
  color:#e5e7eb;
  margin:.25rem 0;
}
.fs-subtitle {
  color:#9ca3af;
  font-size:.9rem;
  max-width:36rem;
}
.fs-pill {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border-radius:999px;
  padding:.4rem .8rem;
  font-size:.75rem;
  background:rgba(37,99,235,0.12);
  border:1px solid rgba(59,130,246,.4);
  color:#bfdbfe;
  backdrop-filter:blur(10px);
}
.fs-pill-dot {
  width:.45rem;
  height:.45rem;
  border-radius:999px;
  background:#22c55e;
  box-shadow:0 0 0 3px rgba(34,197,94,0.25);
}
.fs-metric-row {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.9rem;
  margin-bottom:1.75rem;
}
.fs-metric-card {
  border-radius:1rem;
  padding:.9rem 1rem;
  background:radial-gradient(circle at top left, rgba(37,99,235,.18), rgba(15,23,42,.9));
  border:1px solid rgba(148,163,184,.25);
  box-shadow:0 18px 40px rgba(15,23,42,.7);
}
.fs-metric-label {
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#9ca3af;
}
.fs-metric-main {
  font-size:1.1rem;
  font-weight:600;
  color:#e5e7eb;
  margin-top:.25rem;
}
.fs-metric-sub {
  font-size:.78rem;
  color:#9ca3af;
  margin-top:.1rem;
}

.fs-main-grid {
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(0,1.1fr);
  gap:1.5rem;
  align-items:flex-start;
}
.fs-card {
  border-radius:1.1rem;
  background:rgba(15,23,42,.9);
  border:1px solid rgba(148,163,184,.25);
  padding:1.1rem 1.1rem;
  box-shadow:0 18px 40px rgba(15,23,42,.8);
}
.fs-card-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  margin-bottom:.8rem;
}
.fs-card-title {
  font-size:.9rem;
  font-weight:600;
}
.fs-card-tagline {
  font-size:.78rem;
  color:#9ca3af;
}
.fs-select {
  background:rgba(15,23,42,.9);
  color:#e5e7eb;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.6);
  padding:.35rem .7rem;
  font-size:.78rem;
  outline:none;
}
.fs-chip-row {
  display:flex;
  flex-wrap:wrap;
  gap:.4rem;
  margin-bottom:.7rem;
}
.fs-chip {
  font-size:.75rem;
  padding:.2rem .65rem;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.35);
  cursor:pointer;
  color:#9ca3af;
  background:rgba(15,23,42,.7);
  transition:all .12s ease-out;
}
.fs-chip:hover {
  border-color:rgba(59,130,246,.8);
  color:#e5e7eb;
}
.fs-chip.fs-chip-active {
  background:linear-gradient(135deg,#2563eb,#4f46e5);
  border-color:transparent;
  color:#e5e7eb;
}
.fs-chart-wrap {
  width:100%;
  height:340px;
}
.fs-chart-wrap canvas {
  width:100%!important;
  height:100%!important;
}

.fs-detail-title {
  font-size:.85rem;
  font-weight:600;
  margin-bottom:.25rem;
}
.fs-detail-meta {
  font-size:.78rem;
  color:#9ca3af;
  margin-bottom:.6rem;
}
.fs-detail-highlight {
  font-size:.9rem;
  color:#e5e7eb;
  margin-bottom:.4rem;
}
.fs-detail-bullets {
  list-style:disc;
  padding-left:1.1rem;
  margin:.3rem 0 .4rem;
  font-size:.8rem;
  color:#9ca3af;
}
.fs-detail-bullets li+li {
  margin-top:.18rem;
}
.fs-click-insight {
  font-size:.78rem;
  color:#9ca3af;
  margin-top:.5rem;
  border-top:1px dashed rgba(148,163,184,.4);
  padding-top:.4rem;
}
.fs-click-value {
  font-weight:600;
  color:#e5e7eb;
}
.fs-source-card h3 {
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:#9ca3af;
  margin-bottom:.4rem;
}
.fs-source-list {
  font-size:.78rem;
  color:#9ca3af;
}
.fs-source-list dt {
  font-weight:600;
  color:#e5e7eb;
  margin-top:.35rem;
}
.fs-source-list dd {
  margin-left:0;
  margin-bottom:.1rem;
}
.fs-source-tag {
  display:inline-block;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  padding:.1rem .4rem;
  border-radius:.5rem;
  background:rgba(15,23,42,.7);
  border:1px solid rgba(148,163,184,.45);
  margin-left:.35rem;
  color:#9ca3af;
}
.fs-small {
  font-size:.72rem;
  color:#6b7280;
}

/* Responsive */
@media (max-width:900px){
  .assistant-layout{grid-template-columns:1fr;}
  .fs-main-grid{grid-template-columns:1fr;}
  .fs-metric-row{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:640px){
  .fs-metric-row{grid-template-columns:minmax(0,1fr);}
}

/* Light theme overrides (fs-light) */
body.fs-light{
  background:#f9fafb;
  color:#0f172a;
}
body.fs-light .site-header{
  background:rgba(255,255,255,.94);
  border-bottom-color:#e5e7eb;
}
body.fs-light .why-card,
body.fs-light .kpi-card,
body.fs-light .assistant-chat-card,
body.fs-light .article-assistant-card,
body.fs-light .fs-card{
  background:#ffffff;
  border-color:#e5e7eb;
  box-shadow:0 18px 40px rgba(15,23,42,.08);
}
body.fs-light .assistant-chat-messages,
body.fs-light .article-chat-messages{
  background:#f3f4f6;
}
body.fs-light .assistant-chat-message.bot,
body.fs-light .article-chat-message.bot{
  background:#e5e7eb;
}
body.fs-light .assistant-chat-message.user,
body.fs-light .article-chat-message.user{
  background:#ffffff;
  border-color:#d1d5db;
}
body.fs-light .fs-card{
  background:#ffffff;
}
body.fs-light .fs-metric-card{
  background:linear-gradient(135deg,#eff6ff,#ffffff);
}
body.fs-light .fs-chip{
  background:#f9fafb;
  border-color:#d1d5db;
  color:#4b5563;
}
body.fs-light .fs-chip.fs-chip-active{
  background:linear-gradient(135deg,#2563eb,#4f46e5);
  color:#e5e7eb;
}