/* FlexoPilot — Docs hub (tabs) & Blog moderne */

/* ─── DOCS HUB ─── */
.docs-hub{padding:0 0 5rem}
.docs-hub-layout{display:grid;grid-template-columns:280px 1fr;gap:2rem;align-items:start}
.docs-hub-sidebar{position:sticky;top:calc(var(--nav-h) + 4.5rem);background:var(--ink-2);border:1px solid var(--smoke);border-radius:var(--radius-lg,12px);padding:1rem;max-height:calc(100vh - var(--nav-h) - 5rem);overflow-y:auto}
.docs-hub-sidebar h4{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.14em;color:var(--brand-light);text-transform:uppercase;margin:.75rem .5rem .35rem}
.docs-hub-sidebar h4:first-child{margin-top:0}
.doc-tab{display:flex;align-items:center;gap:.65rem;width:100%;text-align:left;padding:.55rem .75rem;border:none;border-radius:8px;background:transparent;color:var(--fog);font-family:var(--ff);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .2s}
.doc-tab:hover{background:var(--surface);color:var(--text)}
.doc-tab.active{background:var(--brand-soft);color:var(--white);box-shadow:inset 3px 0 0 var(--brand)}
.doc-tab-icon{width:1.75rem;height:1.75rem;border-radius:6px;background:var(--ink-3);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}
.doc-tab.active .doc-tab-icon{background:var(--brand);color:#fff}
.docs-hub-main{background:var(--ink-2);border:1px solid var(--smoke);border-radius:var(--radius-lg,12px);overflow:hidden;min-height:480px}
.doc-panel{display:none;padding:2rem 2.25rem;animation:docFade .35s ease}
.doc-panel.active{display:block}
@keyframes docFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.doc-panel-header{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:center;margin-bottom:2rem;padding-bottom:1.75rem;border-bottom:1px solid var(--smoke)}
.doc-panel-header h2{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.5rem;line-height:1.15}
.doc-panel-header p{font-size:.92rem;color:var(--cloud);line-height:1.65;max-width:520px}
.doc-panel-tag{display:inline-block;font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-light);margin-bottom:.5rem}
.doc-visual{border-radius:var(--radius);overflow:hidden;border:1px solid var(--smoke);background:var(--ink);min-height:160px;position:relative}
.doc-visual-label{position:absolute;bottom:.5rem;left:.65rem;font-family:var(--ff-mono);font-size:.58rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;z-index:2}

