.docs-scope{--docs-primary:#38bdf8;--docs-primary-light:#7dd3fc;--docs-primary-back:rgba(56,189,248,0.08);--docs-border-primary:rgba(56,189,248,0.25);--docs-text:#f1f5f9;--docs-muted:#94a3b8;--docs-border:rgba(255,255,255,0.08);--docs-card-bg:rgba(30,41,59,0.5);--docs-card-border:rgba(255,255,255,0.07);--docs-card-border-hover:rgba(56,189,248,0.35);--docs-code-bg:#0b1220;--docs-success:#34d399;--docs-radius:14px;background:#060b16;color:var(--docs-text);min-height:100vh;font-family:Inter,system-ui,sans-serif}.tuto-hero{position:relative;z-index:1;text-align:center;padding:4rem 2rem 3rem}.tuto-hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;background:var(--docs-primary-back);border:1px solid var(--docs-border-primary);border-radius:100px;padding:.3rem 1rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--docs-primary-light);margin-bottom:1.25rem}.tuto-hero-eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--docs-primary);animation:docs-pulse 2s infinite}@keyframes docs-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.tuto-hero h1{font-family:var(--font-display,Inter),sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;color:var(--docs-text);margin-bottom:.85rem}.tuto-hero h1 span{color:var(--docs-primary)}.tuto-hero p{color:var(--docs-muted);font-size:1.05rem;max-width:520px;margin:0 auto 2rem;line-height:1.7}.tuto-stats{position:relative;z-index:1;display:flex;justify-content:center;gap:2.5rem;margin-bottom:2.5rem}.tuto-stat{text-align:center;display:flex;flex-direction:column;gap:.1rem}.tuto-stat-num{font-family:var(--font-display,Inter),sans-serif;font-size:1.6rem;font-weight:800;color:var(--docs-primary);line-height:1}.tuto-stat-label{font-size:.72rem;color:var(--docs-muted);letter-spacing:.04em;text-transform:uppercase}.tuto-stat-sep{width:1px;background:var(--docs-border-primary);height:36px;align-self:center}.tuto-controls{position:relative;z-index:1;max-width:860px;margin:0 auto 2.5rem;padding:0 1.5rem}.tuto-search-bar{position:relative;margin-bottom:1.25rem}.tuto-search-bar input{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--docs-border-primary);border-radius:12px;padding:.85rem 1.25rem .85rem 2.9rem;color:var(--docs-text);font-size:.95rem;outline:none;transition:border-color .2s,box-shadow .2s}.tuto-search-bar input:focus{border-color:var(--docs-primary);box-shadow:0 0 0 3px rgba(56,189,248,.12)}.tuto-search-bar input::-moz-placeholder{color:var(--docs-muted)}.tuto-search-bar input::placeholder{color:var(--docs-muted)}.tuto-search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--docs-muted);display:flex;align-items:center;pointer-events:none}.tuto-filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tuto-filter-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--docs-muted);margin-right:.25rem}.tuto-filter-sep{flex:1}.tuto-filter-btn{padding:.38rem .9rem;border-radius:100px;border:1px solid var(--docs-border);background:transparent;color:var(--docs-muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.3rem}.tuto-filter-btn:hover{border-color:var(--docs-border-primary);color:var(--docs-primary-light);background:var(--docs-primary-back)}.tuto-filter-btn.active{border-color:var(--docs-primary);background:rgba(56,189,248,.12);color:var(--docs-primary);font-weight:600}.tuto-main{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 1.5rem 5rem}.tuto-section-title{font-family:var(--font-display,Inter),sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--docs-muted);margin-bottom:1.1rem;display:flex;align-items:center;gap:.75rem}.tuto-section-title:after{content:"";flex:1;height:1px;background:var(--docs-border)}.tuto-featured{background:var(--docs-card-bg);border:1px solid var(--docs-card-border);border-radius:20px;overflow:hidden;margin-bottom:3rem;display:flex;text-decoration:none;color:inherit;transition:border-color .3s,transform .25s,box-shadow .3s;position:relative}.tuto-featured:hover{border-color:var(--docs-card-border-hover);transform:translateY(-2px);box-shadow:0 16px 48px rgba(0,0,0,.5),0 0 0 1px rgba(56,189,248,.15)}.tuto-featured-badge{position:absolute;top:1.1rem;right:1.1rem;z-index:2;background:linear-gradient(135deg,var(--docs-primary),var(--docs-primary-light));color:#08121f;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.28rem .75rem;border-radius:100px;display:flex;align-items:center;gap:.3rem}.tuto-featured-content{padding:2.25rem 2rem;display:flex;flex-direction:column;justify-content:center;gap:.9rem;position:relative}.tuto-featured-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.tuto-featured-content h2{font-family:var(--font-display,Inter),sans-serif;font-size:1.5rem;font-weight:800;line-height:1.2;letter-spacing:-.02em;color:var(--docs-text);margin:0}.tuto-featured-content p{font-size:.9rem;line-height:1.7;color:var(--docs-muted);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tuto-cta{display:inline-flex;align-items:center;gap:.4rem;color:var(--docs-primary);font-weight:600;font-size:.88rem;transition:gap .2s}.tuto-featured:hover .tuto-cta{gap:.7rem}.tuto-tag{display:inline-flex;align-items:center;gap:.25rem;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.22rem .6rem;border-radius:6px}.tuto-tag-pwa{background:rgba(52,211,153,.1);color:#34d399;border:1px solid rgba(52,211,153,.25)}.tuto-tag-app{background:rgba(56,189,248,.1);color:#38bdf8;border:1px solid rgba(56,189,248,.25)}.tuto-tag-admin{background:rgba(251,191,36,.1);color:#fbbf24;border:1px solid rgba(251,191,36,.25)}.tuto-tag-general{background:rgba(167,139,250,.1);color:#a78bfa;border:1px solid rgba(167,139,250,.25)}.tuto-tag-debutant{background:rgba(56,189,248,.1);color:var(--docs-primary-light);border:1px solid var(--docs-border-primary)}.tuto-tag-intermediaire{background:rgba(251,191,36,.08);color:#fcd34d;border:1px solid rgba(251,191,36,.2)}.tuto-tag-avance{background:rgba(255,107,107,.08);color:#ff9999;border:1px solid rgba(255,107,107,.2)}.tuto-read-time{font-size:.75rem;color:var(--docs-muted);display:flex;align-items:center;gap:.25rem;flex-wrap:nowrap;flex-shrink:0}.tuto-sep{color:var(--docs-border-primary);font-size:.65rem}.tuto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-bottom:3rem}.tuto-card{background:var(--docs-card-bg);border:1px solid var(--docs-card-border);border-radius:var(--docs-radius);padding:1.35rem;display:flex;flex-direction:column;gap:.75rem;text-decoration:none;color:inherit;transition:border-color .2s,transform .2s,box-shadow .2s;position:relative;overflow:hidden}.tuto-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--docs-primary),var(--docs-primary-light));opacity:0;transition:opacity .2s}.tuto-card:hover{border-color:var(--docs-card-border-hover);transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.45),0 0 0 1px rgba(56,189,248,.08)}.tuto-card:hover:before{opacity:1}.tuto-card-header{display:flex;gap:.5rem;align-items:center}.tuto-card-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tuto-card-icon-pwa{background:rgba(52,211,153,.1);color:#34d399}.tuto-card-icon-app{background:rgba(56,189,248,.1);color:#38bdf8}.tuto-card-icon-admin{background:rgba(251,191,36,.1);color:#fbbf24}.tuto-card-icon-general{background:rgba(167,139,250,.1);color:#a78bfa}.tuto-card h3{font-family:var(--font-display,Inter),sans-serif;font-size:.95rem;font-weight:700;line-height:1.35;letter-spacing:-.01em;color:var(--docs-text);margin:0}.tuto-card-desc{font-size:.82rem;color:var(--docs-muted);line-height:1.65;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tuto-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--docs-border);margin-top:auto;gap:.5rem}.tuto-card-tags{display:flex;gap:.35rem;flex-wrap:wrap}.tuto-card-arrow{color:var(--docs-muted);font-size:.9rem;flex-shrink:0;transition:color .2s,transform .2s}.tuto-card:hover .tuto-card-arrow{color:var(--docs-primary);transform:translateX(4px)}.tuto-no-results{text-align:center;padding:4rem 2rem;color:var(--docs-muted);display:none;grid-column:1/-1}.tuto-no-results.visible{display:block}.tuto-no-results-icon{color:var(--docs-muted);display:flex;justify-content:center;margin-bottom:.75rem;opacity:.6}@media (max-width:1024px){.tuto-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:700px){.tuto-grid{grid-template-columns:1fr}.tuto-card h3{font-size:1.1rem}.tuto-stats{gap:1.5rem}.tuto-main{padding:0 1rem 4rem}.tuto-controls{padding:0 1rem}.tuto-hero{padding:3rem 1rem 2rem}}.docs-progress-bar{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--docs-primary),var(--docs-primary-light));z-index:99;width:0;box-shadow:0 0 8px rgba(56,189,248,.5)}.docs-breadcrumb{position:relative;z-index:1;padding:1.25rem 2rem;display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--docs-muted);max-width:1400px;margin:0 auto;flex-wrap:wrap}.docs-breadcrumb a{color:var(--docs-muted);text-decoration:none;transition:color .2s}.docs-breadcrumb a:hover{color:var(--docs-primary-light)}.docs-breadcrumb .sep{color:var(--docs-border-primary)}.docs-breadcrumb .current{color:var(--docs-text)}.docs-layout{position:relative;z-index:1;max-width:1400px;margin:0 auto;padding:0 2rem 5rem;display:grid;grid-template-columns:1fr 260px;gap:2rem;align-items:start}.docs-layout article{min-width:0;backdrop-filter:blur(6px);background:rgba(128,128,128,.09);padding:30px;border-radius:5px}.article-header{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid var(--docs-border)}.article-meta-row{margin-bottom:1.25rem}.article-meta-row,.meta-info{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.meta-info{font-size:.8rem;color:var(--docs-muted);margin-bottom:1rem}.meta-info .meta-sep{color:var(--docs-border-primary);font-size:.7rem}.meta-info .meta-with-icon{display:inline-flex;align-items:center;gap:.3rem}.docs-layout article h1{font-family:var(--font-display,Inter),sans-serif;font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:800;line-height:1.15;letter-spacing:-.03em;color:var(--docs-text);margin-bottom:1rem}.article-intro{font-size:1.05rem;color:var(--docs-muted);line-height:1.75}.article-body h2{font-size:1.35rem;letter-spacing:-.02em;color:var(--docs-text);margin:2.5rem 0 1rem;display:flex;align-items:center;gap:.75rem;padding-left:.75rem;border-left:3px solid var(--docs-primary)}.article-body h2,.article-body h3{font-family:var(--font-display,Inter),sans-serif;font-weight:700;scroll-margin-top:80px}.article-body h3{font-size:1.05rem;color:var(--docs-primary-light);margin:1.75rem 0 .75rem}.article-body p{font-size:.95rem;line-height:1.8;color:#ccc;margin-bottom:1rem}.article-body ol,.article-body ul{margin:.75rem 0 1rem 1.25rem}.article-body ul{list-style:disc}.article-body ol{list-style:decimal}.article-body li{font-size:.95rem;line-height:1.75;color:#ccc;margin-bottom:.35rem}.article-body li::marker{color:var(--docs-primary)}.article-body a{color:var(--docs-primary);text-decoration:none;border-bottom:1px solid rgba(56,189,248,.3);transition:border-color .2s}.article-body a:hover{border-color:var(--docs-primary)}.article-body strong{color:var(--docs-text);font-weight:600}.article-body blockquote{border-left:3px solid var(--docs-border-primary);padding:.5rem 1rem;margin:1rem 0;color:var(--docs-muted);font-style:italic}.article-body hr{border:none;height:1px;background:linear-gradient(90deg,transparent,var(--docs-border-primary),transparent);margin:2.5rem 0}.article-body table{width:100%;border-collapse:collapse;margin:1.25rem 0;font-size:.88rem}.article-body td,.article-body th{border:1px solid var(--docs-border);padding:.55rem .8rem;text-align:left;color:#ccc}.article-body th{background:rgba(255,255,255,.03);color:var(--docs-text);font-weight:600}.article-body .code-block{background:var(--docs-code-bg);border:1px solid var(--docs-card-border);border-radius:12px;overflow:hidden;margin:1.25rem 0}.article-body .code-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:rgba(255,255,255,.03);border-bottom:1px solid var(--docs-card-border)}.article-body .code-lang{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--docs-primary-light);display:flex;align-items:baseline;gap:.4rem}.article-body .code-dots{display:flex;gap:5px}.article-body .code-dot{width:10px;height:10px;border-radius:50%}.article-body .copy-btn{background:transparent;border:1px solid var(--docs-border);color:var(--docs-muted);font-size:.72rem;padding:.2rem .6rem;border-radius:6px;cursor:pointer;transition:all .2s}.article-body .copy-btn:hover{border-color:var(--docs-border-primary);color:var(--docs-primary-light)}.article-body .copy-btn.copied{border-color:var(--docs-success);color:var(--docs-success)}.article-body .code-content{padding:1rem 1.25rem;overflow-x:auto;background:#0b1120}.article-body .code-content code{line-height:1.75;color:#d8e2f0;white-space:pre;display:block;background:transparent}.article-body .code-content code,.article-body code.inline{font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem}.article-body code.inline{background:var(--docs-card-bg);padding:.1rem .4rem;border-radius:4px;color:var(--docs-primary-light)}.article-body .article-img-real{display:block;max-width:480px;width:100%;margin:1.5rem auto;border-radius:10px;border:1px solid var(--docs-card-border);box-shadow:0 8px 32px rgba(0,0,0,.4)}.article-body .callout{border-radius:12px;padding:1rem 1.25rem;margin:1.25rem 0;display:flex;gap:.85rem;align-items:flex-start}.article-body .callout-icon{flex-shrink:0;margin-top:.15rem;display:flex}.article-body .callout-info{background:rgba(99,179,237,.06);border:1px solid rgba(99,179,237,.2)}.article-body .callout-info .callout-icon{color:#63b3ed}.article-body .callout-warn{background:rgba(251,191,36,.06);border:1px solid rgba(251,191,36,.25)}.article-body .callout-warn .callout-icon{color:#fbbf24}.article-body .callout-success{background:rgba(52,211,153,.06);border:1px solid rgba(52,211,153,.2)}.article-body .callout-success .callout-icon{color:#34d399}.article-body .callout-danger{background:rgba(255,107,107,.06);border:1px solid rgba(255,107,107,.25)}.article-body .callout-danger .callout-icon{color:#ff6b6b}.article-body .callout p{font-size:.88rem;line-height:1.65;margin:0 0 .5rem;color:#ccc}.article-body .callout p:last-child{margin-bottom:0}.article-body .callout strong{color:var(--docs-text)}.article-body .step{background:var(--docs-card-bg);border:1px solid var(--docs-card-border);border-radius:16px;padding:1.5rem 1.5rem 1.5rem 1.25rem;margin:1.75rem 0;position:relative;overflow:hidden}.article-body .step:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--docs-primary),var(--docs-primary-light))}.article-body .title-step{display:flex;flex-direction:row;gap:10px;align-items:center;margin-bottom:.75rem}.article-body .step-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--docs-primary),var(--docs-primary-light));color:#08121f;font-family:var(--font-display,Inter),sans-serif;font-size:.8rem;font-weight:800;flex-shrink:0}.article-body .title-step h3{margin:0;color:var(--docs-text);font-size:1rem}.article-body .step p{font-size:.9rem;color:#bbb;line-height:1.7;margin:0 0 .5rem}.article-body .step p:last-child{margin-bottom:0}.article-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--docs-border)}.article-tag{padding:.3rem .8rem;border-radius:100px;border:1px solid var(--docs-border);font-size:.75rem;color:var(--docs-muted)}.next-tutos{padding-top:2rem}.next-label{font-family:var(--font-display,Inter),sans-serif;font-size:.72rem;font-weight:700;color:var(--docs-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}.next-label:after{content:"";flex:1;height:1px;background:var(--docs-border)}.next-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.next-card{background:var(--docs-card-bg);border:1px solid var(--docs-card-border);border-radius:12px;padding:1.1rem;text-decoration:none;color:inherit;transition:border-color .25s,transform .25s;display:flex;gap:.75rem;align-items:flex-start}.next-card:hover{border-color:var(--docs-card-border-hover);transform:translateY(-2px)}.next-card-icon{flex-shrink:0}.next-card .tuto-card-icon{width:32px;height:32px;border-radius:8px}.next-card h3{font-family:var(--font-display,Inter),sans-serif;font-size:.88rem;font-weight:700;color:var(--docs-text);line-height:1.35;margin-bottom:.25rem}.next-card span{font-size:.75rem;color:var(--docs-muted)}.docs-sidebar{position:sticky;top:20px;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto;max-height:calc(100vh - 40px);scrollbar-width:none}.docs-sidebar::-webkit-scrollbar{display:none}.sidebar-widget{background:var(--docs-card-bg);border:1px solid var(--docs-card-border);border-radius:16px;padding:1.25rem}.widget-title{font-family:var(--font-display,Inter),sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--docs-muted);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.toc-list{list-style:none;display:flex;flex-direction:column;gap:.1rem;margin:0;padding:0}.toc-item a{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:8px;text-decoration:none;color:var(--docs-muted);font-size:.82rem;line-height:1.3;transition:all .2s;border-left:2px solid transparent}.toc-item a:hover{color:var(--docs-primary-light);background:var(--docs-primary-back);border-left-color:var(--docs-primary-light)}.toc-item.active a{color:var(--docs-primary);background:rgba(56,189,248,.08);border-left-color:var(--docs-primary)}.toc-num{font-family:JetBrains Mono,monospace;font-size:.65rem;color:var(--docs-primary);flex-shrink:0;opacity:.7}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--docs-border);font-size:.82rem}.info-row:last-child{border-bottom:none}.info-key{color:var(--docs-muted)}.info-val{color:var(--docs-text);font-weight:500}.info-val.good{color:var(--docs-success)}.help-widget{background:linear-gradient(135deg,rgba(56,189,248,.08),rgba(125,211,252,.04));border:1px solid var(--docs-border-primary);border-radius:16px;padding:1.25rem;text-align:center}.help-widget p{font-size:.83rem;color:var(--docs-muted);line-height:1.6;margin-bottom:1rem}.btn-docs-accent{display:inline-block;background:linear-gradient(135deg,var(--docs-primary),var(--docs-primary-light));color:#08121f;font-weight:700;font-size:.85rem;padding:.55rem 1.2rem;border-radius:10px;text-decoration:none;transition:opacity .2s,transform .2s}.btn-docs-accent:hover{opacity:.9;transform:translateY(-1px)}@media (max-width:900px){.docs-layout{grid-template-columns:1fr;gap:2rem;padding-left:1rem;padding-right:1rem}.docs-sidebar{position:static;max-height:none}.docs-breadcrumb{padding-left:1rem;padding-right:1rem}.next-grid{grid-template-columns:1fr}}.article-body .hljs-comment,.article-body .hljs-quote{color:#7f8c98;font-style:italic}.article-body .hljs-doctag,.article-body .hljs-formula,.article-body .hljs-keyword{color:#c678dd}.article-body .hljs-deletion,.article-body .hljs-name,.article-body .hljs-section,.article-body .hljs-selector-tag,.article-body .hljs-subst{color:#e06c75}.article-body .hljs-literal{color:#56b6c2}.article-body .hljs-addition,.article-body .hljs-attribute,.article-body .hljs-meta .hljs-string,.article-body .hljs-regexp,.article-body .hljs-string{color:#98c379}.article-body .hljs-attr,.article-body .hljs-number,.article-body .hljs-selector-attr,.article-body .hljs-selector-class,.article-body .hljs-selector-pseudo,.article-body .hljs-template-variable,.article-body .hljs-type,.article-body .hljs-variable{color:#d19a66}.article-body .hljs-bullet,.article-body .hljs-link,.article-body .hljs-meta,.article-body .hljs-selector-id,.article-body .hljs-symbol,.article-body .hljs-title{color:#61aeee}.article-body .hljs-built_in,.article-body .hljs-class .hljs-title,.article-body .hljs-title.class_{color:#e6c07b}.article-body .hljs-emphasis{font-style:italic}.article-body .hljs-strong{font-weight:700}