/* France Collège — pages « compte » (connexion, inscription, espace famille) et pages légales */
.compte{max-width:1180px}
.acct-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:start}
.acct-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.acct-card h2{margin:0 0 6px;font-size:28px;letter-spacing:-.8px}
.acct-card h3{margin:0 0 8px;font-size:21px}
.acct-card p{color:#5f6d85;line-height:1.5}
.acct-visual{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;position:relative}
.acct-visual img{width:100%;height:100%;object-fit:cover;min-height:280px}
.acct-visual .speech{position:absolute;left:16px;right:16px;bottom:16px;background:#fff;border:3px solid #10234f;border-radius:20px;padding:12px 14px;font-weight:900;box-shadow:4px 4px 0 #10234f}
.acct-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#f1f5fc;padding:6px;border-radius:18px;margin-bottom:18px}
.acct-tabs button{border:0;border-radius:14px;padding:13px 10px;font:inherit;font-weight:1000;font-size:17px;background:transparent;color:#4c5d7b;cursor:pointer}
.acct-tabs button.active{background:#fff;color:#1769d7;box-shadow:0 6px 16px rgba(26,48,89,.12)}
.field{margin-bottom:14px}
.field label{display:block;font-weight:900;margin-bottom:6px;color:#10234f}
.field small{display:block;color:#5b6883;margin-top:5px;line-height:1.4}
.field input,.acct-input{width:100%;padding:13px 14px;border:2px solid #d9e2f0;border-radius:14px;font:inherit;font-size:17px;color:#10234f;background:#fff;outline:none}
.field input:focus,.acct-input:focus{border-color:#2c7df3;box-shadow:0 0 0 4px rgba(44,125,243,.12)}
.code-input{text-transform:uppercase;letter-spacing:6px;font-weight:1000;font-family:"Courier New",monospace}
.pin-input{letter-spacing:10px;font-weight:1000;max-width:180px}
.check{display:flex;gap:10px;align-items:flex-start;background:#fff8e8;border:1px solid #efdca0;border-radius:14px;padding:12px;margin:6px 0 14px;color:#6c5418;line-height:1.45;font-weight:700}
.check input{width:22px;height:22px;flex:0 0 22px;margin-top:1px}
.check a,.acct-links a,.acct-card p a{color:#1769d7;font-weight:900}
.btn-main{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:15px;padding:13px 20px;font:inherit;font-weight:1000;font-size:17px;cursor:pointer;background:linear-gradient(135deg,#2f8cff,#165ad8);color:#fff;box-shadow:0 10px 20px rgba(40,125,242,.25);text-decoration:none}
.btn-main.orange{background:linear-gradient(135deg,#ff8a24,#ff6a00);box-shadow:0 10px 20px rgba(255,122,36,.25)}
.btn-main.green{background:linear-gradient(135deg,#1bb36a,#14874f);box-shadow:0 10px 20px rgba(24,160,94,.22)}
.btn-main:disabled{opacity:.55;cursor:not-allowed}
.btn-ghost{display:inline-flex;align-items:center;gap:6px;border:1px solid #d9e2f0;border-radius:13px;padding:9px 13px;font:inherit;font-weight:900;font-size:14px;background:#fff;color:#1e56ae;cursor:pointer;text-decoration:none}
.btn-ghost.danger{color:#b12f55;border-color:#f3c9d5;background:#fff7f9}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.acct-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;font-size:15px}
.acct-msg{display:none;margin-top:14px;padding:12px 14px;border-radius:14px;font-weight:800;line-height:1.45}
.acct-msg.show{display:block}
.acct-msg.ok{background:#e8f7ee;color:#14874f;border:1px solid #bfe8d0}
.acct-msg.err{background:#fff0f3;color:#b12f55;border:1px solid #f3c9d5}
.acct-msg.info{background:#eaf3ff;color:#1e56ae;border:1px solid #cfe1fb}
.banner{margin-bottom:16px}
.family-code{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,#fff7ec,#fff);border:3px dashed #ffb06a;border-radius:24px;padding:18px 20px}
.family-code .code{font-family:"Courier New",monospace;font-size:48px;font-weight:1000;letter-spacing:10px;color:#a8520a;line-height:1}
.family-code p{margin:0;flex:1;min-width:220px}
.dash-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:start}
.dash-grid > div{display:grid;gap:20px}
.kids{display:grid;gap:12px}
.kid{border:1px solid var(--line);border-radius:20px;padding:14px 16px;background:#fbfdff}
.kid-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.kid-name{font-size:21px;font-weight:1000}
.kid-stats{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.kid-stats span{padding:7px 11px;border-radius:999px;font-weight:900;font-size:14px;background:#eef4ff;color:#1769d7}
.kid-stats span:nth-child(2){background:#fff4df;color:#c87900}
.kid-stats span:nth-child(3){background:#e8f7ee;color:#14874f}
.kid-detail{margin-top:10px;display:none}
.kid-detail.open{display:block}
.lesson-table{width:100%;border-collapse:collapse;font-size:14px}
.lesson-table th,.lesson-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.lesson-table th{color:#607089;font-size:13px}
.inline-form{display:grid;grid-template-columns:1fr 150px auto;gap:10px;align-items:end;margin-top:14px}
.offers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.offer{border:2px solid var(--line);border-radius:20px;padding:16px;text-align:center;background:#fff}
.offer.best{border-color:#ffb06a;background:#fffaf4;position:relative}
.offer.best:before{content:"Le plus avantageux";position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:#ff7a24;color:#fff;font-size:12px;font-weight:1000;padding:4px 10px;border-radius:999px;white-space:nowrap}
.offer .price{font-size:32px;font-weight:1000;color:#10234f;margin:6px 0}
.offer .price small{font-size:15px;color:#5b6883}
.offer .btn-main{width:100%;margin-top:8px;font-size:15px;padding:11px}
.perks{margin:10px 0 0;padding-left:20px;color:#4c5d7b;line-height:1.7}
.premium-badge{display:inline-flex;gap:6px;align-items:center;background:linear-gradient(135deg,#ffcf4a,#ff9d2e);color:#5a3500;font-weight:1000;border-radius:999px;padding:6px 12px;font-size:14px}
.muted{color:#5b6883;font-size:14px}
.loading{padding:30px;text-align:center;color:#5b6883;font-weight:900}
.hidden{display:none !important}
/* Pages légales */
.legal{max-width:900px;margin:auto}
.legal .acct-card h2{font-size:24px;margin-top:22px}
.legal .acct-card h2:first-child{margin-top:0}
.legal .acct-card li{color:#4c5d7b;line-height:1.6;margin:4px 0}
.todo{background:#fff3c4;color:#6c5418;padding:1px 6px;border-radius:6px;font-weight:900}
@media(max-width:900px){
  .acct-layout,.dash-grid{grid-template-columns:1fr}
  .acct-visual{display:none}
}
@media(max-width:560px){
  .acct-card{padding:18px}
  .offers{grid-template-columns:1fr}
  .inline-form{grid-template-columns:1fr}
  .family-code .code{font-size:38px;letter-spacing:6px}
  .acct-tabs button{font-size:15px}
}
/* Demandes de cadeaux (espace famille) */
.gifts{margin-top:12px;border-top:1px dashed #d9e2f0;padding-top:10px}
.gifts h4{margin:0 0 8px;font-size:16px;display:flex;align-items:center;gap:8px}
.gift-count{background:#ff7a24;color:#fff;border-radius:999px;padding:2px 8px;font-size:12px}
.gift{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0;border-top:1px solid #eef2f8;font-size:14px}
.gift:first-of-type{border-top:0}
.gift.pending{background:#fffaf2;border:1px solid #ffe0bd;border-radius:14px;padding:10px 12px;margin-bottom:8px}
.gift form.ship{width:100%}
.ship-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.ship-grid input{font-size:15px;padding:10px 12px}
.gift-st{padding:5px 9px;border-radius:999px;font-weight:900;font-size:13px;background:#f4f6fa;color:#5b6883}
.gift-st.st-validee{background:#e8f7ee;color:#14874f}.gift-st.st-envoyee{background:#eaf3ff;color:#1769d7}
.gift .acct-msg{width:100%;margin-top:6px}
@media(max-width:560px){.ship-grid{grid-template-columns:1fr}}
.lesson-table tr.subj-row th{background:#eef4ff;color:#1769d7;font-size:14px;padding:8px 10px;border-radius:8px}
/* Espace professeur, devoirs, messagerie, classement */
.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start}.form-row .field{min-width:140px}
select.acct-input,textarea.acct-input{font:inherit;font-size:16px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #d9e2f0;border-radius:999px;background:#fff;font-weight:800;font-size:14px;cursor:pointer}
.chips input{width:16px;height:16px}
.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:12px 0 18px}
.class-card{border:1px solid var(--line);border-radius:20px;padding:16px;background:#fbfdff;display:flex;flex-direction:column;gap:8px}
.class-card h3{margin:0;font-size:22px}.class-code{font-family:"Courier New",monospace;font-size:24px;font-weight:1000;letter-spacing:5px;color:#a8520a}
.new-class{margin-top:16px;border-top:1px dashed #d9e2f0;padding-top:14px}.new-class h3{margin:0 0 10px}
.tabs4{grid-template-columns:repeat(4,1fr)}.tabs5{grid-template-columns:repeat(5,1fr)}
.picker{display:grid;grid-template-columns:1fr 2fr;gap:10px;align-items:end;background:#f6f9fe;border:1px solid var(--line);border-radius:16px;padding:12px;margin:10px 0}
.picker .opts{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.chosen{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.chosen .it{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:#eef4ff;font-weight:800;font-size:14px}
.row-list{display:grid;gap:8px}.row-item{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}
.res-table{width:100%;border-collapse:collapse;font-size:13px}.res-table th,.res-table td{padding:6px 5px;border-bottom:1px solid #eef2f8;text-align:center}.res-table th:first-child,.res-table td:first-child{text-align:left}
.ok-cell{color:#14874f;font-weight:1000}.ko-cell{color:#b12f55;font-weight:1000}
.msg-app{display:grid;grid-template-columns:240px 1fr;gap:12px;min-height:340px}
.msg-threads{display:flex;flex-direction:column;gap:6px;max-height:460px;overflow:auto}
.msg-threads button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;font:inherit;font-weight:800;cursor:pointer;color:#10234f}
.msg-threads button.active{border-color:#2c7df3;background:#eaf3ff}.msg-threads button small{display:block;color:#5b6883;font-weight:700}
.msg-threads .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#ff7a24;margin-left:6px}
.msg-pane{border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fbfdff}
.msg-title{font-weight:1000}.msg-list{flex:1;display:flex;flex-direction:column;gap:8px;max-height:380px;overflow:auto}
.bub{max-width:80%;padding:10px 12px;border-radius:16px;background:#fff;border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;line-height:1.45}
.bub.mine{align-self:flex-end;background:#eaf3ff;border-color:#cfe1fb}.bub.ann{align-self:center;background:#fff8e8;border-color:#efdca0;max-width:95%}
.bub small{display:block;color:#5b6883;font-size:12px;margin-top:4px}.bub .flag{border:0;background:none;color:#b12f55;font:inherit;font-size:12px;font-weight:900;cursor:pointer;padding:0;margin-left:8px}
.msg-form{display:flex;gap:8px}.msg-form textarea{flex:1}
.kid-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.kid-tabs button{border:1px solid #d9e2f0;background:#fff;border-radius:12px;padding:7px 11px;font:inherit;font-weight:900;font-size:13px;cursor:pointer;color:#1e56ae}
.kid-tabs button.active{background:#eaf3ff;border-color:#2c7df3}
.kid-panel{margin-top:10px;border-top:1px dashed #d9e2f0;padding-top:10px}
.switch{display:flex;align-items:center;gap:10px;padding:8px 0;font-weight:800}.switch input{width:20px;height:20px}
.status-pill{display:inline-block;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:1000;background:#f4f6fa;color:#5b6883}
.status-pill.a_faire{background:#eaf3ff;color:#1769d7}.status-pill.en_retard{background:#fff0f3;color:#b12f55}.status-pill.rendu{background:#e8f7ee;color:#14874f}.status-pill.nouvelle_tentative{background:#fff4df;color:#c87900}
@media(max-width:760px){.msg-app{grid-template-columns:1fr}.picker{grid-template-columns:1fr}.tabs4,.tabs5{grid-template-columns:1fr 1fr}.msg-threads{flex-direction:row;overflow-x:auto}.msg-threads button{min-width:150px}}
/* Collèges */
.college-results{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.college-results button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 12px;font:inherit;font-weight:800;cursor:pointer;color:#10234f}
.college-results button:hover{border-color:#2c7df3;background:#eaf3ff}.college-results small{color:#5b6883;font-weight:700}
.memberships{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
.mship{display:inline-flex;gap:6px;align-items:center;padding:6px 11px;border-radius:999px;font-weight:900;font-size:13px;background:#f4f6fa;color:#4c5d7b}
.mship.active{background:#e8f7ee;color:#14874f}.mship.pending{background:#fff4df;color:#c87900}.mship.suspended,.mship.refused{background:#fff0f3;color:#b12f55}
/* V7.0 — contrastes (WCAG AA) */
.btn-main{background:linear-gradient(135deg,#1769d7,#1250b8)}
.btn-main.orange{background:linear-gradient(135deg,#c24a0a,#a83e07)}
/* V8 — messagerie étendue, planning, plans de révision, demandes de compléments */
.msg-threads .grp{font-size:12px;font-weight:1000;color:#5b6883;text-transform:uppercase;letter-spacing:.04em;margin:8px 2px 2px}
.msg-threads .count{display:inline-block;min-width:20px;padding:1px 7px;margin-left:6px;border-radius:999px;background:#ff7a24;color:#fff;font-size:12px;text-align:center}
.msg-threads .kind{font-weight:700;color:#5b6883}
.msg-notice{font-size:14px;font-weight:800;color:#8a5a00;background:#fff8e8;border:1px solid #efdca0;border-radius:12px;padding:8px 10px}
.msg-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:14px}
.msg-tools select{font:inherit;padding:6px 8px;border-radius:10px;border:1px solid #d9e2f0}
.bub.hid{opacity:.7;border-style:dashed}.bub .mod{border:0;background:none;color:#1e56ae;font:inherit;font-size:12px;font-weight:900;cursor:pointer;padding:0;margin-left:8px}
.bub .who{display:block;font-size:12px;font-weight:1000;color:#1e56ae;margin-bottom:2px}
.new-dm{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}.new-dm select{flex:1;min-width:140px;font:inherit;padding:7px;border-radius:10px;border:1px solid #d9e2f0}
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.week .day{border:1px solid #e3eaf5;border-radius:14px;background:#fbfdff;padding:8px;min-height:110px}
.week .day.today{border-color:#2c7df3;box-shadow:0 0 0 2px #cfe1fb inset}
.week .day h4{margin:0 0 6px;font-size:13px;color:#10234f}
.week .it{display:block;border-radius:10px;padding:6px 7px;margin-bottom:6px;font-size:13px;line-height:1.3;background:#fff;border:1px solid #e3eaf5}
.week .it.devoir{border-left:4px solid #1769d7}.week .it.evenement{border-left:4px solid #b12f55}.week .it.seance{border-left:4px solid #14874f}
.week .it.faite{opacity:.65}.week .it.manquee{border-left-color:#c87900}
.week .it small{display:block;color:#5b6883}.week .it .ev-btn,.week .it .btn-ghost{margin-top:4px;padding:4px 9px;font-size:12px}
.week-nav{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:10px}
.bars{display:grid;gap:6px}.bars .b{display:grid;grid-template-columns:130px 1fr 60px;gap:8px;align-items:center;font-size:13px;font-weight:800}
.bars .t{height:12px;border-radius:999px;background:#e8edf5;overflow:hidden}.bars .t i{display:block;height:100%;background:linear-gradient(90deg,#16a064,#2c7df3)}
.leitner{display:flex;gap:4px;align-items:flex-end;height:46px}.leitner i{flex:1;background:#2c7df3;border-radius:4px 4px 0 0;min-height:2px}
.leitner-row{display:grid;grid-template-columns:130px 1fr 120px;gap:10px;align-items:end;margin-bottom:8px;font-size:13px;font-weight:800}
.sess{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid #e3eaf5;border-radius:12px;margin-bottom:6px;background:#fff}
.sess.faite{background:#f2fbf5}.sess.manquee{background:#fff8ef}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:900;background:#eef3fb;color:#1e56ae}
.pill.ok{background:#e8f7ee;color:#14874f}.pill.warn{background:#fff4df;color:#a86400}.pill.err{background:#fff0f3;color:#b12f55}
.req{border:1px solid #e3eaf5;border-radius:14px;padding:10px 12px;margin-bottom:8px;background:#fff}
.req .top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center}.req p{margin:6px 0;white-space:pre-wrap}
.req .resp{background:#f2fbf5;border-radius:10px;padding:8px;font-size:14px}
.gift-files{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
@media(max-width:900px){.week{grid-template-columns:repeat(2,1fr)}.bars .b,.leitner-row{grid-template-columns:100px 1fr 50px}}
@media(max-width:520px){.week{grid-template-columns:1fr}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- Lot A (v75) : cibles tactiles ≥ 40 px sur mobile / tablette */
@media (max-width:980px),(pointer:coarse){
  .btn-ghost{min-height:42px}
  .acct-links a{display:inline-flex;align-items:center;min-height:40px}
}

.acct-msg.warn{background:#fff4df;color:#8a4b00;border:1px solid #f3d29a}
