.site-footer[data-v-84c04301]{background:var(--blue-dark);color:#fff;border-top:3px solid var(--gold);text-align:center;margin-top:60px;padding:36px 20px 28px;font-size:.88rem}.footer-logos[data-v-84c04301]{flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;margin-bottom:24px;display:flex}.footer-logo[data-v-84c04301]{object-fit:contain;filter:brightness(0)invert();opacity:.75;width:auto;height:36px;transition:opacity .15s}.footer-logo[data-v-84c04301]:hover{opacity:1}.footer-logo-divider[data-v-84c04301]{background:#ffffff26;width:1px;height:28px}.site-footer p[data-v-84c04301]{color:#94a3b8;margin:5px 0}.site-nav[data-v-4c24c121]{background:var(--white);border-bottom:2px solid var(--gold);z-index:1000;box-shadow:none;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.nav-links[data-v-4c24c121]{align-items:center;height:100%;display:flex}.nav-links a[data-v-4c24c121]{height:100%;color:var(--text-muted);border-bottom:3px solid #0000;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s;display:flex}.nav-links a[data-v-4c24c121]:hover,.nav-links a.active[data-v-4c24c121]{color:var(--blue-main);border-bottom-color:var(--blue-main);background:#0066b30a}.nav-manage-highlight[data-v-4c24c121]{background:#0066b30f;font-weight:700;border-left:2px solid var(--blue-main)!important;border-right:2px solid var(--blue-main)!important;color:var(--blue-main)!important}.nav-actions[data-v-4c24c121]{align-items:center;gap:16px;display:flex}.nav-source[data-v-4c24c121]{color:var(--text-muted);border-radius:var(--radius-sm);border:1px solid #0000;align-items:center;gap:6px;padding:6px 12px;font-weight:600;text-decoration:none;transition:all .15s;display:flex}.nav-source[data-v-4c24c121]:hover{color:#f15a24;background:#f15a240d;border-color:#f15a2433}@media (width<=900px){.site-nav[data-v-4c24c121]{flex-direction:column;height:auto;padding:10px 16px}.nav-links[data-v-4c24c121]{flex-wrap:wrap;justify-content:center;width:100%;margin-bottom:8px}.nav-links a[data-v-4c24c121]{height:40px;padding:0 12px;font-size:.9rem}.nav-actions[data-v-4c24c121]{justify-content:center;width:100%}}body{background:var(--cream)}.site-header{background:var(--header-bg);color:#fff;text-align:center;padding:70px 40px 60px;position:relative;overflow:hidden}.site-header:before{content:"";background:var(--blue-main);opacity:.1;border-radius:50%;width:320px;height:320px;position:absolute;top:-80px;right:-80px}.site-header:after{content:"";background:var(--gold);opacity:.06;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-60px;left:-60px}.header-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--blue-main);z-index:1;background:#36a9e12e;border:1px solid #36a9e14d;border-radius:999px;margin-bottom:18px;padding:4px 16px;font-size:.72rem;font-weight:700;display:inline-block;position:relative}.site-header h1{letter-spacing:.04em;z-index:1;font-size:clamp(2.4rem,6vw,4rem);font-weight:800;line-height:1.1;position:relative}.header-bar{background:var(--gold);border-radius:2px;width:72px;height:4px;margin:18px auto 22px}.site-header p.tagline{color:#ffffffad;z-index:1;max-width:520px;margin:0 auto 32px;font-size:1.05rem;position:relative}.header-cta{z-index:1;flex-wrap:wrap;justify-content:center;gap:12px;display:flex;position:relative}.site-nav{background:var(--blue-main);z-index:100;border-bottom:2px solid var(--gold);flex-wrap:wrap;justify-content:center;gap:4px;padding:0 20px;display:flex;position:sticky;top:0}.site-nav a{letter-spacing:.06em;text-transform:uppercase;color:var(--white);border-bottom:3px solid #0000;padding:14px 22px;font-size:.82rem;font-weight:700;text-decoration:none;transition:border-color .2s,background .2s}.site-nav a:hover{border-bottom-color:var(--gold);background:#ffffff1a}.site-nav .nav-source{opacity:.75;align-items:center;gap:6px;margin-left:auto;display:flex}.site-nav .nav-source:hover{opacity:1;border-bottom-color:var(--white)}.site-nav .nav-source svg{filter:none}main{max-width:960px;margin:0 auto;padding:0 24px 100px}section{margin-top:72px}h2{font-family:var(--font-title);color:var(--blue-main);margin-bottom:6px;font-size:clamp(1.5rem,3.5vw,2rem);font-weight:700}.section-bar{background:var(--gold);border-radius:2px;width:52px;height:3px;margin-bottom:24px}p{color:#444;margin-bottom:12px;font-size:.95rem}h3{font-family:var(--font-body);color:var(--blue-dark);text-transform:uppercase;letter-spacing:.08em;margin:24px 0 8px;font-size:.92rem;font-weight:700}.hw-grid{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.hw-pill{color:var(--blue-dark);border:1px solid var(--border);background:#36a9e11a;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:.8rem;font-weight:500;display:flex}.ateliers-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:8px;display:grid}.atelier-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:22px 20px;transition:border-color .15s,background-color .15s}.atelier-card:hover{border-color:var(--blue-main);background:#fafcff}.atelier-num{font-family:var(--font-title);color:var(--blue-main);opacity:.2;margin-bottom:8px;font-size:2rem;font-weight:800;line-height:1}.atelier-icon{margin-bottom:10px;font-size:2rem;display:block}.atelier-title{color:var(--blue-dark);margin-bottom:6px;font-size:.95rem;font-weight:700}.atelier-desc{color:#666;font-size:.83rem}.atelier-tag{letter-spacing:.08em;text-transform:uppercase;color:#7a5c00;background:#f59e001f;border-radius:999px;margin-top:12px;padding:2px 10px;font-size:.7rem;font-weight:700;display:inline-block}.learn-flow{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:14px;display:grid}.learn-step{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:18px 18px 16px}.learn-index{letter-spacing:.1em;text-transform:uppercase;color:#0f4b6a;background:#36a9e11f;border:1px solid #36a9e13d;border-radius:999px;align-items:center;margin-bottom:10px;padding:2px 10px;font-size:.68rem;font-weight:700;display:inline-flex}.learn-step h3{text-transform:none;letter-spacing:.01em;margin:0 0 8px;font-size:1rem}.learn-step p{color:#42556d;margin-bottom:10px;font-size:.86rem}.learn-step ul{color:#41566f;margin:0;padding-left:18px;font-size:.84rem;line-height:1.6}.learn-code{color:#b4dcff;font-family:var(--font-mono);background:#0b1930;border:1px solid #d8e9f8;border-radius:8px;margin:0 0 10px;padding:12px 14px;font-size:.75rem;line-height:1.55;overflow:auto}.learn-tip{color:#145a32;margin-bottom:0;font-size:.8rem;font-weight:500}.learn-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}@media (width<=760px){.site-nav{justify-content:flex-start}.site-nav .nav-source{margin-left:0}}.cta-card{background:var(--blue-dark);color:var(--white);border-radius:var(--radius);text-align:center;margin-top:72px;padding:48px 40px;position:relative;overflow:hidden}.cta-card:before{content:"";background:var(--blue-main);opacity:.12;border-radius:50%;width:200px;height:200px;position:absolute;top:-60px;right:-60px}.cta-card h2{color:var(--white);margin-bottom:10px}.cta-card p{color:#ffffffa6;max-width:460px;margin:0 auto 24px}.arch-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:16px;display:grid}.arch-item{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;font-size:.83rem}.arch-item strong{color:var(--blue-dark);margin-bottom:4px;font-weight:700;display:block}.arch-item span{color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem}footer{background:var(--blue-dark);color:#ffffff73;text-align:center;margin-top:80px;padding:32px;font-size:.82rem}footer a{color:var(--blue-main);text-decoration:none}.schedule-filters{flex-wrap:wrap;justify-content:center;gap:10px;margin:25px 0;display:flex}.filter-btn{font-family:var(--font-body);border-radius:var(--radius-sm);background:var(--white);color:var(--blue-mid);border:1.5px solid var(--border);cursor:pointer;box-shadow:none;padding:8px 18px;font-size:.85rem;font-weight:600;transition:all .15s ease-in-out}.filter-btn:hover{border-color:var(--blue-main);background:#0066b30d}.filter-btn.active{background:var(--blue-main);color:var(--white);border-color:var(--blue-main);box-shadow:none}.timeline{flex-direction:column;gap:16px;margin-top:20px;display:flex;position:relative}.timeline-slot{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none;flex-direction:column;transition:all .2s ease-in-out;display:flex;overflow:hidden}.timeline-slot:hover{border-color:var(--blue-main)}.timeline-slot.hidden{display:none!important}.timeline-slot.cat-reverse{border-left:5px solid #f43f5e}.timeline-slot.cat-hardware{border-left:5px solid #f59e0b}.timeline-slot.cat-defense{border-left:5px solid #10b981}.timeline-slot.cat-desinfo{border-left:5px solid #8b5cf6}.timeline-slot.cat-accueil{border-left:5px solid #3b82f6}.slot-header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:20px;padding:20px 24px;display:flex}.slot-time{font-family:var(--font-mono);color:var(--blue-dark);flex-direction:column;gap:2px;min-width:110px;font-size:1.05rem;font-weight:700;display:flex}.slot-time-end{color:var(--text-muted);font-size:.8rem;font-weight:400}.slot-info{flex:1}.slot-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;display:flex}.slot-badge{letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:.68rem;font-weight:700;display:inline-block}.badge-reverse{color:#be123c;background:#ffe4e6}.badge-hardware{color:#b45309;background:#fef3c7}.badge-defense{color:#065f46;background:#d1fae5}.badge-desinfo{color:#5b21b6;background:#ede9fe}.badge-accueil{color:#1e40af;background:#dbeafe}.slot-title{color:var(--blue-dark);font-size:1.1rem;font-weight:700;line-height:1.3}.slot-speaker{color:var(--text-muted);align-items:center;gap:6px;margin-top:4px;font-size:.88rem;font-weight:500;display:flex}.slot-affiliation{color:#94a3b8;font-weight:400}.slot-toggle{color:var(--blue-main);background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:transform .3s;display:flex}.timeline-slot.open .slot-toggle{background:#36a9e11a;transform:rotate(180deg)}.slot-content{background:#fafcff;border-top:0 solid #0000;max-height:0;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.timeline-slot.open .slot-content{border-top:1px solid var(--border);max-height:500px}.slot-desc-inner{color:#475569;padding:24px;font-size:.92rem;line-height:1.6}@media (width<=768px){.slot-header{flex-direction:column;align-items:flex-start;gap:12px}.slot-time{flex-direction:row;align-items:center;gap:8px;min-width:auto}.slot-toggle{align-self:flex-end;margin-top:-24px}}.dashboard-hub{background:var(--blue-dark);border-radius:var(--radius);color:var(--white);box-shadow:none;border:1px solid var(--border);margin-top:72px;padding:45px 35px;position:relative;overflow:hidden}.hub-header{text-align:center;max-width:650px;margin:0 auto 35px}.hub-tag{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm);background:#ffffff14;border:1px solid #ffffff26;margin-bottom:12px;padding:4px 14px;font-size:.72rem;font-weight:700;display:inline-block}.hub-header h2{color:var(--white);margin-bottom:12px;font-size:clamp(1.8rem,4vw,2.3rem)}.hub-header p{color:#94a3b8;font-size:.95rem}.hub-grid{z-index:2;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;display:grid;position:relative}.hub-card{border-radius:var(--radius);background:#ffffff0a;border:1px solid #ffffff14;flex-direction:column;justify-content:space-between;padding:30px 24px;transition:all .2s ease-in-out;display:flex}.hub-card:hover{border-color:var(--gold);box-shadow:none;background:#ffffff12}.hub-card-icon{margin-bottom:18px;font-size:2.2rem;display:block}.hub-card-title{color:var(--white);margin-bottom:8px;font-size:1.15rem;font-weight:700}.hub-card-desc{color:#94a3b8;margin-bottom:22px;font-size:.85rem;line-height:1.6}.hub-btn{border-radius:var(--radius-sm);border:none;justify-content:center;width:100%;padding:10px 18px;font-weight:700;transition:all .15s}.hub-btn-flash{background:var(--gold);color:var(--blue-dark)}.hub-btn-flash:hover{background:#f5b041}.hub-btn-code{background:var(--blue-main);color:var(--white)}.hub-btn-code:hover{background:#0077d6}.hub-btn-explorer{color:var(--white);background:#ffffff1a;border:1.5px solid #fff3}.hub-btn-explorer:hover{background:#ffffff2e;border-color:#ffffff4d}.hub-footer{text-align:center;color:#64748b;justify-content:center;align-items:center;gap:6px;margin-top:30px;font-size:.8rem;display:flex}.site-header[data-v-2e4bdb84]{background:var(--blue-dark);color:#fff;border-bottom:3px solid var(--gold);text-align:center;padding:90px 20px 70px}.site-header h1[data-v-2e4bdb84]{color:#fff;letter-spacing:.04em;margin:0;font-size:clamp(3rem,8vw,5rem);font-weight:800}.header-eyebrow[data-v-2e4bdb84]{letter-spacing:.1em;text-transform:uppercase;color:#36a9e1;border-radius:var(--radius-sm);background:#36a9e12e;border:1px solid #36a9e14d;margin-bottom:20px;padding:4px 16px;font-size:.78rem;font-weight:700;display:inline-block}.header-bar[data-v-2e4bdb84]{background:var(--gold);width:80px;height:4px;margin:18px auto 22px}.tagline[data-v-2e4bdb84]{color:#94a3b8;max-width:640px;margin:0 auto 36px;font-size:1.1rem;line-height:1.65}.header-cta[data-v-2e4bdb84]{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.btn-hero[data-v-2e4bdb84]{border-radius:var(--radius-sm);align-items:center;padding:13px 30px;font-size:.95rem;font-weight:700;transition:all .15s;display:inline-flex}.btn-hero-primary[data-v-2e4bdb84]{background:var(--blue-main);color:#fff;border:2px solid var(--blue-main)}.btn-hero-primary[data-v-2e4bdb84]:hover{background:#0077d6;border-color:#0077d6}.btn-hero-ghost[data-v-2e4bdb84]{color:#fff;background:0 0;border:2px solid #fff6}.btn-hero-ghost[data-v-2e4bdb84]:hover{background:#ffffff14;border-color:#ffffffb3}section[data-v-2e4bdb84]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);margin-top:30px;padding:40px}section h2[data-v-2e4bdb84]{font-family:var(--font-title);color:var(--blue-dark);margin-bottom:10px;font-size:1.7rem}section h3[data-v-2e4bdb84]{font-family:var(--font-title);color:var(--blue-dark);margin:0 0 8px;font-size:1.05rem}section p[data-v-2e4bdb84]{color:var(--text-muted);margin-bottom:12px;font-size:.95rem;line-height:1.65}.section-two-col[data-v-2e4bdb84]{grid-template-columns:1fr 1fr;align-items:center;gap:40px;display:grid}.section-img img[data-v-2e4bdb84]{border:1px solid var(--border);border-radius:8px;width:100%;max-width:420px;margin:0 auto;display:block}.usage-grid[data-v-2e4bdb84]{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-top:24px;display:grid}.usage-card[data-v-2e4bdb84]{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);padding:24px 22px;transition:border-color .15s}.usage-card[data-v-2e4bdb84]:hover{border-color:var(--blue-main)}.usage-card h3[data-v-2e4bdb84]{color:var(--blue-dark);margin-bottom:8px;font-size:1rem;font-weight:700}.usage-card p[data-v-2e4bdb84]{color:var(--text-muted);margin:0;font-size:.87rem;line-height:1.55}.hw-specs-grid[data-v-2e4bdb84]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-top:24px;display:grid}.hw-spec-card[data-v-2e4bdb84]{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);align-items:flex-start;gap:14px;padding:16px 18px;transition:border-color .15s;display:flex}.hw-spec-card[data-v-2e4bdb84]:hover{border-color:var(--blue-main)}.hw-spec-body[data-v-2e4bdb84]{flex-direction:column;gap:3px;display:flex}.hw-spec-body strong[data-v-2e4bdb84]{color:var(--blue-dark);font-size:.9rem;font-weight:700}.hw-spec-body span[data-v-2e4bdb84]{color:var(--text-muted);font-size:.83rem;line-height:1.4}.gitlab-cta[data-v-2e4bdb84]{background:var(--blue-dark);color:#fff;border-radius:var(--radius-sm);border:2px solid var(--blue-dark);align-items:center;gap:10px;margin-top:20px;padding:14px 28px;font-size:1rem;font-weight:700;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.gitlab-cta[data-v-2e4bdb84]:hover{background:var(--blue-mid);border-color:var(--blue-mid)}.gitlab-cta-arrow[data-v-2e4bdb84]{margin-left:4px;font-size:1.1rem;transition:transform .15s}.gitlab-cta:hover .gitlab-cta-arrow[data-v-2e4bdb84]{transform:translate(4px)}.section-start[data-v-2e4bdb84]{background:var(--blue-dark)!important;border-color:#0000!important}.start-inner[data-v-2e4bdb84]{text-align:center;max-width:800px;margin:0 auto}.section-start h2[data-v-2e4bdb84]{font-size:1.9rem;color:#fff!important}.section-start p[data-v-2e4bdb84]{margin-bottom:32px;font-size:1rem;color:#94a3b8!important}.start-steps[data-v-2e4bdb84]{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-bottom:36px;display:flex}.start-step[data-v-2e4bdb84]{border-radius:var(--radius);text-align:left;background:#ffffff0d;border:1px solid #ffffff1a;flex:1;align-items:flex-start;gap:14px;min-width:180px;max-width:220px;padding:18px 20px;display:flex}.start-step-num[data-v-2e4bdb84]{background:var(--gold);color:var(--blue-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;font-weight:800;display:flex}.start-step-text[data-v-2e4bdb84]{flex-direction:column;gap:4px;display:flex}.start-step-text strong[data-v-2e4bdb84]{color:#e2e8f0;font-size:.9rem}.start-step-text span[data-v-2e4bdb84]{color:#94a3b8;font-size:.82rem;line-height:1.4}.start-arrow[data-v-2e4bdb84]{color:#ffffff40;font-size:1.4rem;font-weight:300}.start-actions[data-v-2e4bdb84]{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.start-actions .btn-ghost[data-v-2e4bdb84]{color:#fff;border-color:#ffffff59}.start-actions .btn-ghost[data-v-2e4bdb84]:hover{background:#ffffff12;border-color:#fff9}@media (width<=768px){section[data-v-2e4bdb84]{padding:28px 20px}.section-two-col[data-v-2e4bdb84]{grid-template-columns:1fr;gap:24px}.section-img[data-v-2e4bdb84]{order:-1}.start-steps[data-v-2e4bdb84]{flex-direction:column;align-items:stretch}.start-step[data-v-2e4bdb84]{max-width:100%}.start-arrow[data-v-2e4bdb84]{display:none}}.site-header[data-v-cab47379]{background:var(--blue-dark);color:#fff;border-bottom:3px solid var(--gold);text-align:center;padding:60px 20px 45px}.site-header h1[data-v-cab47379]{color:#fff;font-size:clamp(2rem,5vw,3rem);font-weight:800}.header-eyebrow[data-v-cab47379]{letter-spacing:.08em;text-transform:uppercase;color:#36a9e1;border-radius:var(--radius-sm);background:#36a9e12e;border:1px solid #36a9e14d;margin-bottom:12px;padding:4px 14px;font-size:.78rem;font-weight:700;display:inline-block}.header-bar[data-v-cab47379]{background:var(--gold);width:80px;height:4px;margin:15px auto 20px}.docs-container[data-v-cab47379]{grid-template-columns:240px 1fr;gap:30px;max-width:1200px;margin:40px auto;padding:0 24px 100px;display:grid}.docs-sidebar[data-v-cab47379]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);height:fit-content;padding:20px;position:sticky;top:90px}.docs-sidebar-title[data-v-cab47379]{font-family:var(--font-title);text-transform:uppercase;letter-spacing:.1em;color:var(--blue-main);border-bottom:1px solid var(--border);margin-bottom:15px;padding-bottom:8px;font-size:.85rem;font-weight:700}.docs-menu[data-v-cab47379]{flex-direction:column;gap:6px;display:flex}.docs-menu-item[data-v-cab47379]{color:var(--text-muted);border-radius:var(--radius-sm);padding:6px 12px;font-size:.88rem;text-decoration:none;transition:all .15s}.docs-menu-item[data-v-cab47379]:hover{color:var(--blue-main);background:#0066b30a}.docs-content[data-v-cab47379]{min-width:0}.docs-section[data-v-cab47379]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none;margin-bottom:40px;padding:35px;scroll-margin-top:100px}.docs-section h2[data-v-cab47379]{font-family:var(--font-title);color:var(--blue-dark);margin-bottom:10px;font-size:1.6rem}.docs-section h3[data-v-cab47379]{color:var(--blue-dark);border-left:3px solid var(--blue-main);margin-top:25px;padding-left:10px;font-size:1.05rem}.code-tabs[data-v-cab47379]{border:1px solid var(--border);border-radius:var(--radius);background:#0d2240;margin-top:20px;overflow:hidden}.code-tabs-header[data-v-cab47379]{background:#07152b;border-bottom:1px solid #ffffff14;padding:0 10px;display:flex}.code-tab-btn[data-v-cab47379]{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 18px;font-size:.8rem;font-weight:600;transition:all .15s}.code-tab-btn[data-v-cab47379]:hover{color:#e2e8f0}.code-tab-btn.active[data-v-cab47379]{color:#38bdf8;border-bottom-color:#38bdf8}.code-tab-content[data-v-cab47379]{padding:18px;display:none}.code-tab-content.active[data-v-cab47379]{display:block}.code-tab-content pre[data-v-cab47379]{font-family:var(--font-mono);color:#93c5fd;margin:0;font-size:.83rem;line-height:1.65;overflow-x:auto}.pinout-table[data-v-cab47379]{border-collapse:collapse;width:100%;margin-top:20px;font-size:.88rem}.pinout-table th[data-v-cab47379],.pinout-table td[data-v-cab47379]{border:1px solid var(--border);text-align:left;padding:10px 12px}.pinout-table th[data-v-cab47379]{background:var(--cream);color:var(--blue-dark);font-weight:600}.pinout-table tr[data-v-cab47379]:hover{background:var(--cream)}.pin-badge[data-v-cab47379]{font-family:var(--font-mono);color:var(--blue-main);border-radius:var(--radius-sm);background:#0066b314;padding:2px 6px;font-size:.75rem;font-weight:600;display:inline-block}.doc-alert[data-v-cab47379]{border-radius:var(--radius-sm);margin:20px 0;padding:15px 20px;font-size:.9rem;line-height:1.5}.doc-alert-info[data-v-cab47379]{color:var(--blue-dark);background:#0066b30d;border:1px solid #0066b326}.doc-alert-warn[data-v-cab47379]{color:#b45309;background:#f59e000d;border:1px solid #f59e0033}.pdf-banner[data-v-cab47379]{background:var(--blue-dark);border-radius:var(--radius);border:1px solid #f5a6234d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:14px 20px;display:flex}.pdf-banner-text[data-v-cab47379]{flex-direction:column;gap:2px;display:flex}.pdf-banner-text strong[data-v-cab47379]{color:var(--gold);font-size:.95rem}.pdf-banner-text span[data-v-cab47379]{color:#94a3b8;font-size:.83rem}.pdf-banner-btn[data-v-cab47379]{background:var(--gold);color:var(--blue-dark);border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;padding:8px 18px;font-size:.85rem;font-weight:700;text-decoration:none;transition:background .15s}.pdf-banner-btn[data-v-cab47379]:hover{background:#e59518}@media (width<=768px){.docs-container[data-v-cab47379]{grid-template-columns:1fr;padding:0 16px 60px}.docs-sidebar[data-v-cab47379]{margin-bottom:20px;position:relative;top:0}}.site-header[data-v-fceeef0c]{background:var(--blue-dark);color:#fff;border-bottom:3px solid var(--gold);text-align:center;padding:70px 20px 55px}.site-header h1[data-v-fceeef0c]{color:#fff;margin:0;font-size:clamp(2.4rem,6vw,4rem);font-weight:800}.header-eyebrow[data-v-fceeef0c]{letter-spacing:.09em;text-transform:uppercase;color:#36a9e1;border-radius:var(--radius-sm);background:#36a9e12e;border:1px solid #36a9e14d;margin-bottom:14px;padding:4px 14px;font-size:.78rem;font-weight:700;display:inline-block}.header-bar[data-v-fceeef0c]{background:var(--gold);width:60px;height:4px;margin:16px auto 20px}.tagline[data-v-fceeef0c]{color:#94a3b8;max-width:560px;margin:0 auto;font-size:1rem;line-height:1.6}.events-container[data-v-fceeef0c]{flex-direction:column;gap:24px;max-width:960px;margin:36px auto;padding:0 24px 100px;display:flex}.event-label[data-v-fceeef0c]{text-transform:uppercase;letter-spacing:.08em;border-radius:3px;padding:3px 9px;font-size:.67rem;font-weight:700;display:inline-block}.event-label-upcoming[data-v-fceeef0c]{color:#15803d;background:#16a34a1f}.event-label-recurring[data-v-fceeef0c]{color:var(--blue-main);background:#0066b31a}.event-date-chip[data-v-fceeef0c]{color:var(--text-muted);font-size:.78rem;font-weight:600}.etag[data-v-fceeef0c]{background:var(--cream);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:3px 9px;font-size:.72rem;font-weight:600;display:inline-block}.etag-sm[data-v-fceeef0c]{padding:2px 7px;font-size:.68rem}.inline-link[data-v-fceeef0c]{color:var(--blue-main);border-bottom:1px solid #0000;font-weight:600;text-decoration:none;transition:border-color .15s}.inline-link[data-v-fceeef0c]:hover{border-bottom-color:var(--blue-main)}.event-featured[data-v-fceeef0c]{background:var(--white);border:1px solid var(--border);border-top:4px solid var(--blue-main);border-radius:var(--radius);overflow:hidden}.event-featured-meta[data-v-fceeef0c]{align-items:center;gap:10px;padding:16px 28px 0;display:flex}.event-featured-body[data-v-fceeef0c]{grid-template-columns:1fr auto;align-items:start;gap:32px;padding:20px 28px 28px;display:grid}.event-featured-logos[data-v-fceeef0c]{align-items:center;gap:16px;margin-bottom:14px;display:flex}.feat-logo[data-v-fceeef0c]{object-fit:contain;width:auto;height:34px}.event-featured-body h2[data-v-fceeef0c]{font-family:var(--font-title);color:var(--blue-dark);margin-bottom:10px;font-size:1.6rem;font-weight:800}.event-featured-desc[data-v-fceeef0c]{color:var(--text-muted);margin-bottom:14px;font-size:.93rem;line-height:1.65}.event-featured-tags[data-v-fceeef0c]{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.event-featured-info[data-v-fceeef0c]{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.83rem;display:flex}.einfo-item strong[data-v-fceeef0c]{color:var(--blue-dark);margin-right:4px;font-weight:600}.einfo-sep[data-v-fceeef0c]{color:var(--border);font-size:1rem}.event-featured-actions[data-v-fceeef0c]{flex-direction:column;flex-shrink:0;gap:10px;min-width:200px;display:flex}.event-cta-btn[data-v-fceeef0c]{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:12px 20px;text-decoration:none;display:flex}.cta-url[data-v-fceeef0c]{font-family:var(--font-mono);opacity:.75;font-size:.75rem;font-weight:400}.event-prog-btn[data-v-fceeef0c]{font-size:.85rem;border:1.5px solid var(--border)!important}.prog-wrap[data-v-fceeef0c]{border-top:1px solid #0000;max-height:0;transition:max-height .35s;overflow:hidden}.prog-wrap.open[data-v-fceeef0c]{border-top-color:var(--border);max-height:2000px}.prog-inner[data-v-fceeef0c]{background:var(--cream);padding:24px 28px 28px}.prog-filters[data-v-fceeef0c]{flex-wrap:wrap;gap:7px;margin-bottom:16px;display:flex}.prog-footer[data-v-fceeef0c]{color:var(--text-muted);text-align:center;border-top:1px solid var(--border);margin-top:16px;padding-top:14px;font-size:.85rem}.event-card[data-v-fceeef0c]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.event-card-gold[data-v-fceeef0c]{border-top:4px solid var(--gold)}.event-card-header[data-v-fceeef0c]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.event-parent-badge[data-v-fceeef0c]{color:var(--text-muted);border-radius:var(--radius-sm);background:#f5a62314;border:1px solid #f5a62333;padding:3px 10px;font-size:.75rem;font-weight:500}.event-card h3[data-v-fceeef0c]{font-family:var(--font-title);color:var(--blue-dark);margin-bottom:10px;font-size:1.5rem;font-weight:800}.event-card-desc[data-v-fceeef0c]{color:var(--text-muted);margin-bottom:20px;font-size:.93rem;line-height:1.65}.kids-workshops[data-v-fceeef0c]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:20px;display:grid}.workshop-item[data-v-fceeef0c]{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:12px 14px;transition:border-color .15s;display:flex}.workshop-item[data-v-fceeef0c]:hover{border-color:var(--gold)}.workshop-num[data-v-fceeef0c]{font-family:var(--font-mono);color:var(--gold);flex-shrink:0;margin-top:2px;font-size:.68rem;font-weight:700}.workshop-item strong[data-v-fceeef0c]{color:var(--blue-dark);margin-bottom:2px;font-size:.85rem;font-weight:700;display:block}.workshop-item span[data-v-fceeef0c]{color:var(--text-muted);font-size:.8rem;line-height:1.4}.event-card-inforow[data-v-fceeef0c]{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;gap:24px;margin-bottom:20px;padding:14px 18px;display:flex}.inforow-item[data-v-fceeef0c]{color:var(--text-muted);flex-direction:column;gap:2px;font-size:.85rem;display:flex}.inforow-label[data-v-fceeef0c]{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:.68rem;font-weight:700}.event-card-cta[data-v-fceeef0c]{flex-wrap:wrap;gap:10px;display:flex}.other-events-title[data-v-fceeef0c]{font-family:var(--font-title);color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:8px;font-size:1rem;font-weight:700}.other-events-grid[data-v-fceeef0c]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.other-event-card[data-v-fceeef0c]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px 18px;transition:border-color .15s}.other-event-card[data-v-fceeef0c]:hover{border-color:var(--blue-main)}.other-event-header[data-v-fceeef0c]{margin-bottom:10px}.other-event-card h4[data-v-fceeef0c]{font-family:var(--font-title);color:var(--blue-dark);margin-bottom:8px;font-size:1rem;font-weight:700}.other-event-card p[data-v-fceeef0c]{color:var(--text-muted);margin-bottom:12px;font-size:.87rem;line-height:1.55}.other-event-tags[data-v-fceeef0c]{flex-wrap:wrap;gap:5px;display:flex}.filter-btn[data-v-fceeef0c]{font-family:var(--font-body);border-radius:var(--radius-sm);background:var(--white);color:var(--text-muted);border:1.5px solid var(--border);cursor:pointer;padding:5px 14px;font-size:.8rem;font-weight:600;transition:all .15s}.filter-btn[data-v-fceeef0c]:hover{border-color:var(--blue-main);color:var(--blue-main)}.filter-btn.active[data-v-fceeef0c]{background:var(--blue-main);color:#fff;border-color:var(--blue-main)}.timeline[data-v-fceeef0c]{flex-direction:column;gap:7px;display:flex}.timeline-slot[data-v-fceeef0c]{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s;overflow:hidden}.timeline-slot[data-v-fceeef0c]:hover{border-color:var(--blue-main)}.timeline-slot.cat-accueil[data-v-fceeef0c]{border-left:4px solid #94a3b8}.timeline-slot.cat-reverse[data-v-fceeef0c]{border-left:4px solid #ef4444}.timeline-slot.cat-hardware[data-v-fceeef0c]{border-left:4px solid var(--gold)}.timeline-slot.cat-defense[data-v-fceeef0c]{border-left:4px solid #10b981}.timeline-slot.cat-desinfo[data-v-fceeef0c]{border-left:4px solid #8b5cf6}.slot-header[data-v-fceeef0c]{align-items:center;gap:16px;padding:12px 16px;display:flex}.slot-time[data-v-fceeef0c]{color:var(--blue-dark);font-weight:700;font-family:var(--font-mono);flex-direction:column;min-width:64px;font-size:.88rem;display:flex}.slot-time-end[data-v-fceeef0c]{color:var(--text-muted);font-size:.74rem;font-weight:400}.slot-info[data-v-fceeef0c]{flex-grow:1}.slot-meta[data-v-fceeef0c]{margin-bottom:2px}.slot-badge[data-v-fceeef0c]{text-transform:uppercase;border-radius:2px;padding:2px 7px;font-size:.65rem;font-weight:700}.badge-accueil[data-v-fceeef0c]{color:#64748b;background:#f1f5f9}.badge-reverse[data-v-fceeef0c]{color:#ef4444;background:#ef44441a}.badge-hardware[data-v-fceeef0c]{color:#d97706;background:#f59e0b1a}.badge-defense[data-v-fceeef0c]{color:#059669;background:#10b9811a}.badge-desinfo[data-v-fceeef0c]{color:#7c3aed;background:#8b5cf61a}.slot-title[data-v-fceeef0c]{color:var(--blue-dark);font-size:.93rem;font-weight:700}.slot-speaker[data-v-fceeef0c]{color:var(--text-muted);margin-top:1px;font-size:.8rem}.slot-affiliation[data-v-fceeef0c]{color:#94a3b8}.slot-toggle[data-v-fceeef0c]{color:var(--text-muted);flex-shrink:0;font-size:.72rem}.slot-content[data-v-fceeef0c]{background:var(--cream);border-top:1px solid #0000;max-height:0;transition:max-height .22s ease-out;overflow:hidden}.timeline-slot.open .slot-content[data-v-fceeef0c]{border-top-color:var(--border);max-height:140px}.slot-desc-inner[data-v-fceeef0c]{color:var(--text-muted);padding:10px 16px;font-size:.86rem;line-height:1.55}@media (width<=768px){.events-container[data-v-fceeef0c]{padding:0 16px 60px}.event-featured-body[data-v-fceeef0c]{grid-template-columns:1fr;padding:16px 18px 22px}.event-featured-actions[data-v-fceeef0c]{flex-flow:wrap;min-width:0}.event-cta-btn[data-v-fceeef0c]{flex-direction:row;gap:6px}.event-featured-meta[data-v-fceeef0c]{padding:14px 18px 0}.event-card[data-v-fceeef0c]{padding:20px 18px}.prog-inner[data-v-fceeef0c]{padding:18px}.slot-header[data-v-fceeef0c]{flex-wrap:wrap;gap:8px}.slot-time[data-v-fceeef0c]{flex-direction:row;align-items:baseline;gap:5px;min-width:auto}}body{background:var(--cream);color:var(--text);line-height:1.6}.topbar{z-index:200;background:var(--header-bg);border-bottom:2px solid var(--gold);box-shadow:none;align-items:center;gap:16px;height:54px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}.topbar-logo{font-family:var(--font-title);color:var(--white);letter-spacing:.06em;align-items:center;gap:6px;font-size:1rem;font-weight:800;text-decoration:none;display:flex}.topbar-logo .logo-dot{color:var(--gold)}.topbar-subtitle{color:#ffffff59;letter-spacing:.02em;border-left:1px solid #ffffff26;margin-left:4px;padding-left:10px;font-size:.75rem;font-weight:400}.topbar-back{color:#fff6;border-radius:var(--radius-sm);align-items:center;gap:5px;padding:4px 8px;font-size:.78rem;text-decoration:none;transition:color .15s,background .15s;display:flex}.topbar-back:hover{color:var(--blue-main);background:#36a9e114}.conn-bar{align-items:center;gap:10px;margin-left:auto;display:flex}#conn-label{color:#ffffff80;min-width:80px;font-size:.78rem}.tab-nav{z-index:190;background:var(--white);border-bottom:1px solid var(--border);gap:0;display:flex;position:fixed;top:54px;left:0;right:0}.tab-btn{font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:7px;height:44px;padding:0 22px;font-size:.8rem;font-weight:600;transition:color .15s;display:flex;position:relative}.tab-btn .tab-icon{font-size:.9rem}.tab-btn:after{content:"";background:var(--blue-main);height:2px;box-shadow:none;border-radius:2px 2px 0 0;transition:transform .2s;position:absolute;bottom:0;left:12px;right:12px;transform:scaleX(0)}.tab-btn:hover,.tab-btn.active{color:var(--blue-main)}.tab-btn.active:after{transform:scaleX(1)}#app-body{height:calc(100vh - 98px);margin-top:98px;overflow:hidden}.tab-panel{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}#no-serial{justify-content:center;align-items:center;height:calc(100vh - 98px);padding:40px;display:flex}.no-serial-inner{text-align:center;border-radius:var(--radius);background:#0f1a30;border:1px solid #e74c3c40;padding:40px 48px;box-shadow:0 0 40px #e74c3c14}.no-serial-icon{margin-bottom:16px;font-size:2.5rem}.no-serial-inner h2{color:#e74c3c;margin-bottom:10px;font-size:1.1rem}.no-serial-inner p{color:#fff9;font-size:.9rem}.no-serial-inner strong{color:var(--white)}#panel-sandbox{flex-direction:column;display:flex}.sb-toolbar{background:#0d1628;border-bottom:1px solid #ffffff0f;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;display:flex}.tb-group{gap:4px;display:flex}.sb-mode-group{border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid #ffffff17;display:flex;overflow:hidden}.sb-mode-group .btn{color:#ffffff73;background:0 0;border-right:1px solid #ffffff12;border-radius:0;padding:5px 14px;font-size:.78rem;transition:color .15s,background .15s}.sb-mode-group .btn:last-child{border-right:none}.sb-mode-group .btn:hover{color:#fffc;background:#ffffff0d}.sb-mode-group .btn.active{background:var(--blue-main);color:var(--white)}.sb-divider{background:#ffffff14;width:1px;height:24px;margin:0 2px}#sb-flash{letter-spacing:.02em;font-weight:700;transition:background .15s,transform .1s}.sb-editor-area{flex:1;min-height:0;display:flex;overflow:hidden}#sb-tab-blocks{width:100%;height:100%;display:flex}#sb-blockly{flex:1;min-width:0}.sb-preview-pane{background:#080e1c;border-left:1px solid #ffffff12;flex-direction:column;flex-shrink:0;width:min(44%,560px);min-width:280px;display:flex}.sb-preview-header{letter-spacing:.1em;text-transform:uppercase;color:#ffffff59;border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;padding:7px 14px;font-size:.7rem;font-weight:700;display:flex}.sb-preview-hint{letter-spacing:.04em;color:#ffffff4d;text-transform:none;font-size:.65rem;font-weight:400}#sb-tab-python{width:100%;height:100%;display:flex}.py-editor-wrap{flex-direction:column;flex:1;display:flex;position:relative}#sb-py-editor{resize:none;font-family:var(--font-mono);color:#a8c8f0;tab-size:4;background:#070e1b;border:none;outline:none;flex:1;padding:16px 20px;font-size:.85rem;line-height:1.75}.py-editor-hint{color:#fff3;font-size:.68rem;font-family:var(--font-mono);background:#060c18;border-top:1px solid #ffffff0d;flex-shrink:0;padding:5px 20px}@media (width<=980px){#sb-tab-blocks{flex-direction:column}.sb-preview-pane{border-top:1px solid #ffffff12;border-left:none;width:100%;min-width:0}#sb-blockly{min-height:340px}.py-editor-wrap{min-height:230px}}#sb-terminal{flex-direction:column;width:100%;height:100%;display:flex}#sb-term-area{font-family:var(--font-mono);color:#7dff7d;white-space:pre-wrap;word-break:break-word;background:#040810;flex:1;padding:14px 18px;font-size:.82rem;line-height:1.65;overflow:auto}.term-input-bar{background:#070d1a;border-top:1px solid #ffffff12;flex-shrink:0;align-items:center;display:flex}#sb-term-input{font-family:var(--font-mono);color:#7dff7d;background:0 0;border:none;outline:none;flex:1;padding:10px 14px;font-size:.85rem}#sb-term-input::placeholder{color:#7dff7d40}.term-prompt{color:#7dff7d59;font-family:var(--font-mono);padding:10px 0 10px 16px;font-size:.9rem}.sb-running-bar{background:#f39c1214;border-bottom:1px solid #f39c124d;flex-shrink:0;align-items:center;gap:12px;padding:8px 16px;font-size:.8rem;display:flex}.sb-running-bar.stopped{background:#ff6b6b14;border-bottom-color:#ff6b6b40}.sb-running-bar.stopped #sb-running-label{color:#ff6b6be6}.sb-running-bar.stopped .sb-pulse{background:var(--red);opacity:.7;animation:none}#sb-running-label{color:var(--yellow);letter-spacing:.02em;font-weight:700}.sb-running-hint{color:#ffffff59;font-size:.72rem}.sb-pulse{background:var(--yellow);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.4s ease-in-out infinite sb-pulse-anim}.sb-examples{background:#0a1020;border-bottom:1px solid #ffffff0d;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:7px 14px;display:flex}.sb-examples-label{color:#ffffff4d;white-space:nowrap;font-size:.7rem}.example-btn{color:var(--blue-main);cursor:pointer;white-space:nowrap;background:#36a9e114;border:1px solid #36a9e133;border-radius:999px;padding:3px 12px;font-size:.72rem;transition:background .15s,border-color .15s,transform .1s}.example-btn:hover{background:#36a9e12e;border-color:#36a9e166;transform:translateY(-1px)}.panel-resizer{cursor:ns-resize;background:#ffffff0a;border-top:1px solid #ffffff0f;border-bottom:1px solid #ffffff0f;flex-shrink:0;height:5px;transition:background .15s;position:relative}.panel-resizer:after{content:"";background:#ffffff26;border-radius:2px;width:32px;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.panel-resizer:hover{background:#36a9e126}.panel-resizer:hover:after{background:var(--blue-main)}.panel-resizer--v{cursor:ew-resize;border:none;border-left:1px solid #ffffff0f;border-right:1px solid #ffffff0f;flex-shrink:0;width:5px;height:100%}.panel-resizer--v:after{width:3px;height:32px}.sb-console-wrap{border-top:none;flex-direction:column;flex-shrink:0;height:160px;min-height:60px;display:flex}.sb-console-header{background:#0a1428;border-bottom:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:10px;padding:5px 14px;display:flex}.console-header-title{letter-spacing:.1em;text-transform:uppercase;color:#ffffff80;font-size:.68rem;font-weight:700}.console-header-sub{color:#fff3;margin-left:auto;font-size:.65rem}#sb-console{font-family:var(--font-mono);background:#04080f;flex:1;padding:6px 14px;font-size:.78rem;line-height:1.65;overflow-y:auto}.console-line{color:#7a9fc2}.console-info{color:#5bc4f0}.console-warn{color:#f5c842}.console-error{color:#ff6b6b;font-weight:600}#panel-explorer{flex-direction:column;display:flex}.ex-toolbar{background:#0d1628;border-bottom:1px solid #ffffff0f;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;display:flex}.ex-toolbar .btn-sm{font-size:.75rem}.ex-status{color:#ffffff80;font-size:.78rem;transition:color .2s}.ex-status.ok{color:var(--green)}.ex-status.error{color:var(--red)}.ex-status.warn{color:var(--yellow)}.ex-split{flex:1;min-height:0;display:flex;overflow:hidden}#ex-tree{-webkit-user-select:none;user-select:none;background:#070d1c;flex-shrink:0;width:240px;overflow-y:auto}.ex-tree-empty{text-align:center;color:#fff3;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;font-size:.78rem;line-height:1.5;display:flex}.ex-tree-empty span{opacity:.4;font-size:1.8rem}.tree-item{cursor:pointer;color:#94b0c8;border-left:2px solid #0000;align-items:center;gap:7px;padding:5px 12px;font-size:.82rem;transition:background .1s;display:flex}.tree-item:hover{color:#c0d8ee;background:#36a9e112}.tree-item.selected{color:var(--white);border-left-color:var(--blue-main);background:#36a9e124}.tree-item.loading .tree-icon{opacity:.3}.tree-icon{flex-shrink:0;font-size:.88rem}.tree-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-meta{color:#fff3;flex-shrink:0;font-size:.68rem}.tree-dir{color:#7ec4e8;font-weight:500}.tree-dir.expanded .tree-icon:before{content:"📂"}.tree-dir:not(.expanded) .tree-icon:before{content:"📁"}.tree-dir .tree-icon{font-style:normal}.ex-content-wrap{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.ex-file-bar{background:#0a1428;border-bottom:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:10px;padding:7px 16px;display:flex}#ex-filepath{font-family:var(--font-mono);color:#7ea8cc;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.8rem;overflow:hidden}.ex-filepath-empty{color:#fff3!important}.ex-filesize{color:#ffffff40;flex-shrink:0;font-size:.7rem}#ex-content{resize:none;font-family:var(--font-mono);color:#a8c8f0;tab-size:4;background:#060c18;border:none;outline:none;flex:1;padding:16px 20px;font-size:.83rem;line-height:1.75;overflow:auto}#ex-content:disabled{color:#fff3}#ex-content:focus{box-shadow:none}.btn-save.dirty{background:var(--gold);color:var(--blue-dark);box-shadow:0 0 14px #f59e004d}#panel-settings{background:#060d1e;overflow-y:auto}.settings-layout{grid-template-columns:1fr 1fr;gap:18px;max-width:840px;margin:0 auto;padding:28px 24px 72px;display:grid}@media (width<=700px){.settings-layout{grid-template-columns:1fr}}.st-card{border-radius:var(--radius);box-shadow:none;background:#0d2240;border:1px solid #ffffff14;padding:20px 22px;transition:border-color .15s ease-in-out}.st-card:hover{border-color:var(--blue-main);box-shadow:none}.st-card-full{grid-column:1/-1}.st-card h3{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--blue-main);border-bottom:1px solid #36a9e11f;align-items:center;gap:8px;margin-bottom:18px;padding-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.st-card-icon{font-size:1rem}.st-field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.st-field label{color:#ffffff8c;font-size:.8rem}.st-field-hint{opacity:.6;font-size:.75rem;font-weight:400}.st-field input[type=text],.st-field input[type=password],.st-field input[type=number],.st-field select{color:var(--white);background:#ffffff0a;border-color:#ffffff1a;width:100%}.st-field input:focus,.st-field select:focus{border-color:var(--blue-main);box-shadow:0 0 0 3px #36a9e11f}.input-suffix-wrap{align-items:stretch;gap:0;display:flex}.input-suffix-wrap input{flex:1;border-radius:var(--radius-sm) 0 0 var(--radius-sm)!important}.input-suffix{border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:#ffffff59;background:#ffffff0f;border:1.5px solid #ffffff1a;border-left:none;align-items:center;padding:7px 12px;font-size:.82rem;display:flex}.st-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.st-row label{color:#ffffffa6;font-size:.85rem}.st-actions{border-radius:var(--radius);background:#ffffff08;border:1px solid #ffffff0f;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:10px;padding:16px 20px;display:flex}.st-status{color:#ffffff80;padding:4px 0;font-size:.82rem}.st-status.ok{color:var(--green)}.st-status.error{color:var(--red)}.st-status.warn{color:var(--yellow)}.st-empty-hint{color:#ffffff40;font-size:.82rem;font-style:italic}.info-row{color:#ffffff8c;border-bottom:1px solid #ffffff0d;justify-content:space-between;padding:6px 0;font-size:.82rem;display:flex}.info-row:last-child{border-bottom:none}.info-row span:last-child{font-family:var(--font-mono);color:var(--white)}.storage-track{background:#ffffff12;border-radius:3px;height:6px;margin-top:14px;overflow:hidden}#st-storage-bar{background:var(--blue-main);height:100%;box-shadow:none;border-radius:3px;transition:width .5s cubic-bezier(.25,.8,.25,1)}.ctf-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:7px 0;display:flex}.ctf-row:last-child{border-bottom:none}.ctf-name{color:#ffffffb3;font-size:.85rem}.ctf-badge{border-radius:999px;padding:3px 10px;font-size:.7rem;font-weight:700}.ctf-badge.done{color:var(--green);background:#2ecc711f;border:1px solid #2ecc7133}.ctf-badge.todo{color:#ffffff4d;background:#ffffff0d;border:1px solid #ffffff12}.ctf-score{color:var(--green);text-transform:none;letter-spacing:0;background:#2ecc711a;border:1px solid #2ecc7133;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.7rem;font-weight:700}.st-storage-info{justify-content:space-between;align-items:center;margin-top:12px;margin-bottom:6px;display:flex}.st-storage-label{color:#ffffff59;font-size:.72rem}.st-storage-pct{color:#ffffff8c;font-size:.78rem;font-weight:700;font-family:var(--font-mono)}.flash-wrap{flex-direction:column;gap:16px;max-width:860px;margin:0 auto;padding:22px 20px 48px;display:flex}.flash-prereq{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:18px;padding:10px 16px;font-size:.82rem;display:flex}.flash-prereq-item{color:var(--text-muted);align-items:center;gap:7px;display:flex}.prereq-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:8px;height:8px;transition:background .2s}.flash-prereq-item.ok .prereq-dot{background:var(--green)}.flash-prereq-item.err .prereq-dot{background:var(--red)}.flash-prereq-item.warn .prereq-dot{background:var(--gold)}.flash-prereq-item.ok{color:var(--text)}.flash-prereq-hint{color:var(--text-muted);border-left:1px solid var(--border);margin-left:2px;padding-left:14px;font-size:.76rem;line-height:1.4}.flash-prereq-hint code{font-family:var(--font-mono);background:#0000000f;border-radius:3px;padding:1px 4px}.flash-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.flash-method-tabs{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.flash-method-tab{background:var(--cream);border:none;border-right:1px solid var(--border);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:3px;padding:14px 20px;transition:background .15s;display:flex;position:relative}.flash-method-tab:last-child{border-right:none}.flash-method-tab:hover{background:#f0f4f8}.flash-method-tab.active{background:var(--white)}.flash-method-tab.active:after{content:"";background:var(--blue-main);height:2px;position:absolute;bottom:-1px;left:0;right:0}.fmt-icon{font-size:1.15rem}.fmt-label{color:var(--blue-dark);font-size:.83rem;font-weight:700;line-height:1.2}.fmt-sub{color:var(--text-muted);font-size:.72rem;font-family:var(--font-mono)}.flash-method-panel{padding:22px 24px}.flash-desc{color:var(--text-muted);margin-bottom:16px;font-size:.85rem;line-height:1.6}.flash-note{border-radius:var(--radius-sm);border-left:3px solid #0000;margin-bottom:16px;padding:10px 14px;font-size:.8rem;line-height:1.5}.flash-note code{font-family:var(--font-mono);background:#00000012;border-radius:3px;padding:1px 5px;font-size:.77rem}.flash-note-info{border-left-color:var(--blue-main);color:var(--blue-dark);background:#0066b30d}.flash-note-warn{border-left-color:var(--gold);color:#7a4e0a;background:#f5a62312}.flash-note-tip{border-left-color:var(--green);color:#1a6b3a;background:#2ecc710f}.flash-fields{flex-direction:column;gap:14px;margin-bottom:20px;display:flex}.flash-field{flex-direction:column;gap:5px;display:flex}.flash-field label{color:var(--text-muted);font-size:.8rem;font-weight:500}.flash-field-sm{flex:1;min-width:200px}.flash-select{appearance:none;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;width:100%;padding:7px 12px;font-size:.83rem}.flash-select:focus{border-color:var(--blue-main);outline:none;box-shadow:0 0 0 3px #0066b31a}.flash-select:disabled{opacity:.5;cursor:default}.flash-file-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.flash-filename{color:var(--text-muted);font-size:.8rem;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.flash-row-opts{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.flash-check-label{color:var(--text);cursor:pointer;align-items:center;gap:8px;padding-bottom:7px;font-size:.82rem;display:flex}.flash-check-label input{accent-color:var(--blue-main);width:15px;height:15px}.flash-hash-box{border-radius:var(--radius-sm);background:#0066b30a;border:1px solid #0066b31a;padding:10px 12px}.flash-hash-box-green{background:#2ecc710a;border-color:#2ecc7126}.flash-hash-head{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.flash-hash-head span:first-child{color:var(--blue-dark);letter-spacing:.05em;font-size:.68rem;font-weight:700}.flash-hash-badge{font-size:.65rem;font-family:var(--font-mono);color:var(--white);border-radius:4px;padding:2px 7px;font-weight:700}.flash-hash-badge.badge-server{background:var(--blue-main)}.flash-hash-badge.badge-custom{background:var(--gold);color:var(--blue-dark)}.flash-hash-badge.badge-zip{background:var(--green)}.flash-hash-val{font-family:var(--font-mono);color:var(--text);word-break:break-all;font-size:.7rem;line-height:1.4}.flash-action-btn{justify-content:center;width:100%;margin-top:4px;padding:11px 20px;font-size:.9rem;font-weight:700}.flash-success-bar{color:#1a6b3a;text-align:center;background:#2ecc7114;border-bottom:1px solid #2ecc7133;padding:12px 20px;font-size:.85rem;font-weight:600}.flash-progress-wrap{padding:16px 20px 0}.flash-progress-track{background:var(--border);border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.flash-progress-fill{background:var(--blue-main);border-radius:4px;height:100%;transition:width .2s ease-in-out}.flash-progress-meta{color:var(--text-muted);justify-content:space-between;margin-bottom:8px;font-size:.8rem;font-weight:600;display:flex}.flash-progress-pct{font-family:var(--font-mono)}.flash-logs-head{background:var(--cream);border-top:1px solid var(--border);border-bottom:1px solid var(--border);letter-spacing:.08em;color:var(--text-muted);justify-content:space-between;align-items:center;padding:9px 16px;font-size:.7rem;font-weight:700;display:flex}.flash-chip-badge{font-size:.78rem;font-weight:700;font-family:var(--font-mono);letter-spacing:0}.flash-logs-body{resize:none;box-sizing:border-box;width:100%;height:210px;font-family:var(--font-mono);color:#38bdf8;white-space:pre-wrap;border-radius:0 0 var(--radius) var(--radius);background:#050d1a;border:none;outline:none;padding:14px 18px;font-size:.78rem;line-height:1.6;display:block;overflow-y:auto}@media (width<=600px){.flash-method-tabs{grid-template-columns:1fr}.flash-method-tab{border-right:none;border-bottom:1px solid var(--border)}.flash-method-tab.active:after{bottom:-1px}.flash-method-panel{padding:16px}}.manage-container[data-v-a0548c5c]{background:var(--cream);flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}.conn-bar-wrapper[data-v-a0548c5c]{background:var(--blue-dark);border-bottom:2px solid var(--gold);height:48px;box-shadow:none;flex-shrink:0;align-items:center;padding:0 20px;display:flex}.conn-bar[data-v-a0548c5c]{align-items:center;gap:12px;margin-left:auto;display:flex}.conn-dot[data-v-a0548c5c]{background:var(--red);width:9px;height:9px;box-shadow:none;border-radius:50%}.conn-dot.connected[data-v-a0548c5c]{background:var(--green)}.conn-label[data-v-a0548c5c]{font-family:var(--font-body);color:#ffffffb3;font-size:.8rem;font-weight:500}.tab-nav[data-v-a0548c5c]{box-shadow:none;flex-shrink:0;position:static!important}#app-body[data-v-a0548c5c]{flex:1;height:100%!important;margin-top:0!important}#panel-flash[data-v-a0548c5c]{overflow-y:auto}@media (width<=900px){.manage-container[data-v-a0548c5c]{height:auto;overflow:auto}#app-body[data-v-a0548c5c]{overflow:auto;height:auto!important}}:root{--blue-main:#0066b3;--blue-dark:#0a2240;--blue-mid:#15355a;--gold:#f5a623;--cream:#fff;--white:#fff;--text:#1f2937;--text-muted:#6b7280;--border:#e5e7eb;--border-dark:#111827;--green:#10b981;--red:#ef4444;--yellow:#f5a623;--header-bg:#0a2240;--input-bg:#f5f8ff;--font-title:"Poppins", sans-serif;--font-body:"Roboto", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius:4px;--radius-sm:2px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--blue-main)}body{font-family:var(--font-body);color:var(--text);line-height:1.7}h1,h2,h3{font-family:var(--font-title)}.btn{font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:8px 18px;font-size:.85rem;font-weight:600;transition:background .15s,transform .1s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--blue-main);color:var(--white)}.btn-primary:hover:not(:disabled){background:#2b9bd4}.btn-dark{background:var(--blue-dark);color:var(--white)}.btn-dark:hover:not(:disabled){background:var(--blue-mid)}.btn-success{background:var(--green);color:var(--white)}.btn-success:hover:not(:disabled){background:#27ae60}.btn-danger{background:var(--red);color:var(--white)}.btn-danger:hover:not(:disabled){background:#c0392b}.btn-warn{background:var(--yellow);color:var(--white)}.btn-ghost{color:var(--blue-main);border:1.5px solid var(--blue-main);background:0 0}.btn-ghost:hover{background:#36a9e114}.btn-sm{padding:5px 12px;font-size:.78rem}.btn-icon{padding:6px 10px;font-size:1rem}input[type=text],input[type=password],input[type=number],select,textarea{font-family:var(--font-body);background:var(--input-bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;padding:7px 12px;font-size:.88rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--blue-main)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue-main);cursor:pointer}label{cursor:pointer;font-size:.88rem;font-weight:500}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:none;padding:20px 24px}.badge{letter-spacing:.07em;text-transform:uppercase;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-block}.badge-blue{color:var(--blue-main);background:#36a9e11f}.badge-green{color:#1a7a40;background:#2ecc711f}.badge-gold{color:#7a5c00;background:#f59e001f}.badge-red{color:#922b21;background:#e74c3c1f}.conn-dot{background:#aaa;border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:background .3s}.conn-dot.connected{background:var(--green)}.tag{letter-spacing:.1em;text-transform:uppercase;color:var(--blue-main);background:#36a9e11a;border-radius:999px;margin-bottom:8px;padding:3px 12px;font-size:.72rem;font-weight:700;display:inline-block}.hidden{display:none!important}.disabled{pointer-events:none;opacity:.5}.flex{display:flex}.flex-center{align-items:center;display:flex}.gap-8{gap:8px}.gap-12{gap:12px}.ml-auto{margin-left:auto}.text-muted{color:var(--text-muted)}.font-mono{font-family:var(--font-mono)}@keyframes sb-pulse-anim{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.65)}}
