:root{--primary:#062447;--secondary:#0ea5e9;--accent:#f59e0b;--danger:#dc2626;--dark:#0f172a;--soft:#f8fafc}*{scroll-behavior:smooth;box-sizing:border-box}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#f5f7fb;color:#172033;overflow-x:hidden}.glass-nav{background:rgba(6,24,44,.94);backdrop-filter:blur(14px);box-shadow:0 12px 35px rgba(2,6,23,.18)}.brand-badge{background:var(--accent);color:#111;padding:.35rem .55rem;border-radius:.8rem}.hero{min-height:860px;background:radial-gradient(circle at 15% 20%,rgba(245,158,11,.25),transparent 28%),linear-gradient(120deg,rgba(6,24,44,.96),rgba(9,76,122,.80)),url('https://images.unsplash.com/photo-1523050854058-8df90110c9f1?q=80&w=1600&auto=format&fit=crop') center/cover;display:flex;align-items:center;color:white;padding-top:100px;position:relative}.hero:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:95px;background:linear-gradient(180deg,transparent,#f5f7fb)}.hero h1{font-size:clamp(2.4rem,6vw,5rem);font-weight:950;letter-spacing:-.05em;line-height:.98}.hero-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:32px;backdrop-filter:blur(14px);box-shadow:0 30px 90px rgba(0,0,0,.28)}.section-title{font-weight:950;color:var(--dark);letter-spacing:-.03em}.feature-card,.stat-card,.dash-card,.form-card,.table-card,.news-card{border:1px solid #eef2f7;border-radius:24px;background:white;box-shadow:0 18px 45px rgba(15,23,42,.08);transition:.28s}.feature-card:hover,.stat-card:hover,.dash-card:hover,.news-card:hover{transform:translateY(-6px);box-shadow:0 28px 70px rgba(15,23,42,.12)}.stat-card h2{font-weight:950;color:#082f49}.icon-circle{width:58px;height:58px;display:grid;place-items:center;border-radius:20px;background:#e0f2fe;color:#0369a1;font-size:1.55rem}.btn-main{background:var(--accent);border:0;color:#111;font-weight:850;border-radius:14px;padding:.8rem 1.2rem;box-shadow:0 12px 25px rgba(245,158,11,.35)}.btn-main:hover{background:#fbbf24;color:#111}.footer-section{background:var(--dark)}.footer-link{color:#cbd5e1;text-decoration:none}.footer-link:hover{color:white}.login-page{min-height:100vh;background:linear-gradient(135deg,#06182c,#0ea5e9);display:grid;place-items:center;padding:90px 15px}.login-card{max-width:980px;width:100%;border-radius:30px;overflow:hidden;box-shadow:0 40px 100px rgba(0,0,0,.25)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:285px;background:linear-gradient(180deg,#081827,#0f172a);color:white;overflow:auto;z-index:1030;box-shadow:16px 0 40px rgba(15,23,42,.18)}.sidebar a{display:block;color:#dbeafe;text-decoration:none;padding:13px 20px;border-left:4px solid transparent;font-weight:600}.sidebar a:hover{background:#1e293b;border-left-color:var(--accent);color:#fff}.dashboard-layout{margin-left:285px;min-height:100vh;padding:28px}.topbar{background:white;border-radius:24px;padding:18px 24px;box-shadow:0 12px 34px rgba(15,23,42,.07);margin-bottom:24px}.table-card{padding:20px;overflow:auto}.table{vertical-align:middle}.table th{white-space:nowrap;color:#0f172a;background:#f8fafc}.print-header{display:none}.badge-role{background:#dbeafe;color:#1d4ed8}.fade-up{animation:fadeUp .7s ease both}.mini-stat{background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:14px}.school-band{background:linear-gradient(90deg,#0b2f4f,#0ea5e9);color:white}.timeline-item{border-left:4px solid var(--accent);padding-left:18px}.contact-box{background:#082f49;color:white;border-radius:28px}.form-control,.form-select{border-radius:14px;padding:.72rem .9rem}.avatar{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#e0f2fe;color:#0369a1;font-weight:900}.public-spacer{padding-top:115px}.result-band{background:linear-gradient(135deg,#062447,#0ea5e9);color:white;border-radius:32px}.notification{border-left:5px solid var(--danger);background:#fff1f2;border-radius:14px;padding:12px 14px}.bulletin-box{background:white;border:2px solid #0f172a;padding:22px}.bulletin-title{text-align:center;border:2px solid #0f172a;padding:8px;font-weight:900;margin:12px 0}.media-thumb{width:90px;height:58px;object-fit:cover;border-radius:10px}@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media(max-width:991px){.sidebar{position:relative;width:100%;height:auto}.dashboard-layout{margin-left:0;padding:16px}.hero{min-height:760px}.topbar{border-radius:18px}}@media print{@page{size:A4;margin:10mm}.no-print,.sidebar,.navbar,.footer-section,.form-card,.topbar .no-print,.btn{display:none!important}.dashboard-layout{margin:0!important;padding:0!important;min-height:auto}.table-card{box-shadow:none!important;border:0!important;border-radius:0!important;padding:0!important;overflow:visible!important}.print-header{display:block!important;text-align:center;border-bottom:2px solid #111;margin-bottom:15px;padding-bottom:10px}.print-area{background:#fff}.table{font-size:11px;width:100%!important;border-collapse:collapse!important}.table th,.table td{border:1px solid #333!important;padding:5px!important}body{background:white!important;color:#000!important}.col-lg-8,.col-lg-12{width:100%!important}.row{display:block!important}.bulletin-box{border:2px solid #000;box-shadow:none!important}.page-break{page-break-after:always}}.dashboard-page{background:#f5f7fb;padding-top:0!important}.dashboard-page .footer-section{display:none!important}.dashboard-page main{min-height:100vh}.dashboard-page .dashboard-layout{padding-top:28px}.dashboard-page .topbar{position:relative;z-index:1}

/* V6 - Identité Tornis, animations et ergonomie */
:root{--primary:#001333;--secondary:#061d49;--accent:#ff0018;--accent2:#0b2d67;--soft:#f7f9fc}
.nav-logo{height:42px;width:auto;background:white;border-radius:10px;padding:4px}.brand-logo{max-height:70px}.sidebar-brand-logo{max-width:170px;background:white;border-radius:12px;padding:8px;margin-bottom:10px}.glass-nav{background:rgba(0,19,51,.96)!important}.btn,.page-link{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,19,51,.18)}.btn-main,.btn-primary{background:linear-gradient(135deg,var(--accent),#c90014)!important;border:0!important;color:#fff!important}.btn-outline-primary{border-color:var(--accent)!important;color:var(--accent)!important}.btn-outline-primary:hover{background:var(--accent)!important;color:#fff!important}.sidebar{background:linear-gradient(180deg,#001333,#07162d)!important}.sidebar a:hover{border-left-color:var(--accent)!important}.topbar{border-top:5px solid var(--accent)}.hero{background:radial-gradient(circle at 20% 20%,rgba(255,0,24,.18),transparent 26%),linear-gradient(120deg,rgba(0,19,51,.96),rgba(6,29,73,.82)),url('https://images.unsplash.com/photo-1562774053-701939374585?q=80&w=1600&auto=format&fit=crop') center/cover}.table-card,.form-card,.dash-card{animation:fadeUp .45s ease both}.search-panel{background:#fff;border:1px solid #e5e7eb;border-radius:22px;padding:16px;box-shadow:0 14px 38px rgba(15,23,42,.07)}.page-item.active .page-link{background:var(--accent);border-color:var(--accent)}.public-page .navbar .nav-link{font-weight:700}.public-page .navbar .nav-link:hover{color:#fff;background:rgba(255,255,255,.12);border-radius:999px}.site-menu-card{border-radius:30px;background:white;box-shadow:0 24px 70px rgba(0,19,51,.12);overflow:hidden}.hero .brand-logo-white{background:white;border-radius:22px;padding:12px;max-width:240px}
@media print{.search-panel,.pagination{display:none!important}.print-one-page{page-break-inside:avoid}}

/* V7 - bulletins avancés, cartes élèves et communication */
.student-photo{width:92px;height:112px;object-fit:cover;border-radius:16px;border:3px solid #001333;background:#fff}.student-photo-large{width:135px;height:165px;object-fit:cover;border-radius:20px;border:4px solid #001333;background:#fff}.cards-sheet{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:#fff;padding:10px}.student-card{width:100%;height:102px;border-radius:13px;padding:8px;position:relative;overflow:hidden;border:1px solid #cbd5e1;box-shadow:0 8px 18px rgba(0,19,51,.12);page-break-inside:avoid}.student-card .card-top{display:flex;justify-content:space-between;align-items:center;font-size:9px}.student-card .card-body-mini{display:flex;gap:8px;align-items:center;margin-top:5px}.student-card img{width:42px;height:52px;object-fit:cover;border-radius:8px;background:#fff}.student-card h6{font-size:11px;font-weight:900;margin:0;color:#001333}.student-card p{font-size:8px;line-height:1.25;margin:2px 0}.qr-box{position:absolute;right:7px;bottom:6px;font-size:7px;border:1px dashed #111;padding:4px;border-radius:4px;background:#fff}.modele1{background:linear-gradient(135deg,#fff,#f5f7fb);border-left:7px solid #ff0018}.modele2{background:linear-gradient(135deg,#001333,#0b2d67);color:#fff}.modele2 h6{color:#fff}.modele2 .qr-box{color:#001333}.modele3{background:radial-gradient(circle at 90% 10%,#ff0018 0,#ff0018 20%,transparent 21%),#fff;border-top:5px solid #001333}.fw-black{font-weight:950}.badge-soft{background:#e0f2fe;color:#075985;border-radius:999px;padding:.35rem .7rem;font-weight:800}.message-preview{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:18px;padding:14px}.dashboard-layout .btn{will-change:transform}.dashboard-layout .btn:active{transform:scale(.98)}
@media print{.cards-sheet{grid-template-columns:repeat(2,1fr)!important;gap:5mm!important;padding:0!important}.student-card{height:49mm!important;box-shadow:none!important;border:1px solid #111!important;break-inside:avoid}.student-card:nth-child(10n){page-break-after:always}.student-photo{width:26mm;height:31mm}.student-photo-large{width:35mm;height:43mm}.bulletin-box{font-size:12px}.bulletin-box .student-photo{width:25mm;height:31mm}.student-card h6{font-size:10px}.student-card p{font-size:7.5px}}

/* V9 SaaS */
.login-body{min-height:100vh;margin:0}.auth-hero{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:linear-gradient(rgba(5,22,42,.62),rgba(5,22,42,.7)),url('../img/login-eleves.svg') center/cover no-repeat;padding:30px}.auth-overlay{position:absolute;inset:0;background:radial-gradient(circle at top left,rgba(220,38,38,.35),transparent 35%)}.auth-card{position:relative;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-radius:28px;padding:38px;max-width:470px;width:100%;animation:floatIn .75s ease}.auth-logo{max-height:78px;margin-bottom:12px}.auth-card h1{font-size:2.3rem;font-weight:900;color:#0b1f3a}.btn,.action-btn{transition:all .2s ease}.btn:hover,.action-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(15,23,42,.18)}@keyframes floatIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.stat-lite{border-radius:22px;background:#fff;padding:22px;box-shadow:0 14px 35px rgba(15,23,42,.08)}.locked-msg{max-width:650px;margin:60px auto;padding:40px;text-align:center}.bulletin-title{font-size:1.2rem;font-weight:900;color:#b91c1c}.doc-footer{border-top:1px solid #ddd;margin-top:24px;padding-top:10px;font-size:12px;text-align:center}.print-header img{max-height:65px}.archive-card{border:1px solid #e5e7eb;border-radius:18px;padding:20px;background:#fff}.subject-rank{font-size:12px;color:#64748b}.teacher-only .admin-stat{display:none}.student-photo{width:86px;height:86px;object-fit:cover;border-radius:12px;border:1px solid #ddd}
@media print{.sidebar,.topbar,.no-print,.btn,.alert{display:none!important}.dashboard-layout{margin:0!important;padding:0!important}.bulletin-box,.table-card,.print-area{box-shadow:none!important;border:0!important}.doc-footer{position:fixed;bottom:8mm;left:0;right:0}}

/* Bulletin officiel V16 */
.bulletin-official-header{display:grid;grid-template-columns:170px 1fr 170px;gap:16px;align-items:center;border-bottom:3px solid var(--primary,#071831);padding-bottom:14px;margin-bottom:8px}
.bulletin-logo-left,.bulletin-logo-right{text-align:center}.bulletin-logo{max-width:150px;max-height:105px;object-fit:contain}.bulletin-header-center{text-align:center;line-height:1.35}.republic-title{font-weight:800;font-size:15px;letter-spacing:.5px;color:#071831}.school-title{font-weight:900;font-size:22px;color:#071831;text-transform:uppercase}.bulletin-title{font-weight:900;font-size:19px;color:#d71920;margin-top:4px}.bulletin-student-photo{width:105px;height:125px;object-fit:cover;border:3px solid #071831;border-radius:10px;background:#fff}.bulletin-identity{border:1px solid #dbe3ef;border-radius:12px;padding:12px;background:#f8fafc}.bulletin-table th{background:#071831!important;color:#fff!important}.bulletin-table tfoot th{background:#eef3f9!important;color:#071831!important}
@media print{.bulletin-official-header{grid-template-columns:145px 1fr 145px}.bulletin-logo{max-width:130px;max-height:90px}.bulletin-student-photo{width:90px;height:110px}.bulletin-box{box-shadow:none!important}.no-print{display:none!important}}

/* V17 - Performances et cartes scolaires premium */
.perf-chart{width:100%;height:auto;background:linear-gradient(180deg,#fff,#f8fafc);border-radius:22px;padding:12px;border:1px solid #e2e8f0;box-shadow:0 16px 40px rgba(0,19,51,.08)}
.table-card h5{color:#001333}.sidebar a{transition:.2s ease}.sidebar a:hover{transform:translateX(5px);background:rgba(255,0,24,.08)}
.cards-sheet{grid-template-columns:repeat(2,1fr);gap:12px;background:#fff;padding:12px}.student-card{height:118px;border-radius:18px;border:0;box-shadow:0 12px 32px rgba(0,19,51,.18);padding:10px}.student-card .card-top{font-size:9px;letter-spacing:.4px;text-transform:uppercase}.student-card .card-body-mini{margin-top:7px}.student-card img{width:48px;height:60px;border-radius:12px;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.18)}.student-card h6{font-size:12px;line-height:1.05}.student-card p{font-size:8px}.qr-box{right:10px;bottom:9px;border-radius:8px;border:1px solid #001333;font-weight:800}.modele1{background:linear-gradient(135deg,#ffffff 0%,#eef4ff 100%);border-left:9px solid #ff0018}.modele1:before{content:"";position:absolute;right:-35px;top:-35px;width:110px;height:110px;background:#001333;border-radius:50%;opacity:.08}.modele2{background:linear-gradient(135deg,#001333 0%,#0b2d67 65%,#ff0018 100%);color:#fff}.modele2 h6,.modele2 .card-top{color:#fff}.modele2 .qr-box{background:#fff;color:#001333}.modele3{background:linear-gradient(135deg,#fff 0%,#fff 58%,#001333 58%,#001333 100%);border-top:8px solid #ff0018}.modele3 .qr-box{background:#fff}.modele3:after{content:"CARTE ÉLÈVE";position:absolute;right:10px;top:45px;color:#fff;font-weight:900;font-size:10px;letter-spacing:1px;transform:rotate(-2deg)}
@media print{.perf-chart{box-shadow:none;border:1px solid #ddd}.student-card{height:48mm!important;border:1px solid #111!important;box-shadow:none!important}.cards-sheet{grid-template-columns:repeat(2,1fr)!important;gap:4mm!important}.student-card:nth-child(10n){page-break-after:always}}

/* V18 - Performances pédagogiques avancées */
.performance-page .topbar{background:linear-gradient(135deg,#001333,#082c66);color:#fff;border-radius:28px;padding:28px;box-shadow:0 24px 60px rgba(0,19,51,.18)}
.performance-page .topbar span{color:#dbeafe}.performance-page .table-card{border:1px solid #e6edf7;border-radius:26px;box-shadow:0 20px 55px rgba(0,19,51,.08)}
.perf-tabs{display:flex;gap:10px;flex-wrap:wrap;background:#fff;padding:10px;border-radius:22px;box-shadow:0 10px 30px rgba(0,19,51,.08)}
.perf-tabs a{padding:12px 18px;border-radius:16px;text-decoration:none;color:#001333;font-weight:900;border:1px solid #e6edf7;transition:.25s ease;background:#f8fafc}.perf-tabs a:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,19,51,.12)}.perf-tabs a.active{background:#ff0018;color:#fff;border-color:#ff0018}
.perf-filter .form-select,.perf-filter .form-control{border-radius:16px;padding:12px 14px;border:1px solid #dbe5f3}.perf-chart{width:100%;height:auto;display:block;background:#fff;border-radius:24px;border:1px solid #edf2f8;box-shadow:0 18px 45px rgba(0,19,51,.08)}
.performance-page table td,.performance-page table th{vertical-align:middle}.performance-page .table .perf-chart{box-shadow:none;border:0;border-radius:12px;max-height:110px}.performance-page .table svg text{font-size:10px}.performance-page .dash-card{background:linear-gradient(135deg,#fff,#f5f9ff);border:1px solid #e6edf7;border-radius:26px;box-shadow:0 18px 45px rgba(0,19,51,.08)}

/* V18 - Cartes scolaires professionnelles */
.cards-module .topbar{background:linear-gradient(135deg,#001333 0%,#082c66 65%,#ff0018 120%);color:#fff;border-radius:28px;padding:28px}.cards-module .topbar span{color:#eaf2ff}.card-toolbar .form-select{border-radius:16px;padding:12px 14px}.cards-sheet{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px;background:#fff;padding:10px}.student-card-pro{height:50mm;min-height:188px;border-radius:18px;position:relative;overflow:hidden;padding:11px;border:1px solid #d6e0ee;box-shadow:0 18px 45px rgba(0,19,51,.16);page-break-inside:avoid;color:#001333;background:#fff}.student-card-pro .card-bg-shape{position:absolute;inset:auto -30px -40px auto;width:150px;height:150px;border-radius:50%;background:#ff0018;opacity:.12}.student-card-pro .card-head{position:relative;display:flex;align-items:center;gap:8px;z-index:2}.student-card-pro .card-logo{width:42px;height:28px;object-fit:contain;background:#fff;border-radius:8px;padding:2px}.student-card-pro .card-head strong{display:block;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.35px;line-height:1}.student-card-pro .card-head span{display:block;font-size:8px;font-weight:800;opacity:.75;margin-top:2px}.student-card-pro .card-main{position:relative;z-index:2;display:flex;gap:10px;align-items:center;margin-top:9px}.student-card-pro .card-photo{width:50px;height:62px;object-fit:cover;border-radius:14px;border:3px solid #fff;box-shadow:0 6px 16px rgba(0,0,0,.2);background:#fff}.student-card-pro .card-info h6{font-size:13px;line-height:1.04;margin:0 0 5px 0;font-weight:950;text-transform:uppercase}.student-card-pro .card-info p{font-size:8.5px;margin:1px 0;line-height:1.18}.student-card-pro .card-info b{display:inline-block;min-width:45px;color:#64748b}.student-card-pro .card-foot{position:absolute;left:11px;right:11px;bottom:8px;display:flex;align-items:end;justify-content:space-between;font-weight:900;font-size:8px;z-index:3}.qr-box-pro{border:1.5px solid currentColor;border-radius:8px;padding:5px;background:rgba(255,255,255,.9);font-size:7px;letter-spacing:.3px}.student-card-pro.modele1{background:linear-gradient(135deg,#fff 0%,#f1f6ff 100%);border-left:8px solid #ff0018}.student-card-pro.modele1:before{content:"CARTE ÉLÈVE";position:absolute;right:14px;top:48px;color:#001333;font-size:9px;font-weight:950;opacity:.22;letter-spacing:1px}.student-card-pro.modele2{background:linear-gradient(135deg,#001333 0%,#082c66 60%,#ff0018 140%);color:#fff;border:0}.student-card-pro.modele2 .card-info b,.student-card-pro.modele2 .card-head span{color:#dbeafe}.student-card-pro.modele2 .card-bg-shape{background:#fff;opacity:.1}.student-card-pro.modele2 .qr-box-pro{background:#fff;color:#001333}.student-card-pro.modele3{background:linear-gradient(140deg,#fff 0%,#fff 56%,#001333 56%,#001333 100%);border-top:7px solid #ff0018}.student-card-pro.modele3 .card-foot span:first-child{color:#fff;margin-left:auto;margin-right:74px}.student-card-pro.modele3 .qr-box-pro{background:#fff;color:#001333}.student-card-pro.modele3:after{content:"OFFICIEL";position:absolute;right:14px;top:66px;color:#fff;font-weight:950;font-size:12px;letter-spacing:1.2px;transform:rotate(-3deg)}
@media print{.performance-page .topbar,.cards-module .topbar{box-shadow:none;background:#fff!important;color:#001333!important;border:1px solid #ddd}.perf-tabs,.perf-filter,.card-toolbar,.alert.no-print{display:none!important}.perf-chart{box-shadow:none!important;border:1px solid #ddd!important}.cards-sheet{grid-template-columns:repeat(2,1fr)!important;gap:4mm!important;padding:0!important}.student-card-pro{height:48mm!important;min-height:48mm!important;box-shadow:none!important;border:1px solid #111!important;border-radius:8px!important}.student-card-pro:nth-child(10n){page-break-after:always}.student-card-pro .card-head strong{font-size:9px}.student-card-pro .card-info h6{font-size:11px}.student-card-pro .card-info p{font-size:7.5px}.student-card-pro .card-photo{width:16mm;height:20mm}.student-card-pro .card-foot{font-size:7px}.qr-box-pro{font-size:6px}}
/* V21 SaaS Grande École */
.sidebar a{transition:all .18s ease}.sidebar a:hover{transform:translateX(4px)}
.badge{letter-spacing:.2px}.tenant-code{font-weight:800;letter-spacing:1px}

.student-card-pro.modele4{background:linear-gradient(90deg,#001333 0,#001333 27%,#fff 27%,#fff 100%);border:1px solid #001333;color:#001333}.student-card-pro.modele4 .card-head{color:#fff;width:25%;display:block}.student-card-pro.modele4 .card-main{margin-left:28%;margin-top:-24px}.student-card-pro.modele4 .card-foot{left:30%;}.student-card-pro.modele5{background:#fff;border:2px solid #d4af37;box-shadow:0 14px 35px rgba(80,60,10,.16)}.student-card-pro.modele5:before{content:"UNIVERSITÉ";position:absolute;right:18px;top:10px;font-weight:950;color:#d4af37;opacity:.28;letter-spacing:2px}.student-card-pro.modele5 .card-bg-shape{background:#d4af37;opacity:.16}
.admission-step{border-left:5px solid #ff0018;background:#fff;border-radius:16px;padding:14px;margin-bottom:12px}.certificate-seal{width:120px;height:120px;border:4px double #001333;border-radius:50%;display:grid;place-items:center;margin:auto;font-weight:900}

/* Accueil public université privée */
.public-nav{z-index:1030}.public-spacer{padding-top:110px}.home-hero{min-height:720px;padding:150px 0 90px;background:radial-gradient(circle at top right,rgba(227,6,19,.18),transparent 35%),linear-gradient(135deg,var(--brand-blue),#061628);color:#fff}.home-hero h1{font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.03;font-weight:900;letter-spacing:-.05em}.home-hero p{font-size:1.18rem;max-width:720px;opacity:.92}.home-badge{display:inline-flex;padding:.6rem 1rem;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);margin-bottom:1.2rem}.hero-panel{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(18px);border-radius:28px;padding:32px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.hero-panel ul{padding-left:1.2rem}.home-section{padding:80px 0}.home-card,.program-card,.contact-box{background:#fff;border-radius:24px;padding:28px;box-shadow:0 18px 45px rgba(6,22,40,.08);height:100%;border:1px solid rgba(11,42,85,.08)}.home-card i{font-size:2.4rem;color:var(--brand-red);margin-bottom:14px}.home-card h3,.program-card h4{font-weight:800;color:var(--brand-blue)}.section-title{text-align:center;max-width:760px;margin:0 auto 42px}.section-title span{color:var(--brand-red);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.section-title h2{font-weight:900;color:var(--brand-blue);font-size:clamp(2rem,4vw,3.2rem)}.program-card strong{display:inline-block;margin:8px 0 14px;color:var(--brand-red)}.timeline-admission{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.timeline-admission div{background:#fff;border-radius:20px;padding:22px;text-align:center;box-shadow:0 12px 35px rgba(6,22,40,.08);position:relative}.timeline-admission b{display:grid;place-items:center;width:46px;height:46px;margin:0 auto 12px;border-radius:50%;background:var(--brand-blue);color:#fff}.timeline-admission span{font-weight:700;color:var(--brand-blue)}.status-steps{display:flex;gap:8px;flex-wrap:wrap}.status-steps span{font-size:.82rem;padding:.45rem .7rem;border-radius:999px;background:#eef2f7;color:#526071}.status-steps span.active{background:var(--brand-blue);color:#fff}.empty-state{text-align:center;padding:55px 20px;color:#64748b}.empty-state i{font-size:3rem;color:var(--brand-blue)}@media(max-width:992px){.timeline-admission{grid-template-columns:1fr 1fr}.home-hero{padding-top:130px}}@media(max-width:576px){.timeline-admission{grid-template-columns:1fr}.home-hero{min-height:auto}.public-spacer{padding-top:90px}}


/* V10 - Charte Ecole de Commerce de Lyon */
:root{--ecl-blue:#002f6c;--ecl-red:#e30613;--ecl-gray:#666;}
.btn-main,.btn-primary{background:var(--ecl-blue)!important;border-color:var(--ecl-blue)!important;color:#fff!important}
.btn-danger,.badge.bg-danger{background:var(--ecl-red)!important;border-color:var(--ecl-red)!important}
.sidebar{border-top:6px solid var(--ecl-blue)}
.sidebar a:hover,.sidebar a.active{background:rgba(0,47,108,.08);color:var(--ecl-blue)}
.sidebar-brand-logo,.brand-logo,.auth-logo{max-width:180px;object-fit:contain}.topbar h4{color:var(--ecl-blue)}
.table-card,.form-card{border-top:4px solid var(--ecl-blue)}
.receipt-box{background:#fff;border:1px solid #d7dce3;border-radius:18px;padding:28px;max-width:860px;margin:auto}.receipt-head{display:flex;justify-content:space-between;border-bottom:3px solid var(--ecl-blue);padding-bottom:16px;margin-bottom:20px}.receipt-head img{max-height:75px}.receipt-no{background:#f8fafc;border:1px dashed var(--ecl-red);padding:10px 14px;border-radius:12px}
.qr-card{border:2px dashed var(--ecl-blue);border-radius:22px;background:#fff;padding:24px;text-align:center}.qr-card img{max-width:280px;width:100%;height:auto}
@media print{.receipt-box{border:0}.no-print,.sidebar,.topbar .no-print{display:none!important}.dashboard-layout{margin:0!important;padding:0!important}.print-area{box-shadow:none!important;border:0!important}}

/* V12 - Personnalisation officielle Ecole de Commerce de Lyon */
:root{
  --primary:#002f6c!important;
  --secondary:#e30613!important;
  --accent:#e30613!important;
  --brand-blue:#002f6c!important;
  --brand-red:#e30613!important;
  --ecl-blue:#002f6c!important;
  --ecl-red:#e30613!important;
}
.public-nav{background:rgba(0,47,108,.96)!important;border-bottom:4px solid var(--ecl-red)}
.home-hero{background:radial-gradient(circle at top right,rgba(227,6,19,.25),transparent 34%),linear-gradient(135deg,#002f6c,#001733)!important;}
.home-badge{border-color:rgba(255,255,255,.35)}
.btn-warning{background:var(--ecl-red)!important;border-color:var(--ecl-red)!important;color:#fff!important}
.btn-main,.btn-primary{background:linear-gradient(135deg,#002f6c,#001c41)!important;border-color:#002f6c!important;color:#fff!important}
.btn-outline-primary{border-color:#002f6c!important;color:#002f6c!important}.btn-outline-primary:hover{background:#002f6c!important;color:#fff!important}
.sidebar{background:linear-gradient(180deg,#002f6c,#001733)!important;border-top:6px solid #e30613!important}.sidebar a{color:#eef4ff!important}.sidebar a:hover{background:rgba(255,255,255,.12)!important;border-left-color:#e30613!important;color:#fff!important}
.topbar{border-top:5px solid #e30613!important}.topbar h4,.section-title h2,.home-card h3,.program-card h4{color:#002f6c!important}.section-title span,.home-card i,.program-card strong{color:#e30613!important}
.nav-logo{height:52px!important;max-width:190px!important;background:white;border-radius:10px;padding:5px}.sidebar-brand-logo{max-width:210px!important;background:white;border-radius:12px;padding:8px}.scan-logo{max-width:220px!important;background:white;border-radius:12px;padding:8px}.qr-card{border:2px dashed #002f6c!important;border-top:6px solid #e30613!important}
