:root{--primary:#206bc4;--primary-dark:#185aa8;--bg:#f5f7fb;--border:#e3e8ef;--text:#1d2733;--muted:#66788a;--danger:#d63939;--shadow:0 1px 3px rgba(24,36,51,.06)}*{box-sizing:border-box}html{font-size:15px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{height:64px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:30}.brand{font-weight:750;font-size:20px;white-space:nowrap}.brand span{color:var(--primary)}.brand small{font-size:12px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:24px}.userbox{text-align:right}.userbox small{display:block;color:var(--muted);margin-top:2px}.credit{padding:7px 10px;border-radius:8px;background:#f0f5fb;color:#4b5e71;font-size:13px}.mobile-menu{display:none;border:0;background:transparent;font-size:22px;margin-right:8px}.shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100vh - 64px)}.sidebar{background:#fff;border-right:1px solid var(--border);padding:18px 13px;position:sticky;top:64px;height:calc(100vh - 64px);overflow:auto}.nav a{display:block;padding:10px 12px;border-radius:7px;margin:2px 0;color:#405166;font-weight:520}.nav a:hover,.nav a.active{background:#edf4fc;color:var(--primary)}.nav hr{border:0;border-top:1px solid var(--border);margin:14px 0}.content{padding:26px;max-width:1540px;width:100%;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}.page-head h1{font-size:25px;line-height:1.2;margin:0 0 4px}.muted{color:var(--muted)}.small{font-size:12px}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.card{background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:19px;min-width:0}.card-title{font-size:16px;font-weight:700;margin-bottom:14px}.kpi{grid-column:span 3}.kpi .num{font-size:29px;font-weight:750;margin-top:7px}.small-num{font-size:21px!important}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-6{grid-column:span 6}.span-5{grid-column:span 5}.span-4{grid-column:span 4}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:7px;padding:9px 13px;font-weight:650;cursor:pointer;background:#fff;line-height:1.2}.btn:hover{filter:brightness(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border-color:#cbd5e1;color:#34465a}.btn-danger{background:var(--danger);color:#fff}.btn-sm{padding:6px 9px;font-size:12px}.btn-lg{padding:11px 17px}.full{width:100%}.form-control,.form-select{width:100%;border:1px solid #cbd5e1;border-radius:7px;padding:9px 10px;background:#fff;color:var(--text)}.form-control:focus,.form-select:focus{outline:3px solid rgba(32,107,196,.12);border-color:#74a4db}.form-label,.field>label,.filter-grid label{display:block;font-weight:650;margin:0 0 6px}.field{margin-bottom:15px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:1;min-width:220px}.auto{width:auto;min-width:170px}.push-right{margin-left:auto}.form-2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 9px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap;vertical-align:top}.table th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#738296}.table td.wrap,.wrap{white-space:normal}.max-message{min-width:260px;max-width:520px}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2f6;color:#536476;font-size:12px;font-weight:650}.badge-blue{background:#e9f2fd;color:#1764ad}.badge-green{background:#e8f7ef;color:#147245}.badge-orange{background:#fff2df;color:#9a5b00}.badge-red{background:#fdecec;color:#b42318}.badge-gray{background:#eef2f6;color:#536476}.alert{padding:12px 14px;border-radius:8px;margin-bottom:16px}.alert-success{background:#e9f8ef;color:#176b3a}.alert-danger{background:#fdeeee;color:#a22121}.alert-info{background:#eaf3fc;color:#245a8d}.alert.compact{padding:9px 11px;margin-bottom:0}.filter-card{margin-bottom:18px}.filter-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;align-items:end}.filter-actions{display:flex;gap:7px;align-items:end}.checklist{max-height:500px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:#fff}.checkrow{display:grid;grid-template-columns:32px minmax(180px,1fr) minmax(140px,.7fr) 125px;gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid #edf0f4;cursor:pointer}.checkrow:hover{background:#f8fafc}.checkrow small{display:block;color:var(--muted);margin-top:2px}.checkrow.simple{grid-template-columns:32px 1fr}.recipients{margin-top:12px}.target-field{margin:14px 0 0}.compose-card{position:sticky;top:82px;align-self:start}.prefix-note{font-size:12px;color:var(--muted);margin-bottom:6px}.counter{font-size:12px;color:var(--muted);margin-top:6px}.sms-preview{background:#e9f0f7;border-radius:18px;padding:14px 16px;min-height:72px;white-space:pre-wrap;word-break:break-word;margin:10px auto 16px;max-width:360px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid #cbd5e1;background:#f8fafc;border-radius:999px;padding:5px 8px;cursor:pointer;font-size:12px}.source-tabs{display:flex;gap:7px;margin-bottom:14px}.source-tabs a{padding:9px 13px;border-radius:7px;background:#fff;border:1px solid var(--border)}.source-tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}.scheduled-box{border-top:1px solid var(--border);padding-top:12px;margin:10px 0 15px}.scheduled-box summary{cursor:pointer;font-weight:650;margin-bottom:10px}.scheduled-actions{margin-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:16px}.text-link{display:inline-block;color:var(--primary);font-weight:650;margin-top:12px}.danger-zone{border-top:1px solid #f0d5d5;margin-top:24px;padding-top:18px}.toggle{display:flex;align-items:center;gap:8px}.preview-table{max-height:430px}.login-page{min-height:100vh;display:grid;place-items:center;padding:22px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:28px}.footer-note{font-size:12px;color:var(--muted);margin-top:24px}.source-tabs+.filter-card{border-top-left-radius:0}.scheduled-box .field{margin:10px 0 0}code{background:#f1f4f8;padding:2px 5px;border-radius:4px}
@media(max-width:1150px){.filter-grid{grid-template-columns:repeat(3,1fr)}.kpi{grid-column:span 6}.compose-card{position:static}}
@media(max-width:900px){.mobile-menu{display:block}.shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;top:64px;width:245px;z-index:25;transition:left .2s;box-shadow:4px 0 18px rgba(0,0,0,.08)}.sidebar.open{left:0}.content{padding:18px}.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.page-head{align-items:flex-start;flex-direction:column}.credit{display:none}.checkrow{grid-template-columns:32px 1fr}.checkrow>:nth-child(3),.checkrow>:nth-child(4){display:none}.scheduled-actions{align-items:flex-start;flex-direction:column}.userbox strong{max-width:250px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(max-width:620px){.topbar{height:58px;padding:0 12px}.sidebar{top:58px;height:calc(100vh - 58px)}.userbox strong{max-width:150px}.content{padding:11px}.card{padding:14px}.grid{gap:11px}.kpi{grid-column:span 6}.kpi .num{font-size:24px}.filter-grid,.form-2{grid-template-columns:1fr}.filter-actions .btn{flex:1}.page-head .row{width:100%}.page-head .row .btn{flex:1}.source-tabs{display:grid;grid-template-columns:1fr 1fr}.top-actions{gap:8px}.brand{font-size:18px}.table th,.table td{padding:9px 7px}.btn-lg{width:100%}}

/* --------------------------------------------------------------------------
   EPLe-SMS V5 - écran d'envoi 2026
   -------------------------------------------------------------------------- */
.send-page-head{align-items:center;margin-bottom:18px;padding:4px 2px}.send-page-head h1{font-size:30px;letter-spacing:-.03em}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;color:var(--primary);margin-bottom:5px}.send-head-help{display:flex;align-items:center;gap:7px;color:#718096;font-size:12px;font-weight:650;background:#fff;border:1px solid var(--border);border-radius:999px;padding:8px 12px;box-shadow:var(--shadow)}.send-step-dot{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#edf1f6;color:#718096;font-size:11px}.send-step-dot.active{background:var(--primary);color:#fff}.send-step-line{width:24px;height:1px;background:#dce3ec}.source-tabs-modern{display:grid;grid-template-columns:repeat(2,minmax(0,280px));gap:10px;margin-bottom:16px}.source-tabs-modern a{display:flex;align-items:center;gap:11px;border-radius:13px;padding:12px 15px;background:#fff}.source-tabs-modern a.active{box-shadow:0 8px 20px rgba(32,107,196,.15)}.source-tabs-modern strong,.source-tabs-modern small{display:block}.source-tabs-modern small{font-size:11px;opacity:.75;margin-top:2px}.source-icon{width:34px;height:34px;border-radius:10px;background:#eff4fb;display:grid;place-items:center;font-size:17px}.source-tabs-modern a.active .source-icon{background:rgba(255,255,255,.18)}
.send-filter-card{border-radius:14px;padding:16px 18px;margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,#fbfdff 100%)}.send-filter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.send-filter-grid{display:grid;grid-template-columns:minmax(260px,1.6fr) repeat(4,minmax(120px,.7fr)) minmax(200px,1fr) auto;gap:10px;align-items:end}.send-filter-grid.contacts-send-filter{grid-template-columns:minmax(280px,2fr) minmax(220px,1fr) auto}.send-filter-grid label{display:block;font-size:12px;font-weight:700;margin-bottom:5px;color:#4a5b70}.filter-joinable{align-self:stretch;display:flex;align-items:flex-end}.toggle-card{width:100%;height:40px;display:flex!important;align-items:center;gap:9px;border:1px solid #d7e0ea;border-radius:8px;padding:6px 9px;background:#fff;cursor:pointer;margin:0!important}.toggle-card input{accent-color:var(--primary)}.toggle-card span{min-width:0}.toggle-card strong,.toggle-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-card strong{font-size:12px}.toggle-card small{font-size:10px;color:var(--muted)}.filter-apply{height:40px;white-space:nowrap}
.send-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(350px,.8fr);gap:18px;align-items:start}.send-main,.send-side{min-width:0}.send-side{display:grid;gap:15px;position:sticky;top:80px}.send-card{border-radius:16px;box-shadow:0 6px 24px rgba(27,39,51,.055);padding:0;overflow:hidden}.section-heading{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid #edf1f5;background:linear-gradient(180deg,#fff,#fcfdff)}.section-heading.compact{padding:16px 18px}.section-heading h2{font-size:17px;margin:0 0 3px;letter-spacing:-.01em}.section-heading p{font-size:12px;color:var(--muted);margin:0}.section-number{width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:#eaf2fc;color:var(--primary);display:grid;place-items:center;font-weight:800}.selection-summary{margin-left:auto;text-align:right;min-width:88px}.selection-summary strong{font-size:24px;line-height:1;display:block;color:var(--primary)}.selection-summary span,.selection-summary small{display:block;color:var(--muted);font-size:10px}.selection-summary small{margin-top:3px}.selection-block{padding:18px 20px;border-bottom:1px solid #edf1f5}.selection-block:last-child{border-bottom:0}.selection-block-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}.selection-block-head strong,.selection-block-head span{display:block}.selection-block-head span{margin-top:2px}.class-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.class-tile{position:relative;display:flex;align-items:center;gap:8px;min-height:58px;padding:10px 11px;border:1px solid #dce4ed;border-radius:11px;background:#fff;cursor:pointer;transition:.15s ease;user-select:none}.class-tile:hover{border-color:#9ec1eb;transform:translateY(-1px);box-shadow:0 5px 12px rgba(32,107,196,.07)}.class-tile input{position:absolute;opacity:0;pointer-events:none}.class-tile-main{min-width:0}.class-tile-main strong{display:block;font-size:14px}.class-tile-main small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.class-check{margin-left:auto;width:22px;height:22px;border:1px solid #cdd8e5;border-radius:7px;display:grid;place-items:center;color:transparent;font-size:12px}.class-tile:has(input:checked){background:#edf5ff;border-color:#79ace5;color:#145ba6}.class-tile:has(input:checked) .class-check{background:var(--primary);border-color:var(--primary);color:#fff}.class-tile:has(input:indeterminate){background:#f7faff;border-color:#adc9e9}.class-tile:has(input:indeterminate) .class-check{background:#a8c4e5;border-color:#a8c4e5;color:#fff}.student-live-search{height:36px;display:flex;align-items:center;gap:5px;min-width:230px;border:1px solid #d4dee9;background:#fff;border-radius:9px;padding:0 9px}.student-live-search span{font-size:18px;color:#8190a1}.student-live-search input{border:0;outline:0;width:100%;min-width:0;background:transparent;font-size:12px}.recipient-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.student-list{border:1px solid #e0e6ed;border-radius:12px;overflow:auto;max-height:490px;background:#fff}.student-row{display:grid;grid-template-columns:38px minmax(160px,1.15fr) minmax(145px,.9fr) minmax(145px,.9fr);gap:9px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef1f5;cursor:pointer;transition:background .12s}.student-row:last-child{border-bottom:0}.student-row:hover{background:#f8fbff}.student-row:has(input:checked){background:#f2f7fd}.student-check{position:relative;display:grid;place-items:center}.student-check input{position:absolute;opacity:0}.student-check span{width:22px;height:22px;border:1px solid #c7d2df;border-radius:7px;background:#fff;display:block}.student-check input:checked+span{background:var(--primary);border-color:var(--primary);box-shadow:inset 0 0 0 5px var(--primary)}.student-check input:checked+span:after{content:'✓';color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center;height:100%}.student-identity strong{display:block;font-size:13px}.student-identity small{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.guardian{min-width:0}.guardian small,.guardian strong,.guardian span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guardian small{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#8a98a8}.guardian strong{font-size:11px;margin:2px 0}.guardian span{font-size:10px}.phone-ok{color:#20805c}.phone-ok:before{content:'● ';font-size:8px}.phone-missing{color:#a4afbb}.empty-state{padding:26px;text-align:center;color:var(--muted);border:1px dashed #cad5e1;border-radius:10px}.empty-state.compact{padding:15px}
.target-options{display:grid;gap:8px;padding:14px 16px}.target-option{position:relative;display:flex;align-items:center;gap:10px;border:1px solid #dfe6ee;border-radius:11px;padding:10px 11px;cursor:pointer;background:#fff;transition:.15s}.target-option:hover{border-color:#a9c8e9}.target-option input{position:absolute;opacity:0}.target-check{width:24px;height:24px;flex:0 0 24px;border:1px solid #cbd6e2;border-radius:8px;display:grid;place-items:center;color:transparent;font-size:12px}.target-option strong,.target-option small{display:block}.target-option strong{font-size:12px}.target-option small{font-size:10px;color:var(--muted);margin-top:2px}.target-option:has(input:checked){border-color:#7eb0e6;background:#f1f7fe}.target-option:has(input:checked) .target-check{background:var(--primary);border-color:var(--primary);color:#fff}.target-option.primary-target:has(input:checked){box-shadow:inset 3px 0 0 var(--primary)}.target-live-summary{margin:0 16px 16px;padding:10px 11px;border-radius:11px;background:#edf7f2;color:#1e6c50;display:flex;align-items:flex-start;gap:9px}.target-summary-icon{width:28px;height:28px;border-radius:8px;background:#fff;display:grid;place-items:center}.target-live-summary strong,.target-live-summary small{display:block}.target-live-summary strong{font-size:12px}.target-live-summary small{font-size:10px;opacity:.78;margin-top:2px;line-height:1.35}
.send-compose{padding-bottom:16px}.send-compose>.field,.send-compose>.phone-preview,.send-compose>.scheduled-box,.send-compose>.send-final-summary,.send-compose>.send-main-button{margin-left:16px;margin-right:16px}.send-compose>.field:first-of-type{margin-top:15px}.compose-chips .chip{background:#f7faff;border-color:#d8e3ef;color:#3d5875;padding:6px 9px}.compose-chips .chip:hover{background:#edf5ff;border-color:#a7c6e8}.prefix-pill{font-size:10px;background:#eef3f8;color:#4d6278;border-radius:999px;padding:4px 7px}.message-editor{resize:vertical;min-height:142px;border-radius:11px;line-height:1.45;padding:11px 12px}.phone-preview{border-radius:14px;background:#1f2937;padding:8px;margin-bottom:15px!important}.phone-preview-top{height:25px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#b9c3d1;font-size:9px}.phone-preview-top span:first-child{width:35px;height:4px;border-radius:10px;background:#4b5563;justify-self:end;margin-right:8px}.phone-screen{background:linear-gradient(180deg,#eef3f7,#e8eef4);border-radius:10px;padding:13px;min-height:92px;display:flex;align-items:flex-end}.sms-bubble{background:#fff;border-radius:14px 14px 4px 14px;padding:10px 12px;font-size:11px;line-height:1.4;white-space:pre-wrap;word-break:break-word;box-shadow:0 2px 6px rgba(0,0,0,.08);max-width:92%;min-height:34px}.modern-details{border:1px solid #e0e6ed!important;border-radius:10px;padding:0!important;margin-bottom:14px!important}.modern-details summary{padding:10px 11px;margin:0!important;list-style:none;font-size:11px}.modern-details[open] summary{border-bottom:1px solid #edf1f5}.modern-details .field{padding:10px 11px;margin:0}.send-final-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#f6f8fb;border:1px solid #e3e8ef;border-radius:11px;padding:9px;margin-bottom:10px!important}.send-final-summary div{text-align:center;min-width:0}.send-final-summary div+div{border-left:1px solid #e1e6ec}.send-final-summary span,.send-final-summary strong{display:block}.summary-label{font-size:8px;text-transform:uppercase;letter-spacing:.05em;color:#8b99a8;margin-bottom:2px}.send-final-summary strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.send-main-button{display:flex;flex-direction:column;gap:2px;border-radius:11px;padding:11px 14px;box-shadow:0 7px 15px rgba(32,107,196,.2)}.send-main-button span{font-size:13px}.send-main-button small{font-size:9px;font-weight:500;opacity:.82}.send-main-button.loading{opacity:.7;cursor:wait}
@media(max-width:1380px){.send-filter-grid{grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(110px,.7fr));}.filter-joinable{grid-column:span 2}.filter-apply{grid-column:auto}.send-workspace{grid-template-columns:minmax(0,1.55fr) minmax(330px,.8fr)}}
@media(max-width:1120px){.send-workspace{grid-template-columns:1fr}.send-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.send-side .send-compose{grid-row:span 2}.send-filter-grid{grid-template-columns:repeat(3,1fr)}.filter-search{grid-column:span 2}.filter-joinable{grid-column:auto}.student-row{grid-template-columns:36px minmax(160px,1.2fr) minmax(140px,1fr) minmax(140px,1fr)}}
@media(max-width:850px){.send-head-help{display:none}.source-tabs-modern{grid-template-columns:1fr 1fr;max-width:none}.send-filter-grid{grid-template-columns:1fr 1fr}.filter-search{grid-column:span 2}.filter-joinable{grid-column:span 2}.filter-apply{grid-column:span 2}.send-side{grid-template-columns:1fr}.section-heading{align-items:flex-start}.student-row{grid-template-columns:34px 1fr}.student-row .guardian{grid-column:2}.student-row .guardian+ .guardian{padding-top:5px;border-top:1px dashed #e4e8ed}.student-list{max-height:560px}.selection-block-head{align-items:flex-start;flex-direction:column}.student-live-search{width:100%}.recipient-toolbar{align-items:flex-start;flex-direction:column}.class-picker{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.send-page-head h1{font-size:25px}.source-tabs-modern{grid-template-columns:1fr}.send-filter-grid,.send-filter-grid.contacts-send-filter{grid-template-columns:1fr}.filter-search,.filter-joinable,.filter-apply{grid-column:auto}.send-filter-head{align-items:flex-start}.section-heading{padding:14px}.selection-block{padding:14px}.class-picker{grid-template-columns:repeat(2,1fr)}.class-tile{min-height:52px}.selection-summary{display:none}.send-final-summary{grid-template-columns:1fr}.send-final-summary div+div{border-left:0;border-top:1px solid #e1e6ec;padding-top:5px}.student-row{padding:9px}.guardian strong{font-size:11px}.send-compose>.field,.send-compose>.phone-preview,.send-compose>.scheduled-box,.send-compose>.send-final-summary,.send-compose>.send-main-button{margin-left:12px;margin-right:12px}}

/* ===== EPLe-SMS 5.2 : écran d'envoi compact et plus visuel ===== */
:root{--accent:#7c3aed;--teal:#0f9f8f;--orange:#f59f00;--soft-blue:#eef6ff}.sidebar{display:flex;flex-direction:column}.sidebar .nav{flex:1}.sidebar-version{margin-top:auto;padding:14px 12px 4px;border-top:1px solid var(--border);color:#7b8a9a}.sidebar-version strong,.sidebar-version span{display:block}.sidebar-version strong{font-size:12px;color:#4f6072}.sidebar-version span{font-size:10px;margin-top:2px}.content{padding:18px 22px}.topbar{height:58px}.shell{min-height:calc(100vh - 58px);grid-template-columns:210px minmax(0,1fr)}.sidebar{top:58px;height:calc(100vh - 58px);padding:12px 10px}.nav a{padding:8px 10px}.send-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:10px;padding:14px 18px;border-radius:15px;background:linear-gradient(115deg,#ffffff 0%,#f3f8ff 58%,#eef7ff 100%);border:1px solid #dce8f5;box-shadow:0 6px 18px rgba(32,107,196,.06)}.send-hero h1{font-size:27px;margin:1px 0 2px}.send-hero p{margin:0;color:var(--muted)}.send-hero .eyebrow{font-size:10px;letter-spacing:.12em;font-weight:800;color:var(--primary)}.compact-tabs{margin:0;min-width:390px}.compact-tabs a{padding:8px 11px}.compact-tabs .source-icon{width:31px;height:31px}.send-filter-compact{background:#fff;border:1px solid #dfe7f0;border-radius:13px;padding:10px 12px;margin-bottom:12px;box-shadow:0 3px 10px rgba(30,60,90,.04)}.send-filter-compact .send-filter-grid{grid-template-columns:minmax(230px,1.5fr) repeat(4,minmax(105px,.72fr)) auto auto auto;gap:8px;align-items:end}.send-filter-compact label{font-size:11px;margin-bottom:4px}.send-filter-compact .form-control,.send-filter-compact .form-select{padding:7px 9px;font-size:13px}.mini-toggle{height:34px;display:flex!important;align-items:center;gap:6px;border:1px solid #d7e1ec;border-radius:8px;padding:0 9px;background:#f8fbff;white-space:nowrap}.mini-toggle span{font-size:11px;font-weight:700}.filter-reset{height:34px}.send-workspace.v52{grid-template-columns:minmax(0,1.62fr) minmax(340px,.72fr);gap:13px}.v52-selection{overflow:hidden}.compact-v52{padding:11px 14px;background:linear-gradient(90deg,#f7fbff,#fff)}.compact-v52 h2{font-size:16px}.compact-v52 p{font-size:11px}.class-block-v52{padding:10px 14px 11px}.compact-class-picker{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:7px;margin-top:8px}.compact-class-picker .class-tile{min-height:45px;padding:7px 9px;border-radius:10px;background:linear-gradient(180deg,#fff,#f8fbff)}.compact-class-picker .class-tile:nth-child(4n+1){border-color:#c9ddf6}.compact-class-picker .class-tile:nth-child(4n+2){border-color:#d9d0fb}.compact-class-picker .class-tile:nth-child(4n+3){border-color:#c7eee8}.compact-class-picker .class-tile:nth-child(4n){border-color:#fde2b5}.compact-class-picker .class-tile-main strong{font-size:13px}.compact-class-picker .class-tile-main small{font-size:9px}.recipient-defaults{display:flex;align-items:center;gap:8px;padding:9px 14px;background:linear-gradient(90deg,#f0f7ff,#f8fbff);border-top:1px solid #e0ebf6;border-bottom:1px solid #e0ebf6}.recipient-defaults>div{margin-right:auto;min-width:220px}.recipient-defaults>div strong,.recipient-defaults>div small{display:block}.recipient-defaults>div strong{font-size:12px}.recipient-defaults>div small{font-size:9px;color:#718195;margin-top:1px}.recipient-defaults label{display:flex;align-items:center;gap:5px;background:#fff;border:1px solid #d8e4f1;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700;white-space:nowrap}.recipient-defaults label:has(input:checked){border-color:#8db8e8;background:#eaf4ff;color:#185ea8}.student-tools-v52{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px}.student-tools-v52>div:first-child strong,.student-tools-v52>div:first-child span{display:block}.student-live-search{height:32px}.student-live-search input{font-size:11px}.v52-list{max-height:calc(100vh - 405px);min-height:250px;border-top:1px solid #edf1f5;overflow:auto}.v52-row{display:grid;grid-template-columns:34px minmax(150px,1fr) minmax(175px,1.1fr) minmax(175px,1.1fr) 72px;gap:8px;align-items:center;padding:7px 12px;border-bottom:1px solid #edf1f5;background:#fff;transition:.15s}.v52-row:hover{background:#f8fbff}.v52-row.selected{background:linear-gradient(90deg,#f0f7ff 0,#fff 68%);box-shadow:inset 3px 0 0 var(--primary)}.student-select-cell{display:flex;align-items:center;justify-content:center}.student-select-cell input{width:18px;height:18px}.v52-row .student-identity strong{font-size:12px}.v52-row .student-identity small{display:block;margin-top:3px}.guardian-choice{display:grid;grid-template-columns:22px 1fr;align-items:center;gap:6px;border:1px solid #dbe5ef;border-radius:9px;padding:6px 7px;background:#fff;cursor:pointer;min-width:0}.guardian-choice input{position:absolute;opacity:0;pointer-events:none}.guardian-check{width:18px;height:18px;border-radius:5px;border:1px solid #b8c8d8;display:grid;place-items:center;color:transparent;font-size:11px}.guardian-choice:has(input:checked){border-color:#7fb0e7;background:#eef6ff}.guardian-choice:has(input:checked) .guardian-check{background:var(--primary);border-color:var(--primary);color:#fff}.guardian-choice.disabled{opacity:.48;cursor:default;background:#f5f6f8}.guardian-choice small,.guardian-choice strong,.guardian-choice em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guardian-choice small{font-size:8px;text-transform:uppercase;letter-spacing:.04em;color:#7d8b99}.guardian-choice strong{font-size:10px}.guardian-choice em{font-style:normal;font-size:9px;color:#16845f;margin-top:1px}.extra-recips{display:flex;flex-direction:column;gap:4px;font-size:9px}.extra-recips label{white-space:nowrap}.v52-side{position:sticky;top:70px;align-self:start}.v52-compose{position:static;border:1px solid #cfe0f1;box-shadow:0 8px 24px rgba(32,107,196,.10);overflow:hidden}.compose-titlebar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:linear-gradient(110deg,#f0f7ff,#f8f4ff);border-bottom:1px solid #dfe8f2}.compose-titlebar>div:first-child{display:flex;align-items:center;gap:9px}.compose-titlebar h2{font-size:16px;margin:0}.compose-titlebar p{font-size:10px;color:#637487;margin:2px 0 0}.compose-titlebar .prefix-pill{background:#fff;border-color:#b9d1eb}.compose-grid-mini{display:grid;grid-template-columns:.9fr 1.1fr;gap:9px;padding:11px 12px 0}.compose-grid-mini .field{margin-bottom:7px}.compose-grid-mini .form-label{font-size:10px}.compose-grid-mini .form-select{padding:7px 8px;font-size:11px}.compose-grid-mini .chips{gap:4px}.compose-grid-mini .chip{padding:4px 6px;font-size:9px}.message-field-v52{padding:0 12px;margin-bottom:8px}.message-field-v52 .form-label{font-size:11px}.message-field-v52 textarea{min-height:132px;resize:vertical;background:#fffefb;border-color:#cdd9e6}.sms-mini-preview{margin:0 12px 8px;border-radius:10px;background:#edf4fa;border:1px solid #dbe7f2;padding:7px 9px}.sms-mini-preview>span{display:block;font-size:8px;text-transform:uppercase;color:#748598;font-weight:800;margin-bottom:3px}.sms-mini-preview>div{font-size:10px;white-space:pre-wrap;max-height:47px;overflow:auto}.compact-details{margin:0 12px 8px}.compact-details summary{font-size:10px}.v52-summary{margin:0 12px 8px;background:#f7fafc}.v52-summary strong{font-size:12px}.v52-compose .send-main-button{margin:0 12px 12px;width:calc(100% - 24px);background:linear-gradient(100deg,#206bc4,#4c6fe7);border:0}.btn-soft{background:#eaf4ff;color:#1764ad;border-color:#d4e7fb}
@media(max-width:1320px){.send-filter-compact .send-filter-grid{grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(105px,.7fr));}.send-filter-compact .filter-apply,.send-filter-compact .filter-reset,.send-filter-compact .mini-toggle{grid-row:2}.v52-row{grid-template-columns:34px minmax(140px,.9fr) minmax(160px,1fr) minmax(160px,1fr) 60px}.send-workspace.v52{grid-template-columns:minmax(0,1.45fr) minmax(330px,.8fr)}}
@media(max-width:1100px){.send-hero{align-items:flex-start;flex-direction:column}.compact-tabs{min-width:0;width:100%}.send-workspace.v52{grid-template-columns:1fr}.v52-side{position:static}.v52-list{max-height:520px}.recipient-defaults{flex-wrap:wrap}.recipient-defaults>div{width:100%}.v52-row{grid-template-columns:34px minmax(150px,1fr) minmax(170px,1fr) minmax(170px,1fr)}.extra-recips{grid-column:2/5;flex-direction:row;padding-left:0}}
@media(max-width:760px){.content{padding:12px}.send-hero{padding:12px}.send-filter-compact .send-filter-grid{grid-template-columns:1fr 1fr}.send-filter-compact .filter-search{grid-column:1/3}.send-filter-compact .filter-apply,.send-filter-compact .filter-reset,.send-filter-compact .mini-toggle{grid-row:auto}.recipient-defaults label{flex:1;justify-content:center}.v52-row{grid-template-columns:32px 1fr}.guardian-choice,.extra-recips{grid-column:2}.compose-grid-mini{grid-template-columns:1fr}}

/* ==== EPLe-SMS 5.3 overrides ==== */
:root{
  --primary:#2448d8;
  --primary-dark:#1c38ad;
  --bg:#f7f8fc;
  --border:#e6e8f2;
  --text:#162033;
  --muted:#65738b;
  --accent:#ffca1a;
  --accent-soft:#fff3bf;
  --cta:#ff4f73;
  --shadow:0 12px 30px rgba(20,31,60,.08);
}
body{background:linear-gradient(180deg,#f7f8fc 0,#f9fafc 100%)}
.topbar{background:rgba(255,255,255,.92);backdrop-filter:blur(10px)}
.brand span{color:#111}.brand small{font-weight:700}
.credit{background:#fff7d0;color:#655000;border:1px solid #ffe28b}
.nav a.active,.nav a:hover{background:linear-gradient(90deg,#eef3ff,#fff6cf);color:#1f49c6}
.sidebar-version{margin-top:18px;padding:14px 12px;border-radius:16px;background:linear-gradient(145deg,#fff,#fff7d5);border:1px solid #f1e2a2;box-shadow:var(--shadow);font-size:12px;color:#725d14}.sidebar-version strong{display:block;font-size:13px;color:#2a3144}.sidebar-version span{display:block;margin-top:3px}
.btn-primary{background:linear-gradient(135deg,var(--primary),#4970ff);border:0;box-shadow:0 10px 20px rgba(36,72,216,.18)}
.btn-primary:hover{filter:brightness(1.04)}
.btn-soft{background:#fff4c7;color:#8a6700;border-color:#f3dc78}
.send-hero-v53{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;margin-bottom:12px;border-radius:24px;background:linear-gradient(110deg,#ffffff 0%,#fff7d5 58%,#ffe17a 58%,#ffca1a 100%);border:1px solid #f0d880;box-shadow:var(--shadow)}
.send-hero-v53 h1{margin:0;font-size:34px;line-height:1.1;max-width:620px}
.send-hero-v53 p{margin:8px 0 0;color:#46526b;max-width:620px}
.compact-tabs a{background:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.55)}
.compact-tabs a.active{background:#fff;box-shadow:0 10px 24px rgba(36,72,216,.12);border-color:#fff}
.send-filter-card{margin-bottom:12px;border:1px solid #ece5bf;background:#fffdf4;box-shadow:0 8px 24px rgba(30,30,60,.05)}
.send-workspace-v53{align-items:start}
.selection-card,.compose-card{box-shadow:var(--shadow);border-radius:22px}
.section-heading.compact-v52{align-items:center}
.step-badge{position:relative;display:inline-flex!important;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;font-size:18px;font-weight:900;color:#142038;box-shadow:0 10px 18px rgba(34,45,90,.16);transform:rotate(-6deg)}
.step-badge:after{content:'';position:absolute;inset:auto -5px -4px auto;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid currentColor;opacity:.15}
.step-badge-one{background:linear-gradient(135deg,#ffdd66,#ffbe0b);color:#6d4e00}
.step-badge-two{background:linear-gradient(135deg,#8da4ff,#4c6fe7);color:#fff}
.section-heading h2{font-size:23px}
.selection-summary{background:#f7f9ff;border:1px solid #dde5fb;padding:10px 14px;border-radius:16px}
.selection-summary strong{font-size:22px;color:#2741ae}
.selection-block-head{margin-bottom:12px}
.class-picker{gap:10px}
.class-tile{position:relative;border-radius:16px;padding:0;overflow:hidden;border-width:2px;min-height:74px;transition:transform .12s ease, box-shadow .12s ease,border-color .12s ease;box-shadow:0 6px 16px rgba(18,28,56,.05)}
.class-tile:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(18,28,56,.1)}
.class-tile input{position:absolute;opacity:0;inset:0}
.class-tile .class-tile-main{display:flex;flex-direction:column;gap:4px;padding:12px 14px 12px 14px}
.class-tile .class-tile-main strong{font-size:19px;line-height:1}
.class-tile .class-check{position:absolute;top:10px;right:10px;width:24px;height:24px;border-radius:999px;background:#fff;border:2px solid currentColor;display:flex;align-items:center;justify-content:center;font-size:13px;opacity:.55}
.class-tile input:checked + .class-tile-main + .class-check{opacity:1;background:currentColor;color:#fff;border-color:currentColor}
.class-tile input:checked ~ *{filter:none}
.class-level-6,.badge-level.class-level-6{--tile-bg:#eaf3ff;--tile-border:#7db0ff;--tile-text:#1c63ce}
.class-level-5,.badge-level.class-level-5{--tile-bg:#eef9eb;--tile-border:#8dd18b;--tile-text:#2c8c41}
.class-level-4,.badge-level.class-level-4{--tile-bg:#fff3e5;--tile-border:#ffb66d;--tile-text:#d97c12}
.class-level-3,.badge-level.class-level-3{--tile-bg:#f4eefe;--tile-border:#b998ff;--tile-text:#6c44d8}
.class-level-2,.badge-level.class-level-2{--tile-bg:#ffeef2;--tile-border:#ff9db2;--tile-text:#de496f}
.class-level-1,.badge-level.class-level-1,.class-level-a,.badge-level.class-level-a{--tile-bg:#ecf3ff;--tile-border:#88aef7;--tile-text:#355fd1}
.class-level-x,.badge-level.class-level-x,.class-level-b,.badge-level.class-level-b,.class-level-c,.badge-level.class-level-c{--tile-bg:#f4f6fb;--tile-border:#c7cedd;--tile-text:#546072}
.class-tile[class*="class-level-"]{background:var(--tile-bg,#f4f6fb);border-color:var(--tile-border,#d5dce6);color:var(--tile-text,#394356)}
.class-tile input:checked + .class-tile-main{background:linear-gradient(0deg,rgba(255,255,255,.12),rgba(255,255,255,.12))}
.badge-level[class*="class-level-"]{background:var(--tile-bg,#f4f6fb)!important;border:1px solid var(--tile-border,#d5dce6);color:var(--tile-text,#394356)!important}
.recipient-defaults{background:linear-gradient(135deg,#f8fbff,#fffdf1);border:1px dashed #d9e2fb}
.recipient-defaults label{border-radius:999px;background:#fff;border:1px solid #e5e8f4;padding:8px 12px;box-shadow:0 4px 10px rgba(18,28,56,.04)}
.v52-list{border-radius:18px;border:1px solid #e7e9f2;background:#fcfdff}
.student-row{border-bottom:1px solid #eef0f6}
.student-row.selected{background:linear-gradient(90deg,#eff4ff 0,#fffdf6 100%);border-left:4px solid #3f61de;padding-left:10px}
.student-identity strong{font-size:15px}
.guardian-choice{border-radius:14px;background:#fff;border:1px solid #e4e7f1;box-shadow:0 4px 10px rgba(18,28,56,.04)}
.guardian-choice .guardian-check{background:#edf2ff;color:#2448d8;border:1px solid #d7def7}
.guardian-choice input:checked + .guardian-check{background:linear-gradient(135deg,#2448d8,#4d70ff);color:#fff;border-color:transparent}
.extra-recips label{border-radius:999px;background:#fff8df;padding:8px 12px;border:1px solid #f4de85}
.compose-titlebar{background:linear-gradient(120deg,#fffbee,#edf2ff);margin:-20px -20px 14px;padding:18px 20px;border-radius:22px 22px 16px 16px;border-bottom:1px solid #ebedf5}
.prefix-pill{background:#fff;border:1px solid #f0d673;color:#7b5c00;box-shadow:0 4px 10px rgba(18,28,56,.05)}
.compose-card .chips .chip{background:#fff8d9;border-color:#efd56a;color:#7b5b00}
.compose-card .chips .chip:hover{background:#ffefae}
.message-editor{min-height:138px;border-radius:16px}
.counter{font-weight:700;color:#4b5874}
.sms-mini-preview{margin-top:14px;padding:14px 15px;border-radius:18px;background:linear-gradient(180deg,#fffdf4,#f7faff);border:1px solid #e8e2bb}
.sms-mini-preview>span{display:block;font-weight:800;font-size:14px;color:#29334b}
.sms-mini-preview small{display:block;margin-top:4px;color:#6a7287}
.sms-mini-preview>div{margin-top:10px;padding:12px 13px;border-radius:14px;background:#fff;border:1px solid #e7e9f2;min-height:64px;line-height:1.4;font-size:13px;white-space:pre-wrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.sms-mini-preview[hidden]{display:none!important}
.send-main-button{background:linear-gradient(135deg,#2448d8,#4c6fe7)!important;border:0!important}
.send-main-button small{opacity:.95}
.login-page{min-height:100vh;background:linear-gradient(110deg,#f8f9fc 0 58%,#ffca1a 58% 100%);display:flex;align-items:center;justify-content:center;padding:28px}
.login-layout{width:min(1120px,100%);display:grid;grid-template-columns:minmax(340px,470px) minmax(320px,1fr);gap:26px;align-items:stretch}
.login-card-modern{padding:28px 28px 20px;border-radius:28px;box-shadow:0 20px 50px rgba(26,32,67,.12);border:1px solid #ece7c5}
.login-brandline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.brand-login{font-size:32px;font-weight:900}.brand-login span{color:#111}.login-badge{display:inline-flex;padding:8px 12px;border-radius:999px;background:#fff7d0;color:#745b00;font-weight:700;border:1px solid #f1de85}
.login-card-modern h1{margin:0 0 6px;font-size:30px;line-height:1.1}
.login-submit{width:100%;margin-top:10px}
.login-support{margin-top:18px;padding:18px 18px 14px;border-radius:18px;background:linear-gradient(180deg,#fffdf6,#f7faff);border:1px solid #ebe3b2}.login-support-head{font-weight:800;font-size:17px;margin-bottom:6px}.login-support ul{padding-left:18px;margin:10px 0}.login-support li{margin:6px 0}.login-site-link{display:inline-block;margin-top:4px;font-weight:700;color:#2448d8}
.login-side{display:flex}.login-side-hero{position:relative;overflow:hidden;border-radius:30px;padding:34px 34px 30px;background:linear-gradient(145deg,#ffca1a,#ffc000 60%,#e7af00);color:#1e1700;box-shadow:0 24px 55px rgba(176,127,0,.25);min-height:100%}.login-side-hero:before{content:'e';position:absolute;right:28px;bottom:-12px;font-weight:900;font-size:260px;line-height:1;opacity:.14;color:#fff}.login-side-chip{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.55);font-weight:800;margin-bottom:14px}.login-side-hero h2{font-size:38px;line-height:1.05;max-width:440px;margin:0 0 16px}.login-side-hero ul{margin:0;padding-left:22px;font-size:18px;line-height:1.8}
@media(max-width:1100px){.login-layout{grid-template-columns:1fr}.login-side{order:-1}.login-side-hero{min-height:260px}.send-hero-v53{background:linear-gradient(180deg,#fff 0%,#fff7d5 100%)}.send-hero-v53 h1{font-size:30px}}
@media(max-width:760px){.login-page{padding:14px}.login-card-modern{padding:20px}.brand-login{font-size:28px}.send-hero-v53{padding:14px 15px;border-radius:18px}.send-hero-v53 h1{font-size:26px}.step-badge{width:36px;height:36px;font-size:16px}}

/* ==== EPLe-SMS 5.4 overrides ==== */
.content{max-width:none!important;width:100%;}
.send-workspace.v52,.send-workspace-v53{grid-template-columns:minmax(0,1fr) 420px!important;gap:16px;width:100%}
.compact-tabs a.active{color:#182033!important}
.heading-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.btn-add-mobile{background:#fff7d6;border:1px solid #efd369;color:#725700;font-weight:800;white-space:nowrap}
.btn-add-mobile:hover{background:#ffefb6}

/* Couleurs de niveau : uniquement le contour, jamais le fond. */
.class-tile[class*="class-level-"]{background:#fff!important;color:#263145!important;border-color:var(--tile-border,#d5dce6)!important}
.class-tile[class*="class-level-"] .class-tile-main strong{color:var(--tile-text,#394356)}
.class-tile input:checked + .class-tile-main{background:#fff!important}
.class-tile input:checked + .class-tile-main + .class-check{background:var(--tile-text,#2448d8)!important;border-color:var(--tile-text,#2448d8)!important;color:#fff!important}
.class-tile:has(input:checked){box-shadow:0 0 0 2px color-mix(in srgb,var(--tile-border,#d5dce6) 38%,transparent),0 8px 18px rgba(18,28,56,.08)}
.badge-level[class*="class-level-"]{background:#fff!important;color:var(--tile-text,#394356)!important;border:1px solid var(--tile-border,#d5dce6)!important}

.adhoc-panel{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,.55fr) minmax(150px,.55fr) auto;gap:9px;align-items:center;padding:10px 14px;border-bottom:1px solid #ebedf4;background:linear-gradient(90deg,#fffdf2,#f7f9ff)}
.adhoc-panel[hidden]{display:none!important}
.adhoc-copy strong,.adhoc-copy small{display:block}.adhoc-copy strong{font-size:12px}.adhoc-copy small{margin-top:2px;font-size:9px;color:#6d778b}
.adhoc-panel .form-control{height:34px;padding:7px 9px;font-size:12px}
.adhoc-list{grid-column:1/-1;display:flex;gap:7px;flex-wrap:wrap}
.adhoc-list:empty{display:none}
.adhoc-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 10px;border-radius:999px;background:#fff;border:1px solid #efd677;color:#493b07;box-shadow:0 3px 8px rgba(20,28,50,.05);font-size:10px}
.adhoc-chip strong{font-size:10px}.adhoc-chip small{color:#6d7484}.adhoc-chip button{width:18px;height:18px;padding:0;border:0;border-radius:50%;background:#f0f2f7;color:#556070;cursor:pointer;font-weight:900;line-height:18px}
.adhoc-chip button:hover{background:#e1e5ed}

@media(max-width:1450px){.send-workspace.v52,.send-workspace-v53{grid-template-columns:minmax(0,1fr) 380px!important}.adhoc-panel{grid-template-columns:1fr 150px 160px auto}}
@media(max-width:1180px){.send-workspace.v52,.send-workspace-v53{grid-template-columns:1fr!important}.v52-side{position:static}.adhoc-panel{grid-template-columns:1fr 1fr}.adhoc-copy{grid-column:1/-1}.adhoc-list{grid-column:1/-1}}
@media(max-width:760px){.heading-actions{width:100%;margin-left:0;justify-content:space-between}.section-heading{flex-wrap:wrap}.adhoc-panel{grid-template-columns:1fr}.adhoc-copy,.adhoc-list{grid-column:auto}.btn-add-mobile{flex:1}}

/* ==== EPLe-SMS 5.5 overrides ==== */
/* En-têtes 1 / 2 : même géométrie, couleurs distinctes. */
.v52-selection>.section-heading.compact-v52,
.v52-compose>.section-heading.compact-v52{min-height:64px;padding:11px 14px!important;margin:0!important;border-radius:0!important;display:flex;align-items:center;gap:13px;border-bottom:1px solid #e7ebf3}
.v52-selection>.section-heading.compact-v52{background:linear-gradient(90deg,#fffdf2 0%,#fff 72%)}
.v52-compose>.section-heading.compact-v52{background:linear-gradient(90deg,#eef3ff 0%,#fff 72%)}
.v52-compose>.section-heading.compact-v52 h2,.v52-selection>.section-heading.compact-v52 h2{font-size:18px;margin:0 0 2px}
.v52-compose>.section-heading.compact-v52 p,.v52-selection>.section-heading.compact-v52 p{font-size:10px;margin:0;color:#66758a}
.compose-titlebar>div:first-child{display:block!important}

/* Zone Message : tous les éléments suivent exactement la même largeur. */
.v52-compose>.field{margin-left:0!important;margin-right:0!important}
.v52-compose .compose-grid-mini{padding:11px 14px 0!important;width:100%;box-sizing:border-box}
.v52-compose .message-field-v52{position:relative;padding:0 14px 18px!important;margin:0!important;width:100%;box-sizing:border-box}
.v52-compose .message-field-v52 textarea{width:100%!important;box-sizing:border-box;min-height:135px}
.v52-compose .sms-mini-preview{margin:0 14px 10px!important;width:calc(100% - 28px);box-sizing:border-box}
.v52-compose .compact-details{margin:0 14px 10px!important;width:calc(100% - 28px);box-sizing:border-box}
.v52-compose .send-main-button{margin:0 14px 14px!important;width:calc(100% - 28px)!important;box-sizing:border-box}

/* Compteur intégré à cheval sur le bas du textarea. */
.sms-counter-bubble{position:absolute;right:22px;bottom:7px;z-index:3;margin:0!important;padding:4px 8px;border:1px solid #ead36e;border-radius:999px;background:#fff8d8;color:#645015;font-size:9px!important;font-weight:800!important;line-height:1;box-shadow:0 3px 8px rgba(35,42,70,.08);white-space:nowrap}

/* Aperçu simplifié. */
.sms-mini-preview>span{display:block!important;margin:0 0 7px!important;font-size:10px!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important;color:#59667a!important}
.sms-mini-preview>div{margin-top:0!important;min-height:48px;max-height:72px;font-size:11px!important}

/* Variables : 4 raccourcis + menu compact pour les autres. */
.variable-tools{display:flex;align-items:center;gap:6px;min-width:0}
.variable-tools .compose-chips{flex:1;min-width:0}
.variable-more{width:112px!important;min-width:112px;padding:5px 7px!important;font-size:9px!important}

/* Élève + contact complémentaire sur une seule ligne, sans augmenter la hauteur. */
.v52-row{grid-template-columns:34px minmax(145px,.95fr) minmax(175px,1.08fr) minmax(175px,1.08fr) 190px!important}
.extra-recips{display:grid!important;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:6px!important;align-items:stretch!important;height:100%;min-height:46px;font-size:9px!important}
.extra-recips label{display:flex!important;align-items:center;justify-content:center;gap:4px;min-width:0;height:100%;margin:0!important;padding:5px 7px!important;border-radius:12px!important;white-space:nowrap;overflow:hidden;font-size:9px!important}
.extra-recips label input{flex:0 0 auto;margin:0}

/* Le badge du bouton ne donne plus d'estimation du nombre de SMS. */
.send-main-button small{font-size:9px;font-weight:650;opacity:.9}

@media(max-width:1450px){
  .v52-row{grid-template-columns:34px minmax(135px,.9fr) minmax(155px,1fr) minmax(155px,1fr) 170px!important}
  .variable-tools{align-items:flex-start;flex-direction:column}.variable-more{width:100%!important}
}
@media(max-width:1100px){
  .v52-row{grid-template-columns:34px minmax(150px,1fr) minmax(170px,1fr) minmax(170px,1fr)!important}
  .extra-recips{grid-column:2/5!important;display:grid!important;grid-template-columns:120px 170px!important;height:auto;min-height:0;padding-left:0!important;justify-content:start}
  .extra-recips label{height:34px}
}
@media(max-width:760px){
  .v52-row{grid-template-columns:32px 1fr!important}
  .guardian-choice,.extra-recips{grid-column:2!important}
  .extra-recips{grid-template-columns:1fr 1fr!important;width:100%}
}

/* ==== EPLe-SMS 5.6 overrides ==== */
/* En-têtes harmonisés */
.compose-titlebar{padding:0!important}
.compose-titlebar .section-title-wrap,
.v52-selection>.section-heading.compact-v52{width:100%;display:flex;align-items:center;gap:13px}
.compose-titlebar .section-title-copy,
.v52-selection>.section-heading.compact-v52>div:nth-child(2){display:flex;flex-direction:column;justify-content:center}
.compose-titlebar .section-title-copy h2,
.v52-selection>.section-heading.compact-v52 h2{margin:0 0 3px;font-size:18px;line-height:1.1}
.compose-titlebar .section-title-copy p,
.v52-selection>.section-heading.compact-v52 p{margin:0;font-size:10px;color:#66758a;line-height:1.35}
.compose-titlebar .step-badge-two{margin-left:0}

/* Variables entièrement homogènes */
.uniform-variable-tools{display:block}
.variable-chip-grid{display:flex;flex-wrap:wrap;gap:6px}
.variable-chip-grid .variable-chip,
.variable-chip-grid .chip{margin:0;display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:700;line-height:1;min-height:28px;background:#fff8d9;border:1px solid #efd56a;color:#7b5b00;box-shadow:0 2px 6px rgba(20,28,50,.04)}
.variable-chip-grid .chip:hover{background:#ffefae}
.variable-more{display:none!important}

/* Aperçu avec libellé en ruban */
.sms-mini-preview{position:relative;padding-top:22px!important}
.sms-mini-preview .preview-ribbon{position:absolute;left:14px;top:-9px;max-width:calc(100% - 28px);padding:4px 8px;border:1px solid #d5def7;border-radius:999px;background:#f4f7ff;color:#50638f;font-size:9px;font-weight:800;line-height:1;box-shadow:0 3px 8px rgba(35,42,70,.08);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sms-mini-preview>span{display:none!important}

/* Mieux marquer les vraies sélections */
.guardian-choice .guardian-check{color:transparent;background:#fff;border:1px solid #d7def7}
.guardian-choice input:checked + .guardian-check{color:#fff;background:linear-gradient(135deg,#2448d8,#4d70ff);border-color:transparent}
.extra-recips label{color:#5f6575}
.extra-recips label:has(input:checked){background:#fff5cf;border-color:#e8ca5f;color:#564300;font-weight:700}
.extra-recips label input{accent-color:#c59900}
.student-select-cell span{border-color:#cfd6e7;background:#fff}
.student-select-cell input:checked + span{background:linear-gradient(135deg,#2448d8,#4d70ff);border-color:transparent}
.student-row.inactive{opacity:.65;background:#fbfcff}
.student-row.inactive .student-identity strong,.student-row.inactive .student-identity small{color:#8a95a9}
.student-row.inactive .guardian-choice,.student-row.inactive .extra-recips label{background:#fafbfe}

/* Éviter les débordements de complémentaire */
.extra-recips label{white-space:normal;text-align:center;line-height:1.15}
.extra-recips{grid-template-columns:92px 120px!important}
@media(max-width:1450px){.extra-recips{grid-template-columns:86px 110px!important}}
@media(max-width:1100px){.extra-recips{grid-template-columns:120px 160px!important}}

/* Compteur plus fin */
.sms-counter-bubble{font-size:8.5px!important;padding:4px 7px;bottom:8px;right:22px}

/* Bouton envoyer : sous-texte sobre */
.send-main-button small{font-size:10px;font-weight:700;opacity:.94}

/* ==== EPLe-SMS 5.7 overrides ==== */
/* Pavé Message : numéro et titre strictement sur la même ligne */
.v52-compose>.section-heading.compact-v52.compose-titlebar{display:flex!important;align-items:center!important;gap:12px!important;min-height:62px;padding:11px 14px!important}
.v52-compose>.section-heading.compact-v52.compose-titlebar>div:first-child{display:flex!important;flex:0 0 auto!important}
.v52-compose>.section-heading.compact-v52.compose-titlebar>.section-title-copy{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important}
.v52-compose>.section-heading.compact-v52.compose-titlebar .step-badge{margin:0!important;transform:rotate(-5deg)}
.v52-compose>.section-heading.compact-v52.compose-titlebar h2{margin:0 0 3px!important;line-height:1!important}
.v52-compose>.section-heading.compact-v52.compose-titlebar p{margin:0!important;line-height:1.25!important}

/* Modèles + variables : accès discret, replié par défaut */
.compose-tools{display:flex;gap:8px;padding:10px 14px 4px;align-items:flex-start;flex-wrap:wrap}
.compose-tool{position:relative;margin:0}
.compose-tool>summary{list-style:none;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #dfe4ef;border-radius:10px;background:#f8faff;color:#45536d;font-size:10px;font-weight:800;cursor:pointer;user-select:none;transition:.15s ease}
.compose-tool>summary::-webkit-details-marker{display:none}
.compose-tool>summary:hover,.compose-tool[open]>summary{background:#eef3ff;border-color:#bfcdf6;color:#2448d8}
.tool-icon{font-size:11px;color:#62739a}
.compose-tool-panel{position:absolute;z-index:20;top:38px;left:0;width:300px;padding:12px;border:1px solid #dfe4ef;border-radius:14px;background:#fff;box-shadow:0 16px 34px rgba(30,42,75,.16)}
.compose-tool-panel.variable-panel{width:350px}
.compose-tool-panel p{margin:0 0 9px;font-size:10px;color:#6a7589}
.compose-tool-panel .form-label{font-size:10px;margin-bottom:5px}
.variable-chip-grid{gap:6px}
.variable-chip-grid .chip{font-size:9px!important;min-height:27px!important;padding:6px 8px!important}

/* Aperçu : petit libellé posé sur le bord, très discret */
.sms-mini-preview{position:relative!important;padding:15px 12px 10px!important;margin-top:14px!important;background:#fffdf7!important}
.preview-edge-label{position:absolute;top:-7px;left:12px;z-index:2;padding:0 6px;background:#fffdf7;color:#728099;font-size:8.5px;font-weight:700;line-height:14px;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}
.sms-mini-preview .preview-ribbon{display:none!important}
.sms-mini-preview>div[data-sms-preview]{margin-top:0!important;padding:10px 11px!important;min-height:44px!important;max-height:72px!important;font-size:10.5px!important}

/* Filtres live : compacts et sans bouton Filtrer */
.live-filter-card{padding:10px 12px!important}
.live-filter-grid{grid-template-columns:minmax(280px,1.8fr) minmax(210px,1fr) minmax(130px,.65fr) minmax(160px,.75fr) auto!important;gap:8px!important;align-items:end!important}
.live-filter-card label{font-size:9px!important;margin-bottom:4px!important;color:#57657b}
.live-filter-card .form-control,.live-filter-card .form-select{height:35px;padding:7px 9px;font-size:11px}
.live-filter-reset{height:35px;white-space:nowrap}
.contacts-send-filter{grid-template-columns:minmax(300px,1.7fr) minmax(220px,.8fr)!important}

/* Menu latéral plus professionnel */
.sidebar{overflow:visible}
.nav-pro{position:relative}
.nav-pro a{position:relative;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;margin:3px 0;font-weight:650;color:#42516a;transition:background .14s ease,color .14s ease,transform .14s ease}
.nav-pro a:hover{transform:translateX(2px);background:#f4f7fd;color:#2448d8}
.nav-pro a.active{background:linear-gradient(90deg,#edf3ff,#fff8dc);color:#2448d8;box-shadow:inset 3px 0 0 #2448d8}
.nav-icon{width:26px;height:26px;flex:0 0 26px;display:grid;place-items:center;border-radius:8px;background:#f2f5fa;color:#61708a;font-size:13px;font-weight:900;line-height:1}
.nav-pro a.active .nav-icon{background:#fff;color:#2448d8;box-shadow:0 3px 8px rgba(36,72,216,.1)}
.nav-label{white-space:nowrap}
.nav-pro a[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);z-index:80;width:245px;padding:9px 11px;border-radius:10px;background:#192236;color:#fff;font-size:10px;font-weight:550;line-height:1.35;box-shadow:0 12px 26px rgba(21,31,52,.2);pointer-events:none}
.nav-pro a[data-tip]:hover:before{content:'';position:absolute;left:calc(100% + 5px);top:50%;transform:translateY(-50%);border-width:6px 7px 6px 0;border-style:solid;border-color:transparent #192236 transparent transparent;z-index:81}
.sidebar-version{margin-top:16px}

/* Sélection réelle : pas de coche affichée tant qu'une ligne n'est pas destinataire */
.student-row:not(.selected) .guardian-choice:not(.disabled){background:#fff}
.student-row:not(.selected) .guardian-choice .guardian-check{color:transparent!important;background:#fff!important;border-color:#d7def7!important}
.student-row.inactive{opacity:.58!important;background:#f9fafc!important}
.student-row.inactive .guardian-choice,.student-row.inactive .extra-recips label{background:#f7f8fb!important}
.student-row.inactive .guardian-choice .guardian-check{color:transparent!important}

@media(max-width:1280px){
  .live-filter-grid{grid-template-columns:minmax(260px,1.5fr) minmax(190px,1fr) 130px 150px!important}.live-filter-reset{grid-column:auto}
  .compose-tool-panel.variable-panel{right:0;left:auto;width:320px}
}
@media(max-width:900px){
  .sidebar{overflow:auto}.nav-pro a[data-tip]:hover:after,.nav-pro a[data-tip]:hover:before{display:none}
  .live-filter-grid,.contacts-send-filter{grid-template-columns:1fr 1fr!important}
  .live-filter-grid .filter-search{grid-column:1/-1}
  .compose-tool-panel,.compose-tool-panel.variable-panel{position:fixed;left:14px!important;right:14px!important;top:auto;width:auto!important}
}
@media(max-width:620px){
  .live-filter-grid,.contacts-send-filter{grid-template-columns:1fr!important}.live-filter-grid .filter-search{grid-column:auto}
}
.live-filter-hint{font-size:9px;color:#8290a5;background:#f5f7fb;border:1px solid #e5e9f2;border-radius:999px;padding:5px 9px;white-space:nowrap}
.student-tools-v52{align-items:center}
@media(max-width:760px){.live-filter-hint{display:none}}

/* ==== EPLe-SMS 5.8 overrides ==== */
/* Sur un écran PC, la page d'envoi occupe exactement le viewport.
   Le défilement utile reste dans la liste des élèves : plus de longue zone vide sous l'écran. */
@media (min-width:901px) and (min-height:720px){
  body.page-send{overflow:hidden}
  .page-send .shell{height:calc(100vh - 64px);min-height:0;overflow:hidden}
  .page-send .content{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding-top:16px;padding-bottom:14px}
  .page-send .send-hero-v53{flex:0 0 auto;margin-bottom:10px}
  .page-send .live-filter-card{flex:0 0 auto;margin-bottom:10px}
  .page-send .send-form{flex:1 1 auto;min-height:0;overflow:hidden}
  .page-send .send-workspace.v52,.page-send .send-workspace-v53{height:100%;min-height:0}
  .page-send .send-main{height:100%;min-height:0}
  .page-send .v52-selection{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .page-send .v52-list{flex:1 1 auto;min-height:0!important;max-height:none!important;overflow-y:auto;overscroll-behavior:contain}
  .page-send .v52-side{position:static;max-height:100%;align-self:start}
}

/* Le titre de l'étape 2 suit exactement la structure de l'étape 1. */
.v52-compose>.section-heading.compact-v52.compose-titlebar{
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  text-align:left!important;
}
.v52-compose>.section-heading.compact-v52.compose-titlebar>.section-number{
  flex:0 0 42px!important;
}
.v52-compose>.section-heading.compact-v52.compose-titlebar>.section-title-copy{
  flex:1 1 auto!important;
  align-items:flex-start!important;
  text-align:left!important;
}
.v52-compose>.section-heading.compact-v52.compose-titlebar .section-title-copy h2,
.v52-compose>.section-heading.compact-v52.compose-titlebar .section-title-copy p{
  width:auto!important;
  text-align:left!important;
}

/* Un seul cadre pour l'aperçu. Le libellé est simplement posé sur sa bordure. */
.sms-mini-preview{
  position:relative!important;
  margin-top:15px!important;
  padding:17px 12px 10px!important;
  border:1px solid #e5d79d!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.preview-edge-label{
  top:-7px!important;
  left:13px!important;
  padding:0 7px!important;
  height:14px;
  line-height:14px!important;
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
  color:#61708a!important;
  font-size:8.5px!important;
  font-weight:750!important;
  letter-spacing:.01em;
  box-shadow:none!important;
}
.sms-mini-preview>div[data-sms-preview]{
  margin:0!important;
  padding:0!important;
  min-height:34px!important;
  max-height:70px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#38455b;
  line-height:1.4;
}

/* Ligne de résumé sobre et sans retour inopportun entre le nombre et « élève(s) ». */
.student-tools-v52{justify-content:flex-start!important;padding-top:8px!important;padding-bottom:8px!important}
.student-tools-copy{display:flex!important;align-items:baseline!important;gap:9px!important;min-width:0;white-space:nowrap}
.student-tools-copy>strong{display:inline!important;white-space:nowrap}
.student-tools-copy>.muted{display:inline!important;white-space:nowrap}
.student-tools-copy>.muted b{display:inline!important;font-weight:800;color:#37445b}
.live-filter-hint{display:none!important}

/* Une classe sélectionnée remonte dans la liste ; léger repère pendant une seconde. */
.student-row.class-just-moved{animation:epleClassMoved .95s ease-out}
@keyframes epleClassMoved{
  0%{background:#fff5c8;box-shadow:inset 4px 0 0 #e6b300}
  100%{background:inherit;box-shadow:inherit}
}

/* Quelques finitions de densité */
.page-send .selection-block.class-block-v52{padding-top:13px;padding-bottom:13px}
.page-send .recipient-defaults{padding-top:8px;padding-bottom:8px}
.page-send .compose-tools{padding-top:8px;padding-bottom:2px}

@media(max-width:900px){
  body.page-send{overflow:auto}
  .student-tools-copy{white-space:normal;flex-wrap:wrap}
}

/* ==== EPLe-SMS 5.9 overrides ==== */
/* Zone classes plus compacte : choix par défaut + actions sur la même ligne. */
.compact-class-zone{padding:8px 12px 9px!important}
.class-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:7px;min-width:0}
.class-toolbar>strong{font-size:12px;white-space:nowrap}
.recipient-defaults-inline{display:flex!important;align-items:center;gap:5px;padding:0!important;margin:0!important;border:0!important;background:transparent!important;min-width:0;flex:1}
.recipient-defaults-inline .recipient-defaults-label{font-size:9px;color:#7a8798;font-weight:700;white-space:nowrap;margin-left:4px}
.recipient-defaults-inline label{padding:4px 7px!important;font-size:9px!important;box-shadow:none!important;border-radius:999px!important;white-space:nowrap}
.recipient-defaults-inline label input{margin:0}
.class-actions{margin-left:auto;display:flex;gap:5px;flex:0 0 auto}
.class-actions .btn{height:28px;padding:4px 8px;font-size:9px}
.class-pills{display:flex!important;flex-wrap:nowrap!important;gap:6px!important;overflow-x:auto;overflow-y:hidden;padding:1px 1px 3px;scrollbar-width:thin}
.class-pills .class-tile{flex:0 0 70px!important;width:70px!important;min-height:38px!important;height:38px!important;padding:5px 7px!important;border-radius:10px!important;background:#fff!important;display:flex;align-items:center;gap:4px}
.class-pills .class-tile-main{display:flex;align-items:baseline;gap:4px;min-width:0}
.class-pills .class-tile-main strong{font-size:13px!important;line-height:1!important}
.class-pills .class-tile-main small{font-size:8px!important;margin:0!important;color:#7b8798!important}
.class-pills .class-check{width:16px!important;height:16px!important;font-size:9px!important;border-radius:50%!important;right:5px!important;top:5px!important}
.class-tile.partial .class-check{font-size:0!important;background:#fff7d6!important;border-color:#e2bd3c!important;color:#8a6800!important}
.class-tile.partial .class-check:after{content:'–';font-size:11px;font-weight:900;line-height:1}

/* La zone d'ajustement devient la zone principale. */
.page-send .student-tools-v52{padding:6px 12px!important;min-height:30px}
.page-send .student-tools-copy{font-size:11px}
.page-send .student-tools-copy .muted{font-size:9px}

/* Vue dense : sur grand écran, 3 colonnes permettent de visualiser environ une classe entière. */
@media (min-width:1500px) and (min-height:760px){
  .page-send .v52-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:34px;align-content:start;gap:4px;padding:4px;border-radius:10px}
  .page-send .v52-row{display:grid!important;grid-template-columns:20px minmax(88px,1fr) minmax(58px,.65fr) minmax(58px,.65fr) 54px!important;gap:3px!important;align-items:center!important;min-height:34px!important;height:34px!important;padding:3px 4px!important;border:1px solid #e7ebf2!important;border-radius:7px!important;overflow:hidden}
  .page-send .v52-row.selected{box-shadow:inset 2px 0 0 var(--primary)!important}
  .page-send .student-select-cell input{width:14px;height:14px}
  .page-send .student-identity{min-width:0}
  .page-send .student-identity strong{font-size:9px!important;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .page-send .student-identity small{margin-top:1px!important}
  .page-send .student-identity .badge{padding:1px 4px!important;font-size:7px!important;line-height:1.1}
  .page-send .student-identity .badge:not(.badge-level){display:none!important}
  .page-send .guardian-choice{grid-template-columns:12px minmax(0,1fr)!important;gap:3px!important;padding:2px 3px!important;min-height:25px!important;height:25px!important;border-radius:5px!important}
  .page-send .guardian-check{width:11px!important;height:11px!important;border-radius:3px!important;font-size:7px!important}
  .page-send .guardian-choice span>small,.page-send .guardian-choice span>em{display:none!important}
  .page-send .guardian-choice span>strong{font-size:7.5px!important;line-height:1!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .page-send .extra-recips{display:grid!important;grid-template-columns:1fr 1fr!important;gap:2px!important;min-height:0!important;height:25px!important}
  .page-send .extra-recips label{height:25px!important;min-width:0!important;padding:2px!important;border-radius:5px!important;font-size:0!important;white-space:nowrap!important;overflow:hidden!important}
  .page-send .extra-recips label:first-child:after{content:'Él.';font-size:7px;font-weight:700}
  .page-send .extra-recips label:last-child:after{content:'C+';font-size:7px;font-weight:700}
  .page-send .extra-recips input{width:10px;height:10px}
}

@media (min-width:1180px) and (max-width:1499px) and (min-height:760px){
  .page-send .v52-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:5px;padding:5px}
  .page-send .v52-row{min-height:42px;padding:5px 6px;border:1px solid #e7ebf2;border-radius:8px}
}

@media(max-width:1050px){
  .class-toolbar{flex-wrap:wrap}
  .recipient-defaults-inline{order:3;flex-basis:100%}
  .class-pills{padding-bottom:5px}
}

/* ==== EPLe-SMS 5.10 overrides ==== */
/* Filtrage live : les lignes masquées restent masquées même en vue grid compacte. */
.student-row.is-filtered-out,.student-row[hidden]{display:none!important}

/* Libellés des destinataires par défaut plus explicites sans alourdir la barre. */
.recipient-defaults-inline label{font-size:8.7px!important;padding:4px 7px!important}

/* Noms d'élèves un peu plus lisibles dans la vue dense. */
@media (min-width:1500px) and (min-height:760px){
  .page-send .student-identity strong{font-size:10.5px!important;font-weight:800!important;letter-spacing:-.01em}
}
@media (min-width:1180px) and (max-width:1499px) and (min-height:760px){
  .page-send .student-identity strong{font-size:11px!important;font-weight:800!important}
}

/* Élève / contact complémentaire : visibles uniquement si demandés dans la barre du haut. */
.v52-list:not(.show-extra-student) .extra-student{display:none!important}
.v52-list:not(.show-extra-contact3) .extra-contact3{display:none!important}
.v52-list:not(.show-extra-student):not(.show-extra-contact3) .extra-recips{display:none!important}
.extra-recips{align-items:center!important;justify-content:flex-end!important}
.extra-recipient{display:flex!important;align-items:center!important;justify-content:center!important;width:27px!important;min-width:27px!important;height:25px!important;padding:0!important;border-radius:7px!important}
.extra-recipient input{position:absolute;opacity:0;pointer-events:none}
.recipient-mini-icon{display:grid;place-items:center;width:17px;height:17px;color:#7b8798}
.recipient-mini-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.extra-recipient:has(input:checked){background:#fff4c7!important;border-color:#e5c14e!important;color:#6c5300!important}
.extra-recipient:has(input:checked) .recipient-mini-icon{color:#8a6800}
.extra-recipient:has(input:disabled){opacity:.35}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media (min-width:1500px) and (min-height:760px){
  .v52-list:not(.show-extra-student):not(.show-extra-contact3) .v52-row{grid-template-columns:20px minmax(102px,1fr) minmax(62px,.68fr) minmax(62px,.68fr)!important}
  .v52-list.show-extra-student:not(.show-extra-contact3) .v52-row,
  .v52-list.show-extra-contact3:not(.show-extra-student) .v52-row{grid-template-columns:20px minmax(98px,1fr) minmax(60px,.66fr) minmax(60px,.66fr) 30px!important}
  .v52-list.show-extra-student.show-extra-contact3 .v52-row{grid-template-columns:20px minmax(94px,1fr) minmax(58px,.64fr) minmax(58px,.64fr) 58px!important}
  .v52-list.show-extra-student.show-extra-contact3 .extra-recips{display:flex!important;gap:3px!important}
  .v52-list.show-extra-student:not(.show-extra-contact3) .extra-recips,
  .v52-list.show-extra-contact3:not(.show-extra-student) .extra-recips{display:flex!important;gap:0!important}
}

/* Infobulles instantanées pour les informations tronquées. */
.instant-tooltip{position:fixed;z-index:10000;left:0;top:0;max-width:360px;padding:7px 9px;border-radius:8px;background:#182238;color:#fff;font-size:10px;font-weight:650;line-height:1.35;box-shadow:0 10px 28px rgba(18,28,52,.24);opacity:0;visibility:hidden;transform:translateY(2px);pointer-events:none;transition:opacity .05s linear,transform .05s linear}
.instant-tooltip.show{opacity:1;visibility:visible;transform:translateY(0)}

/* Outils modèle / personnalisation : aucune découpe par le pavé parent. */
.v52-compose{overflow:visible!important}
.compose-tools{position:relative;z-index:45}
.compose-tool{z-index:1}
.compose-tool[open]{z-index:60}
.compose-tool-panel{z-index:80!important;max-height:min(330px,62vh);overflow:auto!important;overscroll-behavior:contain}
.compose-tool-panel.variable-panel{right:0;left:auto}
.variable-chip-grid{align-content:flex-start}

/* Aperçu : un seul cadre, aucun sous-div blanc superposé. */
.sms-mini-preview{display:block;position:relative!important;margin:14px 14px 10px!important;padding:10px 12px 11px!important;width:calc(100% - 28px)!important;min-height:54px;border:1px solid #e5d79d!important;border-radius:13px!important;background:#fffdf8!important;box-shadow:none!important;overflow:visible!important}
.preview-edge-label{position:static!important;display:block!important;margin:0 0 6px!important;padding:0!important;height:auto!important;line-height:1.2!important;border:0!important;background:transparent!important;color:#68758a!important;font-size:8.5px!important;font-weight:800!important;white-space:nowrap}
.sms-mini-preview>div[data-sms-preview]{display:block!important;width:100%!important;margin:0!important;padding:0!important;min-height:26px!important;max-height:72px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#344159!important;font-size:10.5px!important;line-height:1.4!important;white-space:pre-wrap!important;overflow:auto!important}
/* Autorise les panneaux secondaires à déborder du formulaire sans recréer de scroll de page. */
@media (min-width:901px) and (min-height:720px){.page-send .send-form{overflow:visible!important}}
/* Neutralise les anciens libellés injectés par pseudo-élément dans la vue dense. */
.extra-recips label:after{content:none!important}

/* ==== EPLe-SMS 5.27 : première connexion / certificat ==== */
.login-logo{display:block;max-width:190px;width:54%;height:auto;object-fit:contain}
.first-login-intro{margin:16px 0;padding:14px 15px;border:1px solid #cfe3f6;border-radius:14px;background:#f3f9ff;color:#263b55}
.first-login-intro strong,.first-login-intro span{display:block}.first-login-intro strong{font-size:14px;margin-bottom:5px;color:#175d9c}.first-login-intro span{font-size:12px;line-height:1.5}.first-login-intro b{font-weight:800}
.establishment-number{text-transform:uppercase;letter-spacing:.04em;font-weight:750}

.first-connection-page{margin:0;min-height:100vh;background:linear-gradient(160deg,#f4f9fd 0%,#f8fbfd 52%,#effaf7 100%);color:#1f2d3d;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.first-connection-shell{width:min(1180px,calc(100% - 32px));margin:22px auto 40px}
.first-connection-header{display:flex;align-items:center;gap:18px;padding:15px 18px;background:#fff;border:1px solid #dfe8f1;border-radius:18px;box-shadow:0 8px 26px rgba(34,60,86,.06)}
.first-connection-header img{width:175px;max-width:34%;height:auto}.first-connection-header>div{display:flex;flex-direction:column;min-width:0}.first-connection-header>div span{font-size:11px;font-weight:800;color:#2b7bbb;text-transform:uppercase;letter-spacing:.08em}.first-connection-header>div strong{margin-top:2px;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.first-connection-header>div small{margin-top:2px;color:#738399;font-size:11px}.first-connection-exit{margin-left:auto;padding:8px 11px;border-radius:10px;border:1px solid #d9e3ec;color:#55677a;font-size:12px;font-weight:700;background:#fff}
.first-connection-hero,.first-connection-final{display:flex;align-items:center;gap:16px;margin:16px 0;padding:17px 20px;background:#fff;border:1px solid #dfe8f1;border-radius:18px}.first-connection-hero h1,.first-connection-final h2{margin:0 0 4px;font-size:23px;line-height:1.15}.first-connection-hero p,.first-connection-final p{margin:0;color:#68798c;font-size:12.5px;line-height:1.5}.first-connection-final .btn{margin-left:auto;flex:0 0 auto}
.first-connection-step{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,#42c7b7,#1ca694);color:#fff;font-size:19px;font-weight:900;box-shadow:0 9px 18px rgba(28,166,148,.18)}.first-connection-step.is-blue{background:linear-gradient(135deg,#5f8df8,#3269e6);box-shadow:0 9px 18px rgba(50,105,230,.18)}
.first-connection-success{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 16px;padding:12px 15px;border:1px solid #a8dec9;border-radius:14px;background:#f0fbf6;color:#275843}.first-connection-success strong{color:#147a54}.first-connection-success span{font-size:12px}
.first-connection-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.45fr);gap:16px}.first-connection-download-card,.first-connection-help-card{background:#fff;border:1px solid #dfe8f1;border-radius:20px;box-shadow:0 10px 30px rgba(34,60,86,.055)}
.first-connection-download-card{padding:24px;display:flex;flex-direction:column;align-items:center;text-align:center}.download-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:#eaf4ff;color:#2775c7;font-size:32px;font-weight:900}.first-connection-download-card h2{margin:14px 0 5px;font-size:20px}.first-connection-download-card>p{margin:0 0 18px;color:#6a7a8d;font-size:12.5px;line-height:1.55}.first-connection-download{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:58px;padding:14px 18px;border-radius:15px;background:linear-gradient(135deg,#3479ef,#245bcd);color:#fff;font-size:16px;font-weight:850;box-shadow:0 12px 24px rgba(36,91,205,.22);transition:transform .12s ease,box-shadow .12s ease}.first-connection-download:hover{transform:translateY(-1px);box-shadow:0 15px 28px rgba(36,91,205,.26)}.first-connection-download span{padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.17);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.first-connection-missing{width:100%;padding:14px;border:1px solid #f0c7a3;border-radius:14px;background:#fff7ef;color:#774a24}.first-connection-missing strong,.first-connection-missing span{display:block}.first-connection-missing span{margin-top:5px;font-size:11px;line-height:1.45}.first-connection-security-note{width:100%;margin-top:17px;padding:12px 13px;border-radius:13px;background:#f7fafc;text-align:left;border:1px solid #e7edf3}.first-connection-security-note strong,.first-connection-security-note span{display:block}.first-connection-security-note strong{font-size:11px;color:#465a70}.first-connection-security-note span{margin-top:3px;font-size:10.5px;color:#77879a;line-height:1.45}
.first-connection-help-card{padding:20px 21px}.browser-detected{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding-bottom:13px;border-bottom:1px solid #edf1f5}.browser-detected span{grid-row:1/3;padding:7px 9px;border-radius:10px;background:#eaf8f5;color:#14806e;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.browser-detected strong{font-size:15px}.browser-detected small{color:#748399;font-size:10px}.browser-guide-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.browser-guide-tabs button{border:1px solid #d9e3ec;background:#f8fafc;color:#53667b;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:750;cursor:pointer}.browser-guide-tabs button.active{background:#eaf4ff;border-color:#98bee7;color:#175fa7}.browser-guides article{padding:14px 15px;border-radius:14px;background:#f8fbfd;border:1px solid #e5edf4}.browser-guides article[hidden]{display:none!important}.browser-guides h2{margin:0 0 10px;font-size:17px}.browser-guides ol{margin:0;padding-left:22px}.browser-guides li{margin:7px 0;color:#465a70;font-size:12px;line-height:1.48}.browser-password-note{margin-top:11px;padding:10px 12px;border-radius:11px;background:#fff8e9;border:1px solid #f0dea6;color:#6f5b28;font-size:10.5px;line-height:1.4}
.first-connection-support{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:14px;background:#eef7ff;border:1px solid #d8e9f7;color:#41617e;font-size:11px}.first-connection-support strong{color:#245d8d}.first-connection-support span{margin-left:auto;text-align:right}
@media(max-width:820px){.first-connection-grid{grid-template-columns:1fr}.first-connection-header img{width:145px}.first-connection-success{grid-template-columns:1fr}.first-connection-success .btn{justify-self:start}.first-connection-final{align-items:flex-start;flex-wrap:wrap}.first-connection-final .btn{margin-left:59px}.first-connection-support{align-items:flex-start;flex-direction:column}.first-connection-support span{margin-left:0;text-align:left}}
@media(max-width:560px){.first-connection-shell{width:min(100% - 18px,1180px);margin:9px auto 24px}.first-connection-header{padding:12px;gap:10px}.first-connection-header img{width:120px}.first-connection-header>div small{display:none}.first-connection-exit{padding:6px 8px;font-size:10px}.first-connection-hero,.first-connection-final{padding:14px}.first-connection-hero h1{font-size:19px}.first-connection-download-card,.first-connection-help-card{padding:16px}.first-connection-final .btn{margin-left:0;width:100%}.browser-guide-tabs{gap:4px}.browser-guide-tabs button{padding:6px 8px}.login-logo{width:62%}}

/* ========================================================================== 
   EPLe-SMS 5.57 — première connexion : aide certificats + support
   ========================================================================== */

/* Détection du navigateur : icône + libellé plus lisibles. */
.browser-detected{
  display:flex;
  align-items:center;
  gap:11px;
  padding-bottom:13px;
  border-bottom:1px solid #edf1f5;
}
.browser-detected-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.browser-detected-copy>span{
  padding:0;
  border-radius:0;
  background:none;
  color:#718296;
  font-size:9px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.065em;
}
.browser-detected-copy strong{margin-top:1px;font-size:15px;color:#25384c}
.browser-detected-copy small{margin-top:1px;color:#748399;font-size:10px}

.browser-detected-icon,
.browser-tab-icon,
.browser-panel-icon{
  position:relative;
  display:inline-block;
  flex:0 0 auto;
  border-radius:50%;
  overflow:hidden;
  box-sizing:border-box;
}
.browser-detected-icon{width:34px;height:34px;box-shadow:0 3px 10px rgba(31,55,80,.12)}
.browser-tab-icon{width:17px;height:17px;box-shadow:0 1px 4px rgba(31,55,80,.12)}
.browser-panel-icon{width:35px;height:35px;box-shadow:0 3px 10px rgba(31,55,80,.12)}

/* Icônes volontairement simples et évocatrices, sans image externe. */
.is-chrome{background:conic-gradient(#ea4335 0 33%,#fbbc05 33% 66%,#34a853 66% 100%)}
.is-chrome::after{
  content:"";position:absolute;inset:27%;border-radius:50%;background:#4285f4;border:2px solid #fff;
}
.is-edge{background:radial-gradient(circle at 66% 70%,#33c6b3 0 26%,transparent 27%),linear-gradient(145deg,#0aa5dc 8%,#1678d2 48%,#16bfa1 100%)}
.is-firefox{background:radial-gradient(circle at 62% 60%,#6334b5 0 25%,#9c37a7 26% 44%,#f36b2a 45% 70%,#ffb229 71% 100%)}
.is-safari{background:radial-gradient(circle,#58b9f8 0 58%,#1886d4 59% 73%,#e9f7ff 74% 77%,#1685d5 78% 100%)}
.is-safari::after{content:"↗";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:.62em;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.is-mobile{border-radius:5px;background:linear-gradient(145deg,#6b7c91,#35465a)}
.is-mobile::before{content:"";position:absolute;inset:2px 4px 4px;border-radius:2px;background:#eef5fb}
.is-mobile::after{content:"";position:absolute;left:43%;right:43%;bottom:1px;height:2px;border-radius:2px;background:#d2dce6}
.is-other{background:linear-gradient(145deg,#9aa9ba,#66778c)}
.is-other::after{content:"•";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:1.2em}

.browser-guide-tabs{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:14px 0;
}
.browser-guide-tabs button{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid #d9e3ec;
  background:#fff;
  color:#53667b;
  border-radius:999px;
  padding:7px 11px 7px 8px;
  font-size:10px;
  font-weight:750;
  cursor:pointer;
  box-shadow:0 2px 7px rgba(42,65,89,.035);
  transition:background .13s ease,border-color .13s ease,color .13s ease,transform .13s ease;
}
.browser-guide-tabs button:hover{background:#f5f9fc;border-color:#c7d7e6;transform:translateY(-1px)}
.browser-guide-tabs button.active{background:#eef6ff;border-color:#a9c9e9;color:#175fa7;box-shadow:0 3px 9px rgba(34,96,153,.08)}

.browser-guides article{
  padding:16px 17px;
  border-radius:14px;
  background:#f9fbfd;
  border:1px solid #e3ebf3;
}
.browser-guide-title{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.browser-guide-title>div{min-width:0}
.browser-guide-title h2{margin:0;font-size:17px;color:#26394e}
.browser-guide-title small{display:block;margin-top:2px;color:#7a899a;font-size:9.5px}
.browser-guides ol{margin:0;padding-left:22px}
.browser-guides li{margin:7px 0;color:#465a70;font-size:12px;line-height:1.52}
.browser-guides li strong{color:#304861}
.mobile-guide-block+ .mobile-guide-block{margin-top:13px;padding-top:13px;border-top:1px solid #e3eaf1}
.mobile-guide-block>strong{display:block;margin-bottom:3px;color:#2f5f83;font-size:12px}

/* Bloc support : pas d'horaires, contacts identifiés et compacts. */
.first-connection-support{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:13px 16px;
  border-radius:14px;
  background:#eef7ff;
  border:1px solid #d8e9f7;
  color:#41617e;
}
.first-connection-support-title{display:flex;flex-direction:column;min-width:0}
.first-connection-support-title strong{color:#245d8d;font-size:11px}
.first-connection-support-title span{margin-top:2px;color:#71859a;font-size:10px;line-height:1.35}
.first-connection-support-contacts{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.first-connection-support-contact{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:39px;
  padding:6px 10px;
  border:1px solid #d3e3ef;
  border-radius:11px;
  background:#fff;
  color:#36536d;
  text-decoration:none;
  box-shadow:0 2px 7px rgba(37,75,105,.04);
}
.first-connection-support-contact:hover{background:#f9fcff;border-color:#bed5e6;color:#224c70}
.support-contact-icon{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  flex:0 0 27px;
  border-radius:8px;
  background:#e8f3fb;
  color:#2570a9;
  font-size:13px;
}
.first-connection-support-contact>span:last-child{display:flex;flex-direction:column;line-height:1.12}
.first-connection-support-contact small{font-size:8px;color:#7d8da0;text-transform:uppercase;letter-spacing:.055em;font-weight:800}
.first-connection-support-contact strong{margin-top:2px;color:#315570;font-size:10.5px;white-space:nowrap}

@media(max-width:820px){
  .first-connection-support{align-items:stretch;flex-direction:column}
  .first-connection-support-contacts{flex-wrap:wrap}
}
@media(max-width:560px){
  .browser-guide-tabs button{padding:6px 8px 6px 6px}
  .browser-tab-icon{width:15px;height:15px}
  .first-connection-support-contacts{display:grid;grid-template-columns:1fr;width:100%}
  .first-connection-support-contact{width:100%;box-sizing:border-box}
}


/* EPLe-SMS 5.59 — page Assistance : formulaire centré */
.support-grid .support-form-card{grid-column:3 / span 8}
@media(max-width:900px){.support-grid .support-form-card{grid-column:span 12}}
