:root{--ink:#12263a;--muted:#718093;--green:#19b789;--greenDark:#118a69;--sidebar:#102238;--surface:#fff;--bg:#f4f7fa;--border:#e4eaf0;--shadow:0 18px 45px rgba(25,45,67,.07);--amber:#f0b15c;--red:#d35a5a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,sans-serif}h2{font-size:21px;letter-spacing:-.6px}h3{font-size:16px}.muted{color:var(--muted)}.small{font-size:12px}.tiny{font-size:11px}.strong{font-weight:800}.text-green{color:#159b77}.text-orange{color:#b67a2c}.text-red{color:var(--red)}.nowrap{white-space:nowrap}.hide{display:none!important}.brand-symbol{display:flex;align-items:center;justify-content:center;width:41px;height:41px;border:1px solid #d1fff0;background:linear-gradient(145deg,#d3fff2,#82eac9);border-radius:13px;color:#0e423f;font:800 19px Manrope;display:grid;place-items:center;letter-spacing:-3px;padding-right:3px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.06)}.brand-symbol span{color:#109e7c}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid transparent;border-radius:11px;padding:11px 16px;font-weight:800;transition:.15s ease;min-height:42px}.btn-primary{background:#159d77;color:#fff}.btn-primary:hover{background:#0c8463}.btn-secondary{background:#eaf8f3;color:#0b7a5e}.btn-outline{border-color:#dce5ea;background:#fff;color:#233b4e}.btn-dark{background:#112d3c;color:white}.btn-white{background:white;color:#116f59}.btn-sm{padding:7px 11px;min-height:32px;font-size:12px;border-radius:8px}.btn-ghost{background:transparent;color:inherit;padding:8px}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:800;border-radius:100px;background:#edf3f7;color:#4c6b7d}.pill.green{background:#e0f6ee;color:#13845f}.pill.orange{background:#fff2de;color:#a36a21}.pill.red{background:#ffe8e7;color:#b94d4b}.pill.blue{background:#e7f2fb;color:#326a93}.dot{width:7px;height:7px;background:currentColor;border-radius:50%;display:inline-block}.shell{min-height:100vh;display:flex}.sidebar{width:252px;background:#102338;color:#d3e0e8;flex-shrink:0;display:flex;flex-direction:column;padding:26px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:1px 9px 28px;border-bottom:1px solid rgba(255,255,255,.1)}.brand-name{font-weight:800;color:#fff;font-family:Manrope;line-height:1.33;letter-spacing:-.35px}.brand-name span{display:block;font-size:11px;color:#9eb2bd;font-weight:500;letter-spacing:0;margin-top:3px}.sidebar-label{margin:28px 12px 10px;font-size:10px;text-transform:uppercase;letter-spacing:1.7px;color:#7595a6;font-weight:800}.nav-btn{width:100%;display:flex;align-items:center;gap:12px;border:0;color:#b6c7d0;background:transparent;border-radius:10px;padding:13px;font-weight:700;text-align:left;margin-bottom:5px}.nav-btn svg{width:18px;height:18px;flex-shrink:0}.nav-btn:hover{background:#1a3449;color:#fff}.nav-btn.active{background:#1f4b51;color:#a0f7d9;box-shadow:inset 3px 0 #2ce2a2}.sidebar-bottom{margin-top:auto}.help-card{padding:17px;border-radius:13px;background:linear-gradient(160deg,#234c53,#1a394c);margin-bottom:16px}.help-card h3{font-size:13px;color:white;margin:0 0 8px}.help-card p{font-size:12px;color:#c1d9df;line-height:1.6;margin-bottom:0}.role-indicator{display:flex;align-items:center;gap:10px;border-top:1px solid #2a4051;padding:16px 8px 0}.avatar{width:34px;height:34px;border-radius:50%;background:#dff8f0;color:#158262;display:grid;place-items:center;font-weight:800;flex-shrink:0}.role-indicator strong{display:block;color:#fff;font-size:12px}.role-indicator small{color:#8ea9b8;font-size:11px}.main{flex:1;min-width:0}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:12px}.topbar h3{margin:0;font-size:16px}.topbar p{margin:4px 0 0;font-size:12px;color:#82919e}.top-actions{display:flex;align-items:center;gap:12px}.top-actions .avatar{background:#eaf0f3;color:#3f5b6b}.content{padding:29px 34px 50px;max-width:1500px;margin:auto}.demo-banner{display:flex;align-items:center;gap:9px;background:#fff6e8;border:1px solid #f6ddb6;border-radius:11px;color:#855c25;padding:11px 14px;font-size:12px;margin-bottom:20px}.demo-banner svg{width:17px;flex-shrink:0}.breadcrumb{color:#81909c;font-size:12px;margin-bottom:16px}.breadcrumb strong{color:#344c5e}.hero{min-height:230px;background:radial-gradient(ellipse at 80% 0%,rgba(106,215,172,.33),transparent 35%),linear-gradient(108deg,#103c3e,#156957 72%,#1e8d6d);border-radius:18px;position:relative;color:#fff;padding:31px 36px;display:flex;justify-content:space-between;overflow:hidden;margin-bottom:24px;box-shadow:var(--shadow)}.hero:after{content:'';position:absolute;right:-90px;bottom:-230px;width:450px;height:450px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 50px rgba(255,255,255,.035),0 0 0 100px rgba(255,255,255,.025)}.eyebrow{font-weight:800;text-transform:uppercase;font-size:10px;letter-spacing:2px;color:#a3efd5}.hero h1{font-size:clamp(23px,2.5vw,36px);letter-spacing:-1px;line-height:1.27;max-width:560px;margin:13px 0}.hero p{max-width:520px;color:#daf4ec;line-height:1.7;margin:0 0 18px}.hero-content{z-index:1}.hero-tag{position:absolute;right:46px;top:47px;z-index:1;width:180px;height:145px;border:1px solid rgba(255,255,255,.35);border-radius:21px;transform:rotate(9deg);display:flex;align-items:center;justify-content:center;font:800 70px Manrope;letter-spacing:-13px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px);color:#dbfff0}.hero-tag span{color:#56dfae}.grid-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{background:#fff;border:1px solid var(--border);border-radius:15px;padding:19px 21px;box-shadow:var(--shadow)}.stat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.stat-label{font-size:12px;color:#748594;font-weight:700}.stat-icon{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:#e8f8f1;color:#159a73}.stat-icon svg{width:18px;height:18px}.stat-value{font-family:Manrope;font-size:25px;font-weight:800;letter-spacing:-1px}.stat-foot{font-size:11px;color:#81919f;margin-top:8px}.layout-two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:20px;align-items:start}.card{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:22px;margin-bottom:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.card-head h2,.card-head h3{margin:0}.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subject-tile{display:flex;align-items:center;gap:12px;border:1px solid #e2ebef;border-radius:11px;padding:13px;background:#fff}.subject-tile:hover{border-color:#5ac9a6}.tile-icon{height:38px;width:38px;border-radius:10px;background:#eef6f7;display:grid;place-items:center;color:#278b8e;font-size:18px;font-weight:800}.subject-tile strong{display:block;font-size:13px}.subject-tile small{color:#8a9ba4;font-size:11px}.subject-tile .pill{margin-left:auto}.progress{height:8px;background:#ebf0f2;border-radius:10px;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,#23b88b,#60dfb3);border-radius:10px}.progress-row{display:flex;justify-content:space-between;margin:10px 0 8px}.timeline-row{display:flex;gap:12px;position:relative;margin:17px 0}.timeline-row:not(:last-child):before{content:'';width:1px;background:#e0e9eb;position:absolute;top:27px;bottom:-20px;left:11px}.timeline-dot{width:23px;height:23px;background:#def8ee;color:#10875f;display:grid;place-items:center;border-radius:50%;font-size:12px;flex-shrink:0;z-index:1}.timeline-dot.wait{background:#f1f4f5;color:#8396a2}.timeline-row strong{font-size:12px}.timeline-row p{font-size:11px;color:#8595a0;margin:3px 0}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:620px}.data-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:#8795a1;background:#f8fafb;font-weight:800;padding:13px}.data-table td{padding:15px 13px;border-bottom:1px solid #edf1f4;vertical-align:middle;font-size:12px}.data-table tbody tr:hover{background:#fbfdfd}.data-table tbody tr:last-child td{border-bottom:0}.data-table td strong{font-size:12px}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 0 22px}.section-heading h1{font-size:26px;letter-spacing:-.8px;margin:0 0 7px}.section-heading p{margin:0;color:#7a8b97}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#475e6e;font-weight:800}.field input,.field select,.field textarea,.search{border:1px solid #dce6eb;background:white;border-radius:10px;padding:12px 13px;color:#183346;outline:none;min-height:44px}.field input:focus,.field select:focus,.field textarea:focus,.search:focus{border-color:#1ba781;box-shadow:0 0 0 3px rgba(26,166,127,.12)}.field small{color:#8596a0;font-weight:400}.full{grid-column:1/-1}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.choice{border:1px solid #dfe9eb;background:white;border-radius:12px;padding:15px;display:flex;align-items:center;gap:11px;cursor:pointer;transition:.18s}.choice input{accent-color:#159d77;width:17px;height:17px;flex-shrink:0}.choice:has(input:checked){border-color:#24b18a;background:#f0fbf6;box-shadow:0 0 0 1px #24b18a inset}.choice strong{font-size:13px;display:block}.choice small{font-size:11px;color:#80929f}.choice-price{margin-left:auto;color:#188b6a;font-weight:800;font-size:12px;white-space:nowrap}.summary{padding:20px;background:#f3f9f7;border:1px solid #d9eee7;border-radius:14px}.summary-row{display:flex;justify-content:space-between;margin-bottom:13px;color:#647e83}.summary-row strong{color:#133c43}.summary-row.total{padding-top:15px;border-top:1px dashed #bfd8d0;font-size:17px;font-weight:800;color:#163e3b}.summary-row.total strong{font-size:23px;color:#0d9471}.notice{padding:13px 15px;background:#edf7ff;color:#3e6b87;font-size:12px;line-height:1.6;border-radius:10px;border:1px solid #d6eafa}.notice.warn{background:#fff7e9;color:#8d672a;border-color:#f2dfb9}.notice.success{background:#eaf8f1;color:#197a5b;border-color:#d3eadd}.inline-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline-form select,.inline-form input{min-height:36px;padding:6px 9px;border-radius:8px;border:1px solid #dde5eb;background:#fff}.installment-box{margin:13px 0;border:1px solid #e1e9ef;border-radius:12px;overflow:hidden}.installment-head{display:flex;align-items:center;gap:11px;padding:14px 16px;background:#fbfdfd;flex-wrap:wrap}.installment-head .grow{flex:1}.installment-head strong{font-size:13px}.installment-body{padding:0 16px 14px}.installment-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:9px;align-items:center;border-top:1px solid #edf1f3;padding:12px 0}.installment-row small{display:block;color:#94a0ac}.installment-row b{font-size:12px}.installment-plan{display:flex;gap:8px;align-items:center}.installment-plan select{padding:6px;border-radius:8px;border:1px solid #dce4e7;font-size:12px;background:white}.empty{text-align:center;padding:50px 24px;color:#84949e}.empty-icon{font-size:34px;margin-bottom:8px}.filters{display:flex;gap:10px;align-items:center;margin:0 0 17px;flex-wrap:wrap}.search{min-width:220px;max-width:350px;flex:1}.filter-select{padding:11px;border:1px solid #dce6eb;border-radius:10px;background:#fff}.welcome{min-height:100vh;background:#f5f9f9}.public-nav{height:88px;max-width:1250px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:0 24px}.public-brand{display:flex;align-items:center;gap:12px}.public-brand strong{font:800 17px Manrope;letter-spacing:-.5px}.public-brand small{display:block;color:#77909a;margin-top:3px}.public-buttons{display:flex;gap:9px}.public-container{max-width:1250px;margin:auto;padding:45px 24px 80px}.welcome-hero{border-radius:26px;min-height:458px;background:radial-gradient(ellipse at 70% 12%,#2ba781,transparent 45%),linear-gradient(122deg,#103f47,#0e6252);padding:58px 63px;position:relative;color:white;overflow:hidden;display:flex;align-items:center}.welcome-hero:before{content:'';position:absolute;width:510px;height:510px;border:1px solid #ffffff32;border-radius:50%;right:-80px;top:40px;box-shadow:0 0 0 75px #ffffff09,0 0 0 150px #ffffff05}.welcome-hero h1{font:800 clamp(32px,4.4vw,56px)/1.18 Manrope;max-width:750px;letter-spacing:-2.2px;margin:17px 0}.welcome-hero p{max-width:510px;color:#d3f3e9;line-height:1.8;font-size:15px}.welcome-hero .hero-tag{right:87px;top:135px;width:205px;height:195px;font-size:85px}.welcome-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:23px}.benefit{background:#fff;border-radius:16px;padding:25px;box-shadow:var(--shadow);border:1px solid var(--border)}.benefit-icon{width:43px;height:43px;border-radius:11px;background:#e7f8f0;color:#138960;display:grid;place-items:center;margin-bottom:15px;font-size:20px}.benefit h3{margin:0 0 8px}.benefit p{color:#7b8e99;line-height:1.65;margin:0}.modal-wrap{position:fixed;inset:0;background:#0a202dbb;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.modal{background:white;border-radius:18px;width:100%;max-width:530px;box-shadow:0 30px 90px #081c2633;overflow:hidden;max-height:calc(100vh - 40px);overflow-y:auto}.modal.wide{max-width:660px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid #e8eef1}.modal-header h2{margin:0}.modal-content{padding:25px}.modal-close{border:0;border-radius:8px;background:#f0f4f5;width:31px;height:31px;font-size:20px;color:#526675}.toast{position:fixed;right:22px;bottom:22px;z-index:40;border-radius:10px;background:#173a39;color:white;padding:14px 19px;box-shadow:0 12px 30px #102c3b44;opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s;max-width:420px}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#9e4445}.segmented{display:flex;gap:7px;background:#f0f4f5;padding:5px;border-radius:11px}.segmented button{border:0;background:transparent;flex:1;padding:11px;border-radius:8px;font-weight:800;color:#69808c}.segmented button.active{background:white;box-shadow:0 1px 7px #00000016;color:#117e60}.loading{opacity:.55;pointer-events:none}.footer-note{font-size:12px;color:#8ea0aa;margin-top:34px;text-align:center}.two-col-list{display:flex;flex-direction:column;gap:11px}.two-col-list>div{display:flex;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid #edf1f3}.two-col-list>div:last-child{border:0}.metric-big{font:800 32px Manrope;color:#128967}.summary-fig{background:#f1faf5;border-radius:15px;padding:21px}.receipt{font:500 13px/1.7 'DM Sans';background:white;border:1px dashed #b8c9cd;padding:22px;border-radius:12px}.receipt h3{text-align:center}.receipt-line{display:flex;justify-content:space-between;border-bottom:1px solid #edf1f2;padding:6px 0}.splash{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#637d88}.print-only{display:none}@media(max-width:1100px){.sidebar{width:220px}.content{padding:25px 22px}.topbar{padding:0 22px}.grid-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-tag{opacity:.5}}@media(max-width:760px){.shell{display:block}.sidebar{height:auto;position:static;width:100%;padding:12px;display:block}.sidebar .brand{padding:4px 6px 10px;border:0}.sidebar-label,.sidebar-bottom{display:none}.nav-list{display:flex;gap:4px;overflow-x:auto}.nav-btn{white-space:nowrap;font-size:12px;padding:10px;margin:0;width:auto}.nav-btn svg{width:16px}.topbar{height:68px;padding:0 16px}.topbar p{display:none}.content{padding:16px}.hero{padding:25px;min-height:190px}.hero-tag{display:none}.layout-two{grid-template-columns:1fr}.subject-grid,.choice-grid,.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.section-heading{flex-direction:column}.section-heading h1{font-size:21px}.grid-stats{gap:10px}.stat{padding:15px}.stat-value{font-size:20px}.card{padding:17px}.welcome-benefits{grid-template-columns:1fr}.welcome-hero{padding:33px 26px;min-height:395px}.welcome-hero .hero-tag{display:none}.welcome-hero h1{letter-spacing:-1px}.public-nav{padding:0 15px}.public-buttons{gap:5px}.public-buttons .btn{font-size:11px;padding:8px}.public-brand strong{font-size:14px}.installment-row{grid-template-columns:1fr 1fr}.installment-row>*:last-child{justify-self:end}}@page{size:A4;margin:15mm}
@media print{
 html,body{height:auto!important;overflow:visible!important;margin:0!important;background:white!important;color:#12263a!important}
 /* Ne PAS masquer #app : la fenêtre de reçu se trouve à l'intérieur de cet élément. */
 #app>.shell,#app>.welcome,#toast,.modal-header,.modal .no-print{display:none!important}
 #app{display:block!important;visibility:visible!important}
 .modal-wrap{position:static!important;inset:auto!important;z-index:auto!important;background:white!important;display:block!important;padding:0!important;margin:0!important;overflow:visible!important}
 .modal{display:block!important;box-shadow:none!important;border:0!important;border-radius:0!important;width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;background:white!important}
 .modal-content{display:block!important;padding:0!important;overflow:visible!important}
 .receipt{display:block!important;visibility:visible!important;border:1px solid #cbd6db!important;border-radius:9px!important;max-width:168mm!important;width:100%!important;margin:12mm auto 0!important;padding:13mm!important;font-size:12px!important;line-height:1.7!important;break-inside:avoid;page-break-inside:avoid}
 .receipt h3{font-size:16px!important;margin-bottom:12px!important}
 .receipt-line{break-inside:avoid;page-break-inside:avoid}
 .receipt strong{color:#12263a!important}
 .print-only{display:block!important}
}


.btn svg,.top-actions svg{width:17px;height:17px;flex-shrink:0}

/* Identité Groupe Henri-Créno-Gaël : monogramme HCG */
.brand-symbol{letter-spacing:-1.2px;font-size:15px;padding-right:0;flex-shrink:0}.brand-symbol span{font-size:13px}.hero-tag span{letter-spacing:-1px}
@media (max-width:560px){.public-brand strong{font-size:13px}.public-brand small{font-size:10px}}

/* Gestion des sigles alphabétiques (Nouvelle matière) */
.hcg-code-hint{margin:14px 0 16px;padding:10px 13px;background:#edf8f5;border:1px solid #d4ede4;border-radius:10px;color:#33574f;font-size:12px;font-weight:600}
.hcg-code-hint strong{display:inline-block;min-width:44px;margin-left:6px;font-size:16px;color:#117c60;letter-spacing:1px}
#new-subject-form [name="symbol"]{font-weight:700;color:#193c44}

/* Bibliothèque HCG */
.learn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.learn-resource{border:1px solid #dfe9ef;background:#fff;border-radius:13px;padding:17px;display:flex;flex-direction:column;gap:10px;min-width:0}.learn-resource h3{margin:0;font-size:16px}.learn-resource p{margin:0;line-height:1.6}.learn-resource-top{display:flex;justify-content:space-between;align-items:center;gap:9px}.learn-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}.learn-buttons svg{width:14px;height:14px}.learn-access{display:flex;align-items:center;gap:12px;border:1px solid #e2edf1;border-radius:11px;padding:14px}.learn-access strong,.learn-access small{display:block}.learn-access small{font-size:12px;margin-top:4px}.learn-teacher{padding:14px;border-bottom:1px solid #edf1f4}.learn-teacher strong,.learn-teacher small{display:block}.hcg-mini-x{margin-left:4px;border:0;background:none;color:inherit;font-size:16px;cursor:pointer}.hcg-mini-x:hover{color:#a32727}
@media(max-width:790px){.learn-grid{grid-template-columns:1fr}}@media print{.learn-resource,.learn-access{display:none!important}}

.hcg-subject-checkboxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:9px;margin-top:12px;max-height:285px;overflow-y:auto;padding:8px;border:1px solid #e1e7ed;border-radius:10px}.hcg-checkbox-teacher{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #e5edef;border-radius:9px;background:#f8fbfc;cursor:pointer;font-size:13px}.hcg-checkbox-teacher input{width:18px;height:18px;accent-color:#159b7b;flex:none}.hcg-checkbox-teacher small{opacity:.6}