/* Visual: Dashboard */
.vis-dash{padding:1rem}
.vis-dash-bar{display:flex;gap:.35rem;margin-bottom:.65rem}
.vis-dash-bar span{width:8px;height:8px;border-radius:50%;background:var(--smoke)}
.vis-dash-bar span:nth-child(1){background:#ff5f57}
.vis-dash-bar span:nth-child(2){background:#febc2e}
.vis-dash-bar span:nth-child(3){background:#28c840}
.vis-dash-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}
.vis-dash-kpi{background:var(--ink-2);border:1px solid var(--smoke);border-radius:6px;padding:.5rem;text-align:center}
.vis-dash-kpi .n{font-size:1.1rem;font-weight:700;color:var(--brand-light)}
.vis-dash-kpi .l{font-size:.55rem;color:var(--fog);text-transform:uppercase}
.vis-dash-rows{display:flex;flex-direction:column;gap:.35rem}
.vis-dash-row{height:22px;border-radius:4px;background:linear-gradient(90deg,var(--brand-dim) 0%,var(--brand-dim) var(--w,60%),var(--ink-3) var(--w,60%))}

/* Visual: Workflow */
.vis-wf{padding:1.25rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.vis-wf-step{font-size:.62rem;font-weight:600;padding:.35rem .55rem;border-radius:99px;background:var(--ink-2);border:1px solid var(--smoke);color:var(--cloud);white-space:nowrap}
.vis-wf-step.done{background:var(--brand-soft);border-color:var(--brand-dim);color:var(--brand-light)}
.vis-wf-step.cur{background:var(--brand);border-color:var(--brand);color:#fff}
.vis-wf-arrow{color:var(--fog);font-size:.7rem}

/* Visual: Cylinder */
.vis-cyl{padding:1.5rem;display:flex;align-items:center;justify-content:center;gap:1rem}
.vis-cyl-circle{width:80px;height:80px;border-radius:50%;border:3px solid var(--brand);position:relative;background:repeating-linear-gradient(0deg,transparent,transparent 8px,var(--brand-dim) 8px,var(--brand-dim) 9px)}
.vis-cyl-circle::after{content:'';position:absolute;inset:12px;border-radius:50%;border:2px dashed var(--brand-light)}
.vis-cyl-formula{font-family:var(--ff-mono);font-size:.68rem;color:var(--brand-light);line-height:1.6}

/* Visual: Gantt */
.vis-gantt{padding:1rem}
.vis-gantt-row{display:grid;grid-template-columns:52px 1fr;gap:.5rem;align-items:center;margin-bottom:.45rem}
.vis-gantt-m{font-size:.58rem;color:var(--fog);font-family:var(--ff-mono)}
.vis-gantt-track{height:18px;background:var(--ink-3);border-radius:4px;position:relative;overflow:hidden}
.vis-gantt-bar{position:absolute;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--brand),var(--brand-light))}

/* Visual: Live Board */
.vis-live{padding:1rem;display:flex;flex-direction:column;gap:.5rem}
.vis-live-job{padding:.65rem .75rem;border-left:3px solid var(--brand);background:var(--ink-2);border-radius:0 6px 6px 0}
.vis-live-job.warn{border-left-color:var(--warn)}
.vis-live-job .t{font-size:.72rem;font-weight:600}
.vis-live-job .s{font-size:.58rem;color:var(--fog)}

/* Visual: Portal */
.vis-portal{padding:1rem}
.vis-portal-card{background:var(--ink-2);border:1px solid var(--smoke);border-radius:8px;padding:.75rem;margin-bottom:.5rem}
.vis-portal-btns{display:flex;gap:.4rem;margin-top:.5rem}
.vis-portal-btns span{font-size:.58rem;padding:.25rem .5rem;border-radius:4px;font-weight:600}
.vis-portal-btns .ok{background:rgba(34,197,94,.15);color:var(--success)}
.vis-portal-btns .no{background:var(--ink-3);color:var(--fog)}

.doc-steps{display:grid;gap:.75rem;margin:1.5rem 0}
.doc-step{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;padding:1rem 1.15rem;background:var(--ink);border:1px solid var(--smoke);border-radius:var(--radius);transition:border-color .2s}
.doc-step:hover{border-color:var(--brand-dim)}
.doc-step-num{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--brand-soft);color:var(--brand-light);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.doc-step h4{font-size:.95rem;font-weight:700;margin-bottom:.25rem}
.doc-step p{font-size:.82rem;color:var(--cloud);margin:0;line-height:1.55}
.doc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.25rem 0}
.doc-feature-card{padding:1.15rem;background:var(--ink);border:1px solid var(--smoke);border-radius:var(--radius)}
.doc-feature-card h4{font-size:.9rem;font-weight:700;margin-bottom:.35rem;display:flex;align-items:center;gap:.5rem}
.doc-hub-nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 2.25rem;border-top:1px solid var(--smoke);background:var(--ink)}
.doc-hub-nav button,.doc-hub-nav a{font-size:.82rem}

/* Mobile tabs */
.docs-hub-tabs-mobile{display:none;overflow-x:auto;gap:.35rem;padding:.75rem 0;margin-bottom:1rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.docs-hub-tabs-mobile::-webkit-scrollbar{display:none}
.docs-hub-tabs-mobile .doc-tab{flex:0 0 auto;white-space:nowrap}

/* ─── BLOG MODERNE ─── */
.blog-hero-featured{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:var(--ink-2);border:1px solid var(--smoke);border-radius:var(--radius-lg,12px);overflow:hidden;margin-bottom:2.5rem;transition:all .3s}
.blog-hero-featured:hover{border-color:var(--brand-dim);transform:translateY(-2px)}
.blog-hero-visual{min-height:320px;background:linear-gradient(135deg,var(--brand-dim) 0%,var(--ink) 50%,var(--ink-3) 100%);position:relative;display:flex;align-items:center;justify-content:center;padding:2rem}
.blog-hero-visual-inner{width:100%;max-width:340px}
.blog-hero-body{padding:2.5rem;display:flex;flex-direction:column;justify-content:center}
.blog-hero-body .blog-meta{margin-bottom:1rem}
.blog-hero-body h2{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;line-height:1.2;letter-spacing:-.03em;margin-bottom:1rem}
.blog-hero-body h2 a{color:inherit}
.blog-hero-body p{font-size:.95rem;color:var(--cloud);line-height:1.7;margin-bottom:1.5rem;flex:1}
.blog-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.blog-filter{padding:.4rem 1rem;border-radius:99px;border:1px solid var(--smoke);background:transparent;color:var(--fog);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .2s;font-family:var(--ff)}
.blog-filter:hover,.blog-filter.active{background:var(--brand);border-color:var(--brand);color:#fff}
.blog-grid-modern{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.blog-card-modern{background:var(--ink-2);border:1px solid var(--smoke);border-radius:var(--radius-lg,12px);overflow:hidden;display:flex;flex-direction:column;transition:all .28s}
.blog-card-modern:hover{border-color:var(--brand-dim);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.25)}
.blog-card-modern.hidden{display:none}
.blog-cover{height:200px;position:relative;overflow:hidden}
.blog-cover-art{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.blog-cover-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,8,10,.85))}
.blog-cover-cat{position:absolute;top:.75rem;left:.75rem;font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);padding:.3rem .6rem;border-radius:99px;color:var(--brand-light)}
.blog-card-modern .body{padding:1.35rem 1.5rem 1.5rem;flex:1;display:flex;flex-direction:column}
.blog-card-modern h3{font-size:1.1rem;font-weight:700;line-height:1.3;margin-bottom:.5rem;letter-spacing:-.02em}
.blog-card-modern h3 a{color:inherit}
.blog-card-modern p{font-size:.82rem;color:var(--cloud);line-height:1.6;flex:1;margin-bottom:1rem}
.blog-card-foot{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:var(--fog)}
.blog-read-time{display:flex;align-items:center;gap:.35rem}

/* Cover art themes */
.cover-cyl{background:radial-gradient(circle at 30% 40%,var(--brand-dim),var(--ink));display:grid;place-items:center}
.cover-cyl svg{width:120px;height:120px;opacity:.9}
.cover-excel{background:linear-gradient(135deg,#1d6f42 0%,#0d3d24 100%)}
.cover-live{background:linear-gradient(135deg,var(--ink-3),var(--brand-dim))}
.cover-margin{background:linear-gradient(135deg,#0f172a,var(--brand-dim))}

/* Article moderne */
.article-modern{max-width:760px;margin:0 auto}
.article-hero-visual{height:280px;border-radius:var(--radius-lg,12px);overflow:hidden;margin-bottom:2rem;border:1px solid var(--smoke);position:relative}
.article-hero-visual .blog-cover-art{height:100%}
.reading-bar{position:fixed;top:var(--nav-h);left:0;height:3px;background:var(--brand);width:0;z-index:210;transition:width .1s}
.article-toc{position:sticky;top:calc(var(--nav-h) + 2rem);background:var(--ink-2);border:1px solid var(--smoke);border-radius:var(--radius);padding:1.25rem;font-size:.8rem}
.article-toc h4{font-size:.65rem;font-family:var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-light);margin-bottom:.75rem}
.article-toc a{display:block;color:var(--fog);padding:.3rem 0;border-left:2px solid transparent;padding-left:.65rem;transition:all .2s}
.article-toc a:hover,.article-toc a.active{color:var(--white);border-left-color:var(--brand)}
.article-layout-wide{display:grid;grid-template-columns:1fr 200px;gap:3rem;align-items:start;padding:2rem 0 5rem}
.article-modern .article-lead{font-size:1.15rem;color:var(--silver);line-height:1.75;margin-bottom:2rem;font-weight:500}
.article-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}
.article-stat{padding:1rem;background:var(--brand-soft);border:1px solid var(--brand-dim);border-radius:var(--radius);text-align:center}
.article-stat .n{font-size:1.5rem;font-weight:800;color:var(--brand-light)}
.article-stat .l{font-size:.68rem;color:var(--fog);text-transform:uppercase;letter-spacing:.06em}

@media(max-width:1024px){
  .docs-hub-layout,.doc-panel-header,.blog-hero-featured,.article-layout-wide{grid-template-columns:1fr}
  .docs-hub-sidebar{display:none}
  .docs-hub-tabs-mobile{display:flex}
  .doc-panel-header .doc-visual{max-height:200px}
  .blog-grid-modern{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .blog-grid-modern,.doc-grid-2{grid-template-columns:1fr}
  .doc-panel{padding:1.25rem}
  .doc-hub-nav{padding:1rem 1.25rem;flex-wrap:wrap;gap:.75rem}
  .article-toc{display:none}
}
