/* Palette Écoute-moi : accueil rassurant, écrans de formulaire inspirés d’une onboarding douce */
:root{
  --sage-bg:#e8e9df;--sage-soft:#f2f0e7;--sage-strong:#587064;--sage-deep:#203b32;
  --sand:#f2eee3;--paper:#f7f6f1;--white:#fffefa;--ink:#252a27;--muted:#606a64;
  --line:#d9d9cf;--ok:#286b4d;--warn:#8b5d22;--bad:#9a3c35;--rayon:16px;--shadow:0 10px 28px rgba(32,46,39,.08);--ombre:var(--shadow);
  --jaune:#d3a65c;--jaune-clair:#f4edde;--rouge:#a94e38;--rouge-fonce:#853d2c;--encre:var(--ink);--encre-douce:var(--muted);--papier:var(--paper);--blanc:var(--white);--bord:var(--line);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:var(--sans);background:var(--papier);color:var(--encre);line-height:1.6;-webkit-text-size-adjust:100%}
h1,h2,h3{font-family:var(--serif);line-height:1.16;margin:0 0 .6em;letter-spacing:-.025em}
h1{font-size:clamp(1.8rem,4vw,2.6rem)}h2{font-size:clamp(1.4rem,3vw,1.8rem)}h3{font-size:1.15rem}
a{color:var(--rouge)}a:hover{color:var(--rouge-fonce)}
img{max-width:100%;height:auto}
.container{max-width:1100px;margin:0 auto;padding:1.5rem 1rem}
.section{margin:2.5rem 0}
.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-bottom:3px solid var(--jaune);padding-bottom:.4rem;margin-bottom:1.2rem}
.section-title h2{margin:0}
.muted{color:var(--encre-douce);font-size:.92rem}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:.5rem;z-index:99}
:focus-visible{outline:3px solid var(--rouge);outline-offset:2px}

/* ---------- En-tête ---------- */
.topstripe{height:4px;background:linear-gradient(90deg,#203b32 0 84%,#d3a65c 84% 92%,#a94e38 92% 100%)}
.site-header{background:var(--blanc);border-bottom:1px solid var(--bord);position:sticky;top:0;z-index:50}
.header-inner{max-width:1100px;margin:0 auto;padding:.6rem 1rem;display:flex;align-items:center;gap:1rem}
.brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;font-family:var(--serif);font-weight:800;font-size:1.4rem;color:var(--encre)!important;letter-spacing:-.035em}
.brand svg{width:38px;height:38px;flex-shrink:0}.brand span{color:var(--rouge)}
.nav-toggle{display:none}
.main-nav{display:flex;align-items:center;gap:.2rem;margin-left:auto;flex-wrap:wrap}
.main-nav a,.main-nav .link-btn{color:#3e4a5d;text-decoration:none;padding:.45rem .65rem;border-radius:7px;font-weight:650;font-size:.86rem}
.main-nav a:hover,.main-nav .link-btn:hover{background:var(--jaune-clair);color:var(--rouge-fonce)}
.main-nav a.active{background:var(--jaune-clair);color:var(--rouge-fonce);box-shadow:inset 0 -2px var(--rouge)}
.main-nav .btn{color:#fff!important;margin-left:.4rem}
.search-mini{display:flex;margin-left:.5rem}
.search-mini input{width:150px;padding:.4rem .7rem;border:1px solid var(--bord);border-radius:999px 0 0 999px;border-right:0;font:inherit;font-size:.9rem;margin:0}
.search-mini button{border:1px solid var(--rouge);background:var(--rouge);color:#fff;border-radius:0 999px 999px 0;padding:0 .8rem;cursor:pointer}
@media(max-width:1050px){
  .nav-toggle{display:block;margin-left:auto;cursor:pointer;font-size:1.6rem;padding:.2rem .6rem;border:1px solid var(--bord);border-radius:8px;background:#fff;color:var(--encre)}
  .main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:.8rem 1rem;border-bottom:3px solid var(--jaune);margin:0}
  .nav-toggle[aria-expanded="true"]~.main-nav{display:flex}
  .search-mini{margin:.4rem 0}.search-mini input{flex:1;width:auto}
  .main-nav .btn{margin:.4rem 0 0;text-align:center}
}
  @media(max-width:480px){
    .header-inner{gap:.45rem;padding:.55rem .65rem}
    .brand{font-size:1.15rem;gap:.35rem;white-space:nowrap}
    .brand svg{width:32px;height:32px}
  }

/* ---------- Boutons, pastilles ---------- */
.btn{display:inline-block;padding:.68rem 1.1rem;border-radius:9px;border:1px solid var(--rouge);background:var(--rouge);color:#fff!important;text-decoration:none;cursor:pointer;font:inherit;font-weight:700;transition:transform .1s,background .15s}
.btn:hover{background:var(--rouge-fonce);border-color:var(--rouge-fonce);transform:translateY(-1px)}
.btn-jaune{background:var(--jaune);border-color:var(--jaune);color:var(--encre)!important}.btn-jaune:hover{background:#e6bc00;border-color:#e6bc00}
.btn-outline{background:transparent;color:var(--rouge)!important}.btn-outline:hover{background:var(--jaune-clair);border-color:var(--rouge)}
.btn-danger{background:#b91c1c;border-color:#b91c1c}
.btn-small{padding:.25rem .8rem;font-size:.85rem}
.link-btn{background:none;border:0;cursor:pointer;font:inherit;padding:0}
.inline-form{display:inline}
.tag{display:inline-block;padding:.1rem .65rem;border-radius:999px;background:#f1e9d6;font-size:.8rem;font-weight:600;text-decoration:none;color:var(--encre)}
.tag.ok{background:#dcfce7;color:var(--ok)}.tag.warn{background:#fef3c7;color:var(--warn)}.tag.bad{background:#fee2e2;color:var(--bad)}
a.tag:hover{background:var(--jaune)}

/* ---------- Flash ---------- */
.flash{padding:.8rem 1rem;border-radius:10px;margin:0 0 1rem;border:1px solid;font-weight:500}
.flash-success{background:#dcfce7;border-color:#86efac}.flash-error{background:#fee2e2;border-color:#fca5a5}
.flash-warning{background:#fef3c7;border-color:#fcd34d}.flash-info{background:#dbeafe;border-color:#93c5fd}

/* ---------- Héros ---------- */
.hero{position:relative;overflow:hidden;border-radius:0 0 28px 28px;background:linear-gradient(135deg,#eaf2ff 0%,#f5f8ff 62%,#fff5dc 100%);padding:3rem 1rem 3.5rem;text-align:center;border-bottom:1px solid var(--bord)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 20%,rgba(36,86,166,.08) 0 90px,transparent 91px),radial-gradient(circle at 90% 80%,rgba(239,196,86,.15) 0 130px,transparent 131px)}
.hero-inner{position:relative;max-width:760px;margin:0 auto}
.hero .eyebrow{display:inline-block;background:var(--rouge);color:#fff;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;padding:.25rem .8rem;border-radius:999px;margin-bottom:.8rem}
.hero p.lead{font-size:1.15rem;color:var(--encre)}
.hero-search{display:flex;width:100%;max-width:560px;margin:1.4rem auto .6rem;box-shadow:var(--ombre);border-radius:999px;overflow:hidden}
.hero-search input{flex:1;min-width:0;padding:.9rem 1.3rem;border:0;font:inherit;font-size:1.05rem;margin:0;border-radius:0}
.hero-search button{flex-shrink:0;border:0;background:var(--rouge);color:#fff;font:inherit;font-weight:700;padding:0 1.2rem;cursor:pointer}
.hero-links{margin-top:.8rem}.hero-links .btn{margin:.25rem}
.page-hero{background:var(--jaune-clair);border-bottom:4px solid var(--jaune);padding:2rem 1rem;text-align:center}
.page-hero h1{margin:0 0 .3rem}.page-hero p{margin:0;color:var(--encre-douce)}
.stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:-1.6rem auto 0;max-width:820px;position:relative;padding:0 1rem}
.stat-pill{background:#fff;border-radius:var(--rayon);box-shadow:var(--ombre);text-align:center;padding:.8rem;border-top:4px solid var(--rouge)}
.stat-pill strong{display:block;font-family:var(--serif);font-size:1.8rem;color:var(--rouge);line-height:1}

/* ---------- Cartes & grilles ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.card{background:#fff;border:1px solid var(--bord);border-radius:var(--rayon);padding:1.1rem 1.2rem;box-shadow:var(--ombre)}
.card h3{margin-top:0}
.classroom-panel{padding:1.4rem;border:1px solid #c9d9ef;border-radius:var(--rayon);background:#eef4fc}
.classroom-panel .section-title{border-bottom-color:#c9d9ef}
.classroom-panel article{background:#fff;border:1px solid var(--bord);border-top:4px solid var(--jaune);border-radius:12px;padding:1rem}
.classroom-panel article h3{margin:.4rem 0}
.lesson-step{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--rouge);color:#fff;font-weight:800}
.class-card{border-top:4px solid var(--jaune)}
.invite-code{display:inline-block;padding:.35rem .7rem;border:1px dashed var(--rouge);border-radius:8px;background:#fff;letter-spacing:.12em}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.moderation-proposal{margin-bottom:1rem}
.moderation-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem}
.moderation-actions form{margin:0}
.card.accent{border-top:5px solid var(--rouge)}
.card.jaune{border-top:5px solid var(--jaune)}
.highlight{border-left:6px solid var(--jaune);background:linear-gradient(90deg,#fffbe6,#fff)}
.big{font-family:var(--serif);font-size:1.7rem;margin:.2rem 0}.big small{font-size:1rem;color:var(--encre-douce);font-family:var(--sans)}
.mot-card{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;transition:transform .12s,box-shadow .12s}
.mot-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(27,34,51,.14)}
.mot-card-link{text-decoration:none;color:inherit}
.mot-edit-link{font-size:.9rem;font-weight:700}
.mot-card .anglais{font-family:var(--serif);font-size:1.35rem;font-weight:700;color:var(--rouge)}
.mot-card-link:hover .anglais{text-decoration:underline}
.tile{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;color:var(--encre);background:#fff;border:1px solid var(--bord);border-left:6px solid var(--jaune);border-radius:var(--rayon);padding:.9rem 1rem;transition:border-color .15s,transform .12s}
.tile:hover{border-left-color:var(--rouge);transform:translateY(-2px)}
.tile strong{font-family:var(--serif);font-size:1.1rem}
.tile .count{font-size:.85rem;color:var(--encre-douce)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{display:inline-flex;gap:.4rem;align-items:center;padding:.4rem .9rem;border-radius:999px;background:#fff;border:1px solid var(--bord);text-decoration:none;color:var(--encre);font-weight:600}
.chip:hover{background:var(--jaune);border-color:var(--jaune)}.chip small{color:var(--encre-douce)}

/* ---------- Bandeau patrimoine ---------- */
.heritage{background:var(--encre);color:#fff;border-radius:var(--rayon);padding:2rem 1.5rem;border-bottom:8px solid var(--jaune);position:relative;overflow:hidden}
.heritage h2{color:var(--jaune)}.heritage a{color:var(--jaune)}.heritage .btn{color:var(--encre)!important;background:var(--jaune);border-color:var(--jaune)}
.timeline{list-style:none;padding:0;margin:0;border-left:4px solid var(--jaune)}
.timeline li{padding:0 0 1.1rem 1.2rem;position:relative}
.timeline li::before{content:"";position:absolute;left:-11px;top:.35rem;width:16px;height:16px;border-radius:50%;background:var(--rouge);border:3px solid var(--jaune)}
.timeline strong{font-family:var(--serif)}
.quote{border-left:5px solid var(--rouge);padding:.4rem 1rem;background:#fff;border-radius:0 10px 10px 0;font-family:var(--serif);font-size:1.1rem}

/* ---------- Dictionnaire ---------- */
.alphabet{display:flex;flex-wrap:wrap;gap:.3rem;margin:1rem 0}
.alphabet a,.alphabet span{width:2.2rem;height:2.2rem;display:grid;place-items:center;border-radius:8px;font-weight:700;text-decoration:none;background:#fff;border:1px solid var(--bord)}
.alphabet a:hover,.alphabet a.active{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.alphabet span{opacity:.35}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0 1rem}
.search{display:flex;gap:.5rem;margin-bottom:1rem}.search input{margin:0}
.pagination{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center;margin:1.5rem 0}
.pagination a,.pagination span{padding:.35rem .8rem;border-radius:8px;border:1px solid var(--bord);background:#fff;text-decoration:none;font-weight:600}
.pagination .current{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.pagination a:hover{background:var(--jaune)}

/* ---------- Formulaires ---------- */
label{display:block;margin-bottom:.8rem;font-weight:600}
input[type=text],input[type=email],input[type=password],input[type=search],select,textarea{display:block;width:100%;padding:.6rem .8rem;margin-top:.25rem;border:1px solid #d6c9aa;border-radius:10px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{border-color:var(--rouge);outline:2px solid rgba(200,16,46,.2)}
label.check{font-weight:400;display:block}
fieldset{border:1px solid var(--bord);border-radius:10px;margin-bottom:1rem;background:#fff}
.auth-box{max-width:440px;margin:1.5rem auto;background:#fff;padding:1.6rem;border-radius:var(--rayon);border:1px solid var(--bord);border-top:6px solid var(--rouge);box-shadow:var(--ombre)}
.oauth{display:grid;gap:.5rem}.sep{text-align:center;color:var(--encre-douce);margin:1rem 0;position:relative}
.form-card{background:#fff;padding:1.3rem;border-radius:var(--rayon);border:1px solid var(--bord);max-width:680px}
.report{margin-top:1rem}.report summary{cursor:pointer;color:var(--encre-douce)}
audio{max-width:100%;height:36px;vertical-align:middle}
progress{width:100%;height:14px;accent-color:var(--rouge)}

/* ---------- Tableaux ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--rayon);border:1px solid var(--bord)}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid var(--bord);vertical-align:top}
th{background:#f7efd9;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em}
tr:last-child td{border-bottom:0}
.list{padding-left:1.1rem}.list li{margin-bottom:.4rem}
.rank{font-family:var(--serif);font-weight:800;font-size:1.2rem;color:var(--rouge)}
.avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:.4rem;background:var(--jaune)}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--encre);color:#d8dbe3;margin-top:3rem;border-top:6px solid var(--jaune)}
.footer-grid{max-width:1100px;margin:0 auto;padding:2rem 1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}
.site-footer h3{color:var(--jaune);font-size:1rem}.site-footer a{color:#d8dbe3;text-decoration:none;display:block;padding:.15rem 0}
.site-footer a:hover{color:var(--jaune)}
.footer-bottom{border-top:1px solid #33405a;text-align:center;padding:1rem;font-size:.85rem}
.pwa-install p{max-width:34ch;margin:.65rem 0 0;font-size:.82rem;color:#d8dbe3}
.pwa-install .btn[hidden]{display:none}

/* ---------- Coach Pip ---------- */
.coach-widget{position:fixed;right:1.25rem;bottom:1.25rem;z-index:45;font-family:var(--sans)}
.coach-launcher{display:flex;align-items:center;gap:.45rem;border:0;border-radius:999px;background:var(--jaune);color:var(--encre);padding:.75rem 1.1rem;font:inherit;font-weight:800;box-shadow:0 6px 22px rgba(27,34,51,.22);cursor:pointer}
.coach-launcher:hover{background:#f5d77f;transform:translateY(-2px)}
.coach-launcher span{font-size:1.2rem;color:var(--rouge)}
.coach-panel{position:absolute;right:0;bottom:4.2rem;width:min(370px,calc(100vw - 2rem));height:min(520px,calc(100dvh - 7rem));min-height:320px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--bord);border-radius:18px;background:#fff;box-shadow:0 12px 40px rgba(27,34,51,.24)}
.coach-panel[hidden]{display:none}
.coach-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:var(--rouge);color:#fff}
.coach-header strong,.coach-header span{display:block}.coach-header strong{font-size:1.08rem}.coach-header span{font-size:.8rem;opacity:.88}
.coach-close{border:0;background:transparent;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer}
.coach-messages{flex:1;overflow:auto;padding:.9rem;background:linear-gradient(#f6f9ff,#fff)}
.coach-bubble{max-width:88%;width:fit-content;margin:.35rem 0;padding:.65rem .8rem;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.coach-bubble.assistant{background:#edf3fc;border:1px solid #dce7f5;border-bottom-left-radius:4px}
.coach-bubble.user{margin-left:auto;background:var(--rouge);color:#fff;border-bottom-right-radius:4px}
.coach-form{display:flex;align-items:flex-end;gap:.5rem;padding:.7rem;border-top:1px solid var(--bord)}
.coach-form textarea{flex:1;min-width:0;resize:vertical;max-height:110px;margin:0}
.coach-form .btn{flex-shrink:0}
.coach-form button:disabled{opacity:.6;cursor:wait}
.coach-note{margin:0;padding:0 .8rem .65rem;color:var(--encre-douce);font-size:.72rem}
.coach-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:480px){.coach-widget{right:.7rem;bottom:.7rem}.coach-panel{position:fixed;right:.5rem;bottom:4.4rem;width:calc(100vw - 1rem);height:min(540px,calc(100dvh - 6rem));min-height:300px}}

/* ---------- Accueil : parcours guidé + défi quotidien ---------- */
.home-hero{position:relative;overflow:hidden;background:#f5f3ed}
.home-hero::before{position:absolute;content:"";width:580px;height:580px;left:-340px;top:-340px;border:1px solid rgba(36,86,166,.11);border-radius:50%;box-shadow:0 0 0 45px rgba(36,86,166,.025),0 0 0 90px rgba(36,86,166,.025)}
.home-hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.8fr);align-items:center;gap:clamp(2rem,6vw,5.5rem);max-width:1100px;min-height:510px;margin:auto;padding:4.2rem 1.5rem 4.8rem}
.home-hero-copy{max-width:610px}
.home-kicker,.home-section-kicker{display:inline-flex;align-items:center;gap:.5rem;color:#40536e;font-size:.72rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.home-kicker{padding:.42rem .75rem;border:1px solid #d8dfeb;border-radius:999px;background:rgba(255,255,255,.65)}
.home-kicker-dot{width:.5rem;height:.5rem;border-radius:50%;background:#d79d28;box-shadow:0 0 0 4px rgba(239,196,86,.22)}
.home-hero h1{margin:1.4rem 0 1rem;font-family:var(--sans);font-size:clamp(2.65rem,5.7vw,4.7rem);font-weight:850;line-height:1.02;letter-spacing:-.065em}
.home-hero h1 span{color:var(--rouge)}
.home-hero-copy>p{max-width:520px;color:#515d70;font-size:1.07rem;line-height:1.7}
.home-search{display:flex;align-items:center;gap:.5rem;max-width:540px;margin:1.5rem 0 .85rem;padding:.35rem .4rem .35rem .9rem;border:1px solid #dce1e8;border-radius:15px;background:white;box-shadow:0 10px 28px rgba(27,34,51,.075)}
.home-search>span{font-size:1.55rem;color:#73819a;line-height:1}
.home-search input{flex:1;min-width:0;margin:0;padding:.7rem .2rem;border:0;background:transparent;font-size:.97rem;outline:0!important;box-shadow:none!important}
.home-search button,.daily-answer-form button{flex-shrink:0;padding:.7rem 1rem;border:0;border-radius:11px;background:var(--rouge);color:#fff;font:inherit;font-weight:750;cursor:pointer;transition:background .15s,transform .15s}
.home-search button:hover,.daily-answer-form button:hover{background:var(--rouge-fonce);transform:translateY(-1px)}
.home-hero-actions{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:.75rem}
.home-primary-cta{display:inline-flex;align-items:center;gap:.9rem;padding:.8rem 1rem;border-radius:10px;background:var(--jaune);color:#242332;text-decoration:none;font-weight:800;box-shadow:0 3px 0 #d5a333;transition:transform .15s,box-shadow .15s}
.home-primary-cta:hover{color:#242332;transform:translateY(-2px);box-shadow:0 5px 0 #d5a333}
.home-primary-cta span{font-size:1.2rem}
.home-secondary-cta{color:#334d78;font-size:.92rem;font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px}
.home-reassurance{display:flex;align-items:center;gap:.45rem;margin-top:1.25rem!important;color:#657183!important;font-size:.8rem!important}
.home-reassurance span{display:grid;place-items:center;width:1.15rem;height:1.15rem;border-radius:50%;background:#e2efdf;color:#356944;font-size:.75rem;font-weight:900}
.home-visual{position:relative;min-height:360px;display:grid;place-items:center}
.home-flashcard{position:relative;z-index:1;width:min(100%,340px);min-height:315px;padding:1.2rem 1.35rem;border:1px solid #e4dfd2;border-radius:22px;background:white;box-shadow:0 28px 70px rgba(33,43,61,.17);transform:rotate(3deg)}
.home-flashcard::before{position:absolute;z-index:-1;content:"";inset:12px -13px -12px 13px;border:1px solid #d9dfed;border-radius:22px;background:#dfe8f4;transform:rotate(-6deg)}
.home-flashcard-top{display:flex;justify-content:space-between;padding-bottom:.85rem;border-bottom:1px solid #edf0f3;color:#73819a;font-size:.63rem;font-weight:850;letter-spacing:.1em}
.home-card-label{display:block;margin:2.1rem 0 .6rem;color:#718096;font-size:.66rem;font-weight:850;letter-spacing:.12em}
.home-flashcard>strong{display:block;font-family:var(--sans);font-size:clamp(2.2rem,4vw,3rem);font-weight:850;letter-spacing:-.055em}
.home-card-answer{display:flex;align-items:center;justify-content:space-between;margin-top:1.3rem;padding:.8rem .9rem;border-radius:12px;background:#eef3fb;color:var(--rouge);font-family:var(--serif);font-size:1.3rem;font-weight:700}
.home-card-answer span{font-family:var(--sans);font-size:1rem}
.home-card-footer{margin-top:1.45rem;color:#718096;font-size:.78rem}
.home-card-footer span{color:#cb982a}
.home-float-note{position:absolute;z-index:2;top:8px;right:-12px;display:grid;gap:.14rem;padding:.75rem .9rem;border:1px solid #eadfbf;border-radius:12px;background:#fff9e9;box-shadow:0 10px 24px rgba(33,43,61,.1);transform:rotate(-4deg)}
.home-float-note>span,.daily-challenge-answer>span{color:#8a702f;font-size:.58rem;font-weight:900;letter-spacing:.12em}
.home-float-note strong{font-family:var(--serif);font-size:1.05rem}
.home-float-note small{color:#697183;font-size:.7rem}
.home-spark{position:absolute;color:#d5a333}
.home-spark-one{top:20px;left:4%;font-size:2.2rem}.home-spark-two{right:2%;bottom:84px;color:#6d8cbe;font-size:2rem}
.home-visual-caption{position:absolute;right:-20px;bottom:4px;z-index:2;display:flex;align-items:center;gap:.65rem;max-width:300px;padding:.75rem .9rem;border:1px solid #e4e7eb;border-radius:13px;background:#fff;box-shadow:0 9px 24px rgba(33,43,61,.11)}
.home-caption-icon{display:grid;place-items:center;flex-shrink:0;width:2rem;height:2rem;border-radius:50%;background:#e4f0e1;color:#3a6e40;font-weight:900}
.home-visual-caption strong,.home-visual-caption small{display:block}.home-visual-caption strong{font-size:.76rem}.home-visual-caption small{margin-top:.12rem;color:#6b7484;font-size:.67rem;line-height:1.35}
.home-proof{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:clamp(1.2rem,5vw,4rem);min-height:88px;padding:1rem;border-top:1px solid #e7e7e3;border-bottom:1px solid #e7e7e3;background:#fff}
.home-proof>div{display:flex;align-items:baseline;gap:.55rem}
.home-proof strong{font-size:1.4rem;font-weight:850;letter-spacing:-.04em}
.home-proof span:not(.home-proof-divider){color:#697183;font-size:.8rem}
.home-proof-divider{width:1px;height:27px;background:#dfe2e6}
.home-container{max-width:1050px;padding-top:2.4rem;padding-bottom:4rem}
.daily-challenge{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:1rem;overflow:hidden;min-height:260px;padding:2rem 2.2rem;border-radius:22px;background:#1e3150;color:white;box-shadow:0 14px 34px rgba(31,49,80,.14)}
.daily-challenge::before{position:absolute;content:"";width:300px;height:300px;right:120px;top:-210px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 56px rgba(255,255,255,.025)}
.daily-challenge-copy{position:relative;z-index:2;max-width:520px}
.daily-eyebrow{display:block;color:#f0cd70;font-size:.66rem;font-weight:900;letter-spacing:.13em}
.daily-eyebrow span{margin-right:.3rem;font-size:.9rem}
.daily-challenge h2{margin:.75rem 0 .55rem;font-family:var(--sans);font-size:clamp(1.6rem,3.3vw,2.2rem);font-weight:820;line-height:1.1;letter-spacing:-.04em}
.daily-prompt{margin:.75rem 0 1rem;color:#d6deea;font-size:.95rem}.daily-prompt strong{color:#fff}
.daily-answer-form{display:flex;gap:.5rem;max-width:470px}
.daily-answer-form input{min-width:0;margin:0;padding:.7rem .8rem;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.96)}
.daily-answer-form button{background:var(--jaune);color:#222536}.daily-answer-form button:hover{background:#f4d374}
.daily-feedback{margin:.65rem 0 0;font-size:.85rem;font-weight:750}
.daily-feedback.is-correct{color:#bce6bd}.daily-feedback.is-try-again{color:#ffdfa0}
.daily-reveal{margin-top:.65rem;padding:0;border:0;background:transparent;color:#c7d4e7;font:inherit;font-size:.78rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.daily-reveal:hover{color:#fff}
.daily-word-art{position:relative;z-index:1;display:grid;place-items:center;justify-self:center;width:185px;height:185px}
.daily-word-sun{position:absolute;inset:12px;border-radius:48% 52% 44% 56%;background:#f0c85d;transform:rotate(-12deg)}
.daily-word-letter{position:relative;z-index:1;margin-top:-10px;color:#1e3150;font-family:var(--serif);font-size:7rem;font-weight:800;line-height:1}
.daily-word-tag{position:absolute;right:-20px;bottom:20px;padding:.4rem .55rem;border:2px solid #1e3150;border-radius:6px;background:#fff;color:#1e3150;font-size:.55rem;font-weight:900;letter-spacing:.08em;line-height:1.25;transform:rotate(7deg)}
.daily-word-squiggle{position:absolute;left:-12px;bottom:21px;color:#fff;font-size:2.2rem;transform:rotate(-17deg)}
.daily-challenge-answer{position:relative;z-index:2;grid-column:1/-1;display:grid;justify-items:start;gap:.4rem;margin-top:.3rem;padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(255,255,255,.08)}
.daily-challenge-answer[hidden]{display:none}
.daily-challenge-answer>span{color:#f0cd70}
.daily-challenge-answer strong{font-family:var(--serif);font-size:1.7rem}
.daily-challenge-answer em{color:#d6deea}
.daily-challenge-answer audio{margin:.3rem 0}
.daily-challenge-answer a{color:#f0cd70;font-size:.82rem;font-weight:750}
.home-section{margin-top:4.3rem}
.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}
.home-section-kicker{margin-bottom:.45rem;color:#65748a;font-size:.64rem}
.home-section-heading h2,.home-method h2,.home-community h2{margin:0;font-family:var(--sans);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:830;letter-spacing:-.045em}
.home-section-heading>p{max-width:290px;margin:0;color:#687385;font-size:.83rem}
.home-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.home-path{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:238px;padding:1.1rem 1.1rem 1rem;border:1px solid #e2e5ea;border-radius:16px;background:#fff;color:var(--encre);text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s}
.home-path:hover{transform:translateY(-4px);border-color:#c7d5e9;box-shadow:0 14px 28px rgba(31,49,80,.09);color:var(--encre)}
.home-path-featured{border-color:#eadcaf;background:linear-gradient(160deg,#fffdf6,#fff)}
.home-path-number{color:#7a8493;font-size:.59rem;font-weight:900;letter-spacing:.11em}
.home-path-icon{display:grid;place-items:center;width:2.65rem;height:2.65rem;margin:1.05rem 0 .8rem;border-radius:12px;font-size:1.4rem}
.home-icon-yellow{background:#fff2c9;color:#98731e}.home-icon-blue{background:#e8eff9;color:#31588d}.home-icon-peach{background:#fbe9df;color:#a6583b}
.home-path>strong{font-size:1.03rem;letter-spacing:-.02em}
.home-path>span:nth-of-type(3){margin-top:.4rem;color:#687385;font-size:.79rem;line-height:1.5}
.home-path-link{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:auto;padding-top:1rem;color:#31588d;font-size:.77rem;font-weight:800}
.home-path-link b{font-size:1rem}
.home-theme-heading{align-items:end}
.home-all-link{white-space:nowrap;color:#31588d;font-size:.82rem;font-weight:750;text-decoration:none}.home-all-link:hover{text-decoration:underline;text-underline-offset:4px}
.home-theme-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.home-theme-chip{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem .4rem;min-height:68px;padding:.7rem .8rem;border:1px solid #e2e5ea;border-radius:12px;background:#fff;color:var(--encre);text-decoration:none;transition:transform .15s,border-color .15s}
.home-theme-chip:hover{transform:translateY(-2px);border-color:#c5d3e8;color:var(--encre)}
.home-theme-chip>span{font-size:.83rem;font-weight:780}.home-theme-chip small{grid-column:1;color:#798394;font-size:.7rem}.home-theme-chip>b{grid-column:2;grid-row:1/3;color:#526d99;font-size:.85rem}
.home-theme-1{background:#f2f6fc}.home-theme-2{background:#fffaf0}.home-theme-3{background:#f3f7f1}
.home-method{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-top:4.3rem;padding:2rem;border:1px solid #e4e6e8;border-radius:19px;background:#f1f3f5}
.home-method-intro>p{max-width:450px;color:#626e80;font-size:.88rem;line-height:1.7}
.home-method-intro>a{display:inline-flex;gap:.45rem;margin-top:.3rem;color:#31588d;font-size:.83rem;font-weight:800;text-decoration:none}
.home-method-steps{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}
.home-method-steps li{display:flex;align-items:center;gap:.8rem;padding:.75rem .85rem;border:1px solid #e1e5eb;border-radius:12px;background:#fff}
.home-method-steps li>span{display:grid;place-items:center;flex-shrink:0;width:2rem;height:2rem;border-radius:9px;background:#e8eff9;color:#31588d;font-weight:900}
.home-method-steps strong,.home-method-steps small{display:block}.home-method-steps strong{font-size:.83rem}.home-method-steps small{margin-top:.1rem;color:#697486;font-size:.72rem;line-height:1.4}
.home-latest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.home-latest-word{position:relative;display:flex;flex-direction:column;gap:.18rem;min-width:0;padding:.85rem .9rem;border:1px solid #e2e5ea;border-radius:12px;background:#fff;color:var(--encre);text-decoration:none;transition:transform .15s,border-color .15s}
.home-latest-word:hover{transform:translateY(-2px);border-color:#c5d3e8;color:var(--encre)}
.home-latest-word span{overflow:hidden;color:#697486;font-size:.73rem;text-overflow:ellipsis;white-space:nowrap}
.home-latest-word strong{overflow:hidden;padding-right:1rem;color:#31588d;font-family:var(--serif);font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}
.home-latest-word>b{position:absolute;top:.65rem;right:.7rem;color:#8b98a9;font-size:.8rem}
.home-community{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:4.3rem;padding:1.7rem 1.8rem;border-radius:17px;background:#fff2cc}
.home-community>div{max-width:610px}
.home-community h2{margin:.2rem 0;font-size:1.55rem}
.home-community p{margin:.4rem 0 0;color:#606b7c;font-size:.84rem}
.home-community-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;flex-shrink:0;padding:.75rem .95rem;border-radius:10px;background:#243b61;color:#fff;text-decoration:none;font-size:.81rem;font-weight:800}
.home-community-cta:hover{background:#173d77;color:#fff}
.home-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:850px){
  .home-hero-inner{grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:1.3rem;min-height:460px;padding:3.1rem 1.2rem 4rem}
  .home-hero h1{font-size:clamp(2.5rem,6.3vw,3.8rem)}
  .home-flashcard{min-height:290px;padding:1rem}
  .home-visual-caption{right:-4px;max-width:260px}
  .home-proof{gap:1.3rem}
  .home-proof>div{align-items:center;flex-direction:column;gap:0}
}
@media(max-width:720px){
  .home-hero-inner{grid-template-columns:1fr;gap:1rem;min-height:0;padding:2.8rem 1.1rem 2.2rem}
  .home-hero h1{margin:1.05rem 0 .8rem;font-size:clamp(2.55rem,11vw,3.55rem)}
  .home-hero-copy>p{font-size:.98rem}
  .home-search{margin-top:1.15rem}
  .home-search button{padding:.65rem .75rem;font-size:.83rem}
  .home-hero-actions{gap:.8rem}
  .home-primary-cta{padding:.7rem .8rem;font-size:.83rem}
  .home-secondary-cta{font-size:.81rem}
  .home-reassurance{font-size:.74rem!important}
  .home-visual{min-height:292px;margin:.3rem 1rem 0}
  .home-flashcard{width:min(82%,320px);min-height:270px}
  .home-card-label{margin-top:1.5rem}
  .home-float-note{right:0}
  .home-visual-caption{right:-12px;bottom:0}
  .home-spark-one{left:0}
  .home-proof{justify-content:space-around;gap:.5rem;min-height:78px;padding:.75rem .5rem}
  .home-proof>div{max-width:33%;text-align:center}
  .home-proof strong{font-size:1.22rem}
  .home-proof span:not(.home-proof-divider){font-size:.63rem;line-height:1.25}
  .home-proof-divider{height:30px}
  .home-container{padding:1.2rem .9rem 3rem}
  .daily-challenge{grid-template-columns:minmax(0,1fr) 76px;gap:.4rem;min-height:0;padding:1.3rem 1rem;border-radius:17px}
  .daily-challenge h2{font-size:1.55rem}
  .daily-prompt{font-size:.83rem}
  .daily-answer-form{flex-wrap:wrap}
  .daily-answer-form input{flex:1 1 130px;padding:.62rem;font-size:.86rem}
  .daily-answer-form button{padding:.62rem .7rem;font-size:.8rem}
  .daily-word-art{width:84px;height:100px;align-self:start;margin-top:1.8rem}
  .daily-word-sun{inset:8px}
  .daily-word-letter{font-size:4.2rem}
  .daily-word-tag{right:-13px;bottom:7px;font-size:.42rem}
  .daily-word-squiggle{left:-10px;bottom:4px;font-size:1.4rem}
  .home-section{margin-top:3.2rem}
  .home-section-heading{align-items:flex-start;flex-direction:column;gap:.55rem}
  .home-section-heading>p{max-width:none}
  .home-paths{grid-template-columns:1fr;gap:.6rem}
  .home-path{display:grid;grid-template-columns:2.7rem 1fr auto;grid-template-rows:auto auto auto;column-gap:.7rem;min-height:0;padding:.85rem}
  .home-path-number{grid-column:1/-1}
  .home-path-icon{grid-column:1;grid-row:2/4;width:2.5rem;height:2.5rem;margin:.65rem 0 0}
  .home-path>strong{grid-column:2/-1;align-self:end;margin-top:.55rem;font-size:.96rem}
  .home-path>span:nth-of-type(3){grid-column:2/-1;margin-top:.2rem;font-size:.74rem}
  .home-path-link{grid-column:2/-1;margin-top:.45rem;padding-top:.35rem}
  .home-theme-heading{align-items:flex-start}
  .home-theme-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .home-theme-chip{min-height:62px;padding:.6rem}
  .home-theme-chip>span{font-size:.77rem}
  .home-method{grid-template-columns:1fr;gap:1rem;margin-top:3.2rem;padding:1.2rem}
  .home-latest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .home-community{align-items:flex-start;flex-direction:column;gap:1rem;margin-top:3.2rem;padding:1.25rem}
  .home-community-cta{width:100%}
}
@media(prefers-reduced-motion:reduce){.home-primary-cta,.home-path,.home-theme-chip,.home-latest-word,.home-search button,.daily-answer-form button{transition:none}}

/* ---------- Espaces connectés (membre / admin) : même habillage que le site public ---------- */
.space-bar{background:var(--jaune-clair);border-bottom:3px solid var(--jaune)}
.space-bar.admin{background:var(--encre);border-bottom-color:var(--jaune)}
.space-label{max-width:1100px;margin:0 auto;padding:.5rem 1rem 0;color:var(--jaune);font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.space-nav{max-width:1100px;margin:0 auto;padding:.5rem 1rem;display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:thin}
.space-nav a{white-space:nowrap;text-decoration:none;color:var(--encre);font-weight:700;padding:.45rem .85rem;border-radius:7px;background:rgba(255,255,255,.82);border:1px solid var(--bord)}
.space-nav a:hover{background:#fff;border-color:var(--rouge)}
.space-nav a.active{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.admin .space-nav a{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.admin .space-nav a:hover{background:rgba(255,255,255,.18)}
.admin .space-nav a.active{background:var(--jaune);color:var(--encre);border-color:var(--jaune)}
.pastille{background:var(--jaune);color:var(--encre);border-radius:999px;font-size:.75rem;font-weight:800;min-width:1.4rem;text-align:center;padding:0 .4rem;display:inline-block}
.admin .space-nav a.active .pastille{background:var(--rouge);color:#fff}

.welcome{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;background:#edf2f8;border:1px solid #d8e1ed;border-left:5px solid var(--rouge);border-radius:10px;padding:1.4rem 1.5rem;position:relative;overflow:hidden}
.welcome::before{content:none}
.welcome>*{position:relative}
.welcome.admin{background:linear-gradient(135deg,var(--encre) 0%,#2b3652 100%);color:#fff}
.welcome.admin h1{color:var(--jaune)}
.welcome h1{margin:0}
.welcome-avatar{width:64px;height:64px;border-radius:12px;background:#243b61;color:#fff;display:grid;place-items:center;font-family:var(--sans);font-size:1.7rem;font-weight:800;border:3px solid #fff;flex-shrink:0;overflow:hidden}
.welcome-avatar img{width:100%;height:100%;object-fit:cover}
.welcome-body{flex:1;min-width:220px}
.welcome-body p{margin:.2rem 0}
.badge-pill{display:inline-block;background:#fff;color:#29466e;font-weight:750;padding:.15rem .65rem;border:1px solid #cbd6e4;border-radius:6px;font-size:.82rem}
.level{max-width:360px;margin-top:.5rem}.level small{display:block;color:var(--encre-douce)}
.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:1.2rem 0}
.action{display:block;text-decoration:none;color:var(--encre);background:#fff;border:1px solid var(--bord);border-left:4px solid #9aacc5;border-radius:9px;padding:1rem 1.1rem;transition:background .12s,border-color .12s}
.action:hover{background:#f1f5fa;border-left-color:var(--rouge)}
.action .emoji{font-size:1.8rem;display:block}.action strong{font-family:var(--serif);font-size:1.1rem;display:block}.action span.d{font-size:.88rem;color:var(--encre-douce)}
.space-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.space-title h1{margin:0}
.empty{text-align:center;padding:2rem 1rem;background:#fff;border:2px dashed var(--bord);border-radius:var(--rayon)}
.empty .emoji{font-size:2.4rem;display:block}

.stat{display:flex;flex-direction:column;align-items:center;text-align:center}
.stat-num{font-family:var(--serif);font-size:2rem;font-weight:800;color:var(--rouge);line-height:1.1}
a.card.stat{text-decoration:none;color:var(--encre)}a.card.stat:hover{border-color:var(--rouge)}
.chart{width:100%;height:auto}
.chart text{font-size:11px;fill:var(--encre-douce)}.chart .bar{fill:var(--rouge)}.chart .bar2{fill:var(--jaune)}
.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1rem}
.toolbar input[type=search],.toolbar input[type=text]{max-width:300px;margin:0}.toolbar select{width:auto;margin:0}

/* Quiz */
/* ---------- Pages légales et centre de confidentialité ---------- */
.legal-container{max-width:1000px}
.legal-page{max-width:900px;margin:1.5rem auto 3rem;padding:clamp(1.1rem,3vw,2.2rem);border:1px solid var(--bord);border-radius:20px;background:#fff;box-shadow:var(--ombre)}
.legal-heading{max-width:760px;margin-bottom:1.6rem}
.legal-heading h1{margin:.35rem 0 .7rem;letter-spacing:-.035em}
.legal-heading>p{color:var(--encre-douce)}
.legal-page section{margin:2rem 0}
.legal-page section h2{padding-bottom:.45rem;border-bottom:1px solid var(--bord);font-size:1.25rem}
.legal-page p,.legal-page li{max-width:78ch}
.legal-alert{margin:1rem 0 1.5rem;padding:1rem 1.1rem;border:1px solid #e8c66b;border-left:5px solid #d5a936;border-radius:10px;background:#fff8e4;color:#503e16}
.legal-alert strong{display:block;margin-bottom:.2rem}
.legal-toc{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0 1.8rem}
.legal-toc a{padding:.36rem .65rem;border:1px solid var(--bord);border-radius:999px;background:#f7f9fc;font-size:.8rem;text-decoration:none}
.legal-toc a:hover{border-color:#9cb4d6;background:#eef4fc}
.legal-page .table-wrap{margin:1rem 0;overflow-x:auto}
.legal-page table{width:100%;min-width:660px;border-collapse:collapse}
.legal-page th,.legal-page td{padding:.65rem .7rem;border-bottom:1px solid var(--bord);text-align:left;vertical-align:top}
.legal-page th{background:#f3f6fa;font-size:.86rem}
.legal-details{display:grid;grid-template-columns:minmax(180px,.7fr) 2fr;gap:.55rem 1rem}
.legal-details dt{font-weight:750}.legal-details dd{margin:0;color:var(--encre-douce)}
.legal-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.privacy-actions{margin-top:-1.25rem;position:relative}
.privacy-actions .card{border-top:4px solid var(--jaune)}
.privacy-actions h2{margin:.35rem 0;font-size:1.15rem}
.privacy-action-number{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:9px;background:#edf2f9;color:#31588d;font-size:.78rem;font-weight:850}
.privacy-actions .card>p{color:var(--encre-douce);font-size:.9rem}
.privacy-request-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.8fr);align-items:start;gap:1rem}
.form-stack{display:grid;gap:.9rem}
.form-stack label{display:grid;gap:.35rem;font-weight:700}
.form-stack input,.form-stack select,.form-stack textarea,.privacy-admin-card select{width:100%;max-width:100%;padding:.65rem .75rem;border:1px solid #bcc9da;border-radius:8px;background:#fff;color:var(--encre);font:inherit}
.form-stack textarea{resize:vertical}
.form-stack .muted,.form-stack p{margin:.2rem 0}
.privacy-account-email{padding:.7rem .8rem;border-radius:9px;background:#f1f5fa}
.privacy-side-note{padding:1.2rem}
.privacy-side-note h2{font-size:1.3rem}
.privacy-timeline{display:grid;gap:.9rem;margin:1rem 0;padding:0;list-style:none;counter-reset:privacy-step}
.privacy-timeline li{position:relative;display:grid;gap:.15rem;padding-left:2.4rem;counter-increment:privacy-step}
.privacy-timeline li::before{position:absolute;left:0;top:.05rem;display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:#e8eff9;color:#31588d;content:counter(privacy-step);font-weight:800}
.privacy-timeline span{color:var(--encre-douce);font-size:.86rem}
.privacy-profile-card{display:flex;align-items:center;gap:1rem;margin:1rem 0;padding:1.1rem 1.3rem;border:1px solid var(--bord);border-radius:16px;background:linear-gradient(110deg,#eef4fc,#fff)}
.privacy-profile-card h2,.privacy-profile-card p{margin:0 0 .25rem}
.privacy-profile-avatar{display:grid;place-items:center;flex:0 0 3.6rem;height:3.6rem;border-radius:50%;background:#234b83;color:#fff;font-size:1.45rem;font-weight:800}
.privacy-account-grid .card{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}
.privacy-account-grid .card>p{margin:.1rem 0;color:var(--encre-douce);font-size:.9rem}
.privacy-account-grid .card>a.btn{margin-top:auto}
.privacy-delete-card{margin:2rem 0;border-color:#e8c2c2;background:#fffafa}
.privacy-delete-card h2{margin:.35rem 0}
.privacy-delete-card>p{max-width:82ch}
.privacy-admin-list{display:grid;gap:1rem}
.privacy-admin-card{border-left:4px solid #e2b84a}
.privacy-admin-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start}
.privacy-admin-heading h2{margin:.45rem 0;font-size:1.2rem}
.privacy-admin-heading time{color:var(--encre-douce);font-size:.82rem}
.privacy-admin-message{margin:1rem 0;padding:.85rem 1rem;border-radius:9px;background:#f5f7fa;white-space:pre-wrap}
.privacy-admin-card form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.privacy-admin-card form.form-stack{display:grid;align-items:stretch}
.privacy-admin-card form label{font-weight:700}
.privacy-admin-card form select{width:auto;min-width:200px}
.privacy-close-form label{display:flex;align-items:flex-start;gap:.5rem}
.consent-check{display:flex!important;grid-template-columns:auto 1fr;align-items:flex-start;gap:.55rem!important;font-size:.83rem;font-weight:500!important;line-height:1.45}
.consent-check input{width:1.1rem!important;height:1.1rem;flex:0 0 auto;margin:.15rem 0 0;accent-color:var(--rouge)}
.oauth-consent-form{display:grid;gap:.8rem}
@media(max-width:760px){
  .privacy-request-layout{grid-template-columns:1fr}
  .privacy-actions{grid-template-columns:1fr}
  .privacy-actions{margin-top:1rem}
  .legal-details{grid-template-columns:1fr;gap:.1rem}
  .legal-details dd{margin-bottom:.65rem}
  .privacy-admin-heading{display:block}
}

/* ---------- Espace confidentiel d'aide scolaire ---------- */
.school-portal{min-height:100vh;background:linear-gradient(180deg,#edf2e8 0%,#e2e7d7 100%)}
.school-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem max(1rem,calc((100vw - 1100px)/2));border-bottom:1px solid var(--line);background:rgba(255,255,255,.68);backdrop-filter:blur(5px)}
.school-brand{display:flex;align-items:center;gap:.55rem;color:var(--ink);font:800 1.2rem var(--serif);text-decoration:none}
.school-brand span{color:var(--sage-strong);font:700 .82rem var(--sans)}
.school-header nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.school-header nav a,.school-header nav button{border:0;background:none;color:#3d4f46;font:700 .84rem var(--sans);text-decoration:none;cursor:pointer}
.school-header nav a:hover,.school-header nav button:hover{color:var(--sage-deep)}
.school-main{min-height:calc(100vh - 160px);max-width:980px;padding-top:2rem;padding-bottom:3rem}
.school-footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem max(1rem,calc((100vw - 1100px)/2));background:#1d3128;color:#fff;font-size:.8rem}
.school-footer p{margin:0}
.school-footer a{color:#d5e4c0;font-weight:750}
.school-footer nav,.admin-footer nav{display:flex;align-items:center;justify-content:center;gap:.45rem 1rem;flex-wrap:wrap}
.school-footer nav a{color:inherit;font-size:.75rem;font-weight:650;text-decoration:none}
.school-footer nav a:hover,.admin-footer nav a:hover{text-decoration:underline}
.school-landing{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);align-items:center;gap:1.5rem;max-width:1060px;margin:1rem auto;padding:clamp(1.5rem,5vw,4rem);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.52),rgba(239,245,232,.82));border:1px solid rgba(93,114,101,.18);box-shadow:var(--shadow)}
.school-landing-copy h1{max-width:700px;margin:.4rem 0 1rem;font-size:clamp(2rem,5vw,3.5rem);letter-spacing:-.04em;color:var(--sage-deep)}
.school-landing-copy>p{max-width:65ch;color:#4d5a6d;font-size:1.05rem;line-height:1.75}
.school-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:1rem}
.school-privacy-note{padding:.85rem 1rem;border-left:4px solid #d9b67f;background:#fff;color:#46546a;font-size:.85rem;line-height:1.55}
.school-urgent{border-color:#e0c7be;background:#fff9f7}
.school-urgent h2{font-size:1.15rem;color:var(--sage-deep)}
.school-urgent p{margin:.4rem 0;color:#573c3c;font-size:.86rem}
.school-how{max-width:800px;margin:3rem auto}
.school-how ol{display:grid;gap:.75rem;padding-left:1.5rem}
.school-how li{padding-left:.2rem;color:#405148}
.school-page-heading{margin:0 0 1.3rem}
.school-page-heading h1{margin:.25rem 0 .45rem;letter-spacing:-.035em;color:var(--sage-deep)}
.school-page-heading p{max-width:78ch;color:var(--muted)}
.school-form-card{max-width:760px;margin:1rem auto;padding:1.4rem;border:1px solid rgba(93,114,101,.16);border-radius:26px;background:rgba(255,255,255,.7);box-shadow:0 12px 28px rgba(32,46,39,.08)}
.school-form-card h2{font-size:1.15rem}
.school-followup-info{margin:0 0 1rem;padding:1rem 1.1rem;border-left:4px solid var(--jaune);background:#fffaf2;border-radius:12px;color:#43505f}
.school-followup-info strong{display:block;margin-bottom:.3rem;color:var(--sage-deep)}
.school-followup-info p,.school-followup-info small{display:block;margin:0 0 .35rem}
.school-form{display:grid;gap:1rem}
.school-form label{display:grid;gap:.35rem;font-weight:750;color:var(--sage-deep)}
.school-form input,.school-form select,.school-form textarea{width:100%;max-width:100%;padding:.75rem .85rem;border:1px solid #c7d1c4;border-radius:12px;background:#f9faf7;color:var(--ink);font:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.school-form textarea{resize:vertical;min-height:110px}
.school-form label small{color:var(--muted);font-size:.78rem;font-weight:450;line-height:1.45}
.school-form .btn{justify-self:start}
.school-wizard-progress{display:grid;gap:.35rem;color:var(--muted);font-size:.9rem;font-weight:700}
.school-wizard-progress p{margin:0}
.school-wizard-progress progress{width:100%;height:.65rem;accent-color:#56745c}
.school-wizard-step[hidden],.school-wizard-progress[hidden],.school-wizard-actions[hidden]{display:none}
.school-wizard-step h2{margin:.2rem 0 .8rem;color:var(--sage-deep)}
.school-wizard-actions{display:flex;justify-content:space-between;gap:.75rem;padding-top:.3rem}
.school-wizard-actions [hidden]{display:none}
.school-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.school-check{display:flex!important;align-items:flex-start;gap:.65rem!important;padding:.8rem .7rem;border:1px solid #d4dccd;border-radius:14px;background:#f5f8f2;font-weight:550!important;line-height:1.5;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.school-check input{width:1.1rem;height:1.1rem;flex:0 0 auto;margin:.2rem 0 0;accent-color:#2d4a3a}
.school-check span{display:block;color:#2b3a32}
.school-check:has(input:checked),.school-check:hover{background:#eaf2e7;border-color:#7a9075;box-shadow:0 0 0 3px rgba(122,144,117,.12)}
.school-identity-fields{display:grid;gap:.75rem;padding:1rem;border:1px solid #d9e2d8;border-radius:16px;background:#f7f9f5}
.school-identity-fields>p{margin:0;color:#46546a;font-size:.88rem}
.school-confirmation{max-width:700px;margin:2rem auto;padding:clamp(1.4rem,4vw,2.5rem);border-top:5px solid var(--ok);text-align:center;background:rgba(255,255,255,.76);border-radius:24px;box-shadow:0 14px 32px rgba(29,42,32,.08)}
.school-confirmation-mark{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto .7rem;border-radius:50%;background:#dcfce7;color:var(--ok);font-size:1.5rem;font-weight:900}
.school-confirmation h1{font-size:clamp(1.6rem,4vw,2.2rem);color:var(--sage-deep)}
.school-confirmation p{color:#505d70}
.school-list{display:grid;gap:.75rem}
.school-appointment-card{display:grid;gap:.7rem}
.school-staff-card,.school-case-card,.school-class-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.school-staff-card>div,.school-case-card>div{display:grid;gap:.1rem}
.school-staff-card>div span,.school-case-card>div span,.school-case-card>span{color:var(--encre-douce);font-size:.83rem}
.school-staff-card form{margin:0}
.school-case-card{color:var(--encre);text-decoration:none}
.school-case-card:hover{border-color:#aabbd3;color:var(--encre)}
.school-case-card>strong{color:var(--encre)}
.school-case-content{max-width:820px}
.school-case-content h2{margin-top:1.2rem;font-size:1.05rem}
.school-case-content h2:first-child{margin-top:0}
.school-report-text{padding:1rem;border-radius:10px;background:#f5f7fa;white-space:normal;overflow-wrap:anywhere}
.school-follow-up p{margin-bottom:0;white-space:normal;overflow-wrap:anywhere}
.school-stat{display:grid;gap:.2rem;text-decoration:none}
.school-stat strong{color:var(--rouge);font:800 1.8rem var(--serif)}
.school-access-request{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;flex-wrap:wrap}
.school-access-request h2{margin:.5rem 0;font-size:1.2rem}
.school-access-request p{margin:.3rem 0}
.school-chat-thread{display:grid;gap:.75rem}
.school-chat-message{max-width:min(100%,720px);margin:0}
.school-chat-mine{justify-self:end;background:#edf4ff}
.school-chat-message p{margin:.5rem 0;white-space:normal;overflow-wrap:anywhere}
.school-chat-message time{color:var(--encre-douce);font-size:.78rem}
.school-timeline{display:grid;gap:.8rem;padding-left:1.4rem}
.school-timeline li{padding-left:.3rem}
.school-timeline li strong,.school-timeline li span{display:block}
.school-summary{display:grid;grid-template-columns:minmax(130px,.35fr) minmax(0,1fr);gap:.5rem 1rem}
.school-summary dt{font-weight:750}
.school-summary dd{margin:0;overflow-wrap:anywhere}
.school-choice-group{display:grid;gap:.55rem;padding:1rem;border:1px solid var(--bord);border-radius:10px}
.school-choice-group legend{padding:0 .35rem;font-weight:750}
.school-choice-group .school-check{margin:0}
@media(max-width:720px){
  .school-landing{grid-template-columns:1fr;padding:1.4rem}
  .school-header{align-items:flex-start;flex-direction:column}
  .school-header nav{gap:.35rem .7rem}
  .school-footer{align-items:flex-start;flex-direction:column}
  .school-summary{grid-template-columns:1fr;gap:.2rem}
  .school-summary dd{margin-bottom:.55rem}
  .school-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .school-form-card{padding:1.1rem;border-radius:20px}
  .school-form input,.school-form select,.school-form textarea{min-height:48px;font-size:16px}
  .school-header nav a,.school-header nav button{min-height:44px;padding:.55rem .6rem}
  .school-form .btn,.school-actions .btn{min-height:46px}
  .school-wizard-actions .btn{width:auto;justify-self:auto}
}
@media(max-width:520px){
  .school-choice-grid{grid-template-columns:1fr}
  .school-main{padding:1.2rem .8rem 2rem}
  .school-landing{margin:.35rem auto;padding:1.15rem;border-radius:22px}
  .school-landing-copy h1{font-size:clamp(1.9rem,9vw,2.5rem)}
  .school-actions{display:grid;grid-template-columns:1fr}
  .school-actions .btn{text-align:center}
  .school-form-card{margin:.6rem auto;padding:1rem}
  .school-form .btn{width:100%;justify-self:stretch}
  .school-wizard-actions{display:grid;grid-template-columns:1fr 1fr}
  .school-wizard-actions .btn{width:100%}
  .school-wizard-actions [data-wizard-submit]{grid-column:1/-1}
}

/* ---------- Direction visuelle Écoute-moi ---------- */
.school-portal{--school-ink:#25333d;--school-paper:#f5f7f8;--school-accent:#28735f;--school-gold:#d7a24a;min-height:100vh;background:var(--school-paper);color:var(--school-ink)}
.school-portal h1,.school-portal h2,.school-portal h3{font-family:var(--sans);font-weight:650;letter-spacing:-.02em}
.school-header{position:relative;z-index:10;min-height:64px;padding:.6rem max(1.25rem,calc((100vw - 1160px)/2));border:0;border-bottom:1px solid #e1e5e7;background:#fff;color:var(--school-ink)}
.school-brand{gap:.7rem;color:var(--school-ink)}
.school-brand .school-brand-name{display:flex;flex-direction:column;color:var(--school-ink);font:700 1.08rem var(--sans);line-height:1.1}
.school-brand-name small{margin-top:.18rem;color:#65737b;font:500 .72rem var(--sans)}
.school-header>a:last-child:not(.school-brand){padding:.5rem .75rem;border:1px solid #d7dddf;border-radius:999px;color:#41515a;font-size:.82rem;font-weight:700;text-decoration:none;white-space:nowrap}
.school-header>a:last-child:not(.school-brand):hover{background:#f1f4f5;color:var(--school-ink)}
.school-nav{display:flex;align-items:center;gap:.25rem}
.school-header .school-nav a,.school-header .school-nav button{min-height:38px;padding:.5rem .65rem;border-radius:4px;color:#46575f;font-size:.84rem}
.school-header .school-nav a:hover,.school-header .school-nav a:focus-visible,.school-header .school-nav button:hover{background:#f0f4f2;color:var(--school-ink)}
.school-header .school-nav form{margin:0 0 0 .35rem}
.school-header .school-nav form button{border:1px solid #d7dddf}
.school-nav-toggle{display:none}
.school-main{width:min(100% - 2rem,1120px);max-width:1120px;min-height:calc(100vh - 160px);padding:clamp(2rem,5vw,4rem) 0}
.school-page-heading{max-width:780px;margin:0 auto 1.6rem}
.school-page-heading h1{max-width:28ch;color:var(--school-ink);font-family:var(--sans);font-size:clamp(1.8rem,3vw,2.45rem);font-weight:650;line-height:1.15}
.school-page-heading p{max-width:68ch;color:#58645e;font-size:1rem}
.school-landing{position:relative;grid-template-columns:minmax(0,1.5fr) minmax(250px,.7fr);gap:clamp(1.5rem,4vw,3rem);max-width:1080px;margin:1.5rem auto 0;padding:clamp(1.5rem,4vw,3rem);overflow:hidden;border:1px solid #e1e5e7;border-radius:6px;background:#fff;box-shadow:0 2px 7px rgba(30,45,55,.035)}
.school-landing::before{display:none}
.school-landing-copy{position:relative;z-index:1}
.school-eyebrow,.school-urgent-label{display:inline-flex;align-items:center;gap:.45rem;color:#617078;font-size:.72rem;font-weight:700;letter-spacing:.04em}
.school-eyebrow>span{width:.45rem;height:.45rem;border-radius:50%;background:var(--school-accent)}
.school-landing-copy h1{max-width:19ch;margin:.55rem 0 .8rem;color:var(--school-ink);font-family:var(--sans);font-size:clamp(2rem,4vw,3rem);font-weight:650;line-height:1.1;letter-spacing:-.035em}
.school-landing-copy>p:not(.school-privacy-note){max-width:55ch;color:#515e57;font-size:1.08rem;line-height:1.7}
.school-actions{gap:.6rem;margin:1.15rem 0 1.25rem}
.school-actions .btn{min-height:42px;padding:.6rem .9rem;border-radius:4px;background:var(--school-accent);border-color:var(--school-accent)}
.school-actions .btn-outline{border-color:#cbd3d5;background:#fff;color:#344750!important}
.school-actions .btn-outline:hover{border-color:#71847e;background:#f6f8f7}
.school-privacy-note{max-width:65ch;margin:0;padding:.7rem 0 0;border:0;border-top:1px solid #e4e8e9;background:transparent;color:#606e75;font-size:.82rem;line-height:1.55}
.school-privacy-note strong{display:block;margin-bottom:.15rem;color:var(--school-ink)}
.school-urgent{position:relative;align-self:center;overflow:hidden;margin:0;padding:1.2rem;border:1px solid #ead9b7;border-left:4px solid #c79239;border-radius:4px;background:#fffaf0;color:var(--school-ink)}
.school-urgent-label{color:#765b2f}
.school-urgent h2{max-width:16ch;margin:.65rem 0 .5rem;color:var(--school-ink);font-family:var(--sans);font-size:1.25rem;font-weight:650;line-height:1.25}
.school-urgent p{color:#4f5b54;font-size:.9rem;line-height:1.6}
.school-urgent p:last-of-type{margin-bottom:0}
.school-urgent p strong{display:inline;font-size:1rem}
.school-urgent-rule{display:none}
.school-how{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:2rem;max-width:1000px;margin:2.5rem auto 2rem;padding:0 1rem}
.school-how-heading h2{margin:.35rem 0;color:var(--school-ink);font-family:var(--sans);font-size:1.55rem;font-weight:650}
.school-how-heading p{color:#657069}
.school-how ol{counter-reset:school-step;gap:0;margin:0;padding:0;list-style:none}
.school-how li{position:relative;min-height:3.4rem;padding:.7rem .5rem .7rem 2.5rem;border-top:1px solid #e1e5e7;color:#36474f}
.school-how li::before{position:absolute;left:.2rem;top:.72rem;display:grid;place-items:center;width:1.55rem;height:1.55rem;border:1px solid #d2dadc;border-radius:4px;color:#52665a;content:counter(school-step,decimal-leading-zero);counter-increment:school-step;font-size:.66rem;font-weight:700}
.school-form-card{border:1px solid #e1e5e7;border-radius:6px;background:#fff;box-shadow:0 2px 7px rgba(30,45,55,.035)}
.school-form-card h2{font-family:var(--sans);font-size:1.3rem;font-weight:650}
.school-form{gap:1.15rem}
.school-form label{color:#32483d;font-size:.94rem}
.school-form input,.school-form select,.school-form textarea{border-color:#cbd3d5;border-radius:4px;background:#fff;box-shadow:none}
.school-form input:focus,.school-form select:focus,.school-form textarea:focus{border-color:#718a78;outline:3px solid rgba(113,138,120,.16);outline-offset:1px}
.school-form .btn{border:1px solid var(--school-accent);border-radius:4px;background:var(--school-accent)}
.school-form .btn:hover{border-color:#205b4b;background:#205b4b}
.school-login-steps{display:grid;gap:.55rem;margin:0 0 1.4rem;padding:0;list-style:none}
.school-login-steps li{display:grid;gap:.15rem;padding:.7rem .8rem;border-left:3px solid var(--school-accent);background:#f5f7f5;color:#42514a}
.school-login-steps li strong{color:var(--school-ink);font-size:.9rem}
.school-login-steps li span,.school-login-help,.school-code-support{color:#5b6861;font-size:.88rem;line-height:1.55}
.school-login-help{margin:1rem 0 0}
.school-login-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin:1rem auto 0;font-size:.88rem}
.school-login-links a,.school-code-actions>a{color:#245b4a;text-underline-offset:3px}
.school-code-instructions{display:flex;align-items:center;gap:.8rem;margin:0 0 1.1rem;padding:.85rem 1rem;border:1px solid #d9e5dc;background:#f4f8f4;color:#30463b}
.school-code-instructions p{margin:0;line-height:1.5}
.school-code-step-number{display:grid;flex:0 0 2rem;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--school-accent);color:#fff;font-weight:750}
.school-code-actions{display:grid;justify-items:start;gap:.8rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid #e1e5e7}
.school-code-actions form{margin:0}
.school-code-actions .btn{min-height:42px;padding:.55rem .8rem;border:1px solid #cbd3d5;border-radius:4px;background:#fff;color:#344750!important}
.school-code-actions .btn:hover{background:#f6f8f7}
.school-code-support{margin:1rem 0 0}
.school-choice-group{border-color:#e1e5e7;border-radius:4px}
.school-check{border-radius:4px;background:#f7f8f7}
.school-check:has(input:checked){background:#e8eee5;border-color:#788f7a;box-shadow:0 0 0 2px rgba(120,143,122,.13)}
.school-footer{min-height:62px;justify-content:center;padding:1rem max(1.25rem,calc((100vw - 1120px)/2));border-top:1px solid #e1e5e7;background:#fff;color:#65737b;font-size:.78rem}
.school-list .card,.school-case-card,.school-staff-card,.school-class-card{border-radius:7px;box-shadow:0 3px 12px rgba(32,53,45,.04)}
.school-stat strong{color:var(--school-accent)}
.school-chat-mine{background:#edf0e8}
.school-wizard-progress progress{accent-color:var(--school-accent)}
.school-wizard-step h2{font-family:var(--serif);font-size:1.75rem}
.school-wizard-actions .btn-outline{border-radius:7px}
.school-portal :focus-visible{outline-color:#b3523b}
@media(max-width:720px){
  .school-header{min-height:62px;align-items:center;flex-direction:row;padding:.6rem 1rem}
  .school-nav-toggle{display:none}
  .school-portal.school-nav-enhanced .school-nav-toggle{display:grid;place-items:center;width:42px;height:42px;margin-left:auto;border:1px solid #d7dddf;border-radius:4px;background:#fff;color:#40515a;font-size:1.15rem;cursor:pointer}
  .school-portal.school-nav-enhanced .school-nav-toggle[aria-expanded="true"]{background:#f1f4f5}
  .school-portal.school-nav-enhanced .school-header .school-nav{display:none;position:absolute;top:100%;left:0;right:0;align-items:stretch;gap:.15rem;padding:.6rem 1rem 1rem;border-top:1px solid #e1e5e7;background:#fff;box-shadow:0 8px 14px rgba(30,45,55,.09)}
  .school-portal.school-nav-enhanced .school-nav-toggle[aria-expanded="true"]~.school-nav{display:flex;flex-direction:column}
  .school-header .school-nav a,.school-header .school-nav button{width:100%;text-align:left}
  .school-header .school-nav form{margin:.25rem 0 0}
  .school-header .school-nav form button{width:100%;text-align:center}
  .school-main{width:min(100% - 1.25rem,1120px);padding:1.5rem 0 2.5rem}
  .school-landing{grid-template-columns:1fr;gap:1.6rem;padding:2.1rem 1.35rem 1.6rem}
  .school-landing-copy h1{max-width:22ch;font-size:clamp(1.9rem,8vw,2.5rem)}
  .school-urgent{max-width:none}
  .school-how{grid-template-columns:1fr;gap:.5rem;margin:3rem auto 1rem;padding:0 .4rem}
  .school-form-card{border-radius:6px}
}
@media(max-width:520px){
  .school-brand .school-brand-name{font-size:1.05rem}
  .school-landing{margin:.6rem 0 0;border-radius:5px}
  .school-landing-copy>p:not(.school-privacy-note){font-size:1rem}
  .school-actions{display:flex;flex-direction:column;align-items:stretch}
  .school-actions .btn{text-align:center}
  .school-form-card{margin:.65rem auto;padding:1rem}
  .school-form .btn{width:100%;justify-self:stretch}
}

/* Navigation and work area for signed-in school accounts. */
.school-app{display:flex;min-height:100vh;background:#f5f6f8}
.school-sidebar{position:sticky;top:0;display:flex;flex:0 0 250px;flex-direction:column;width:250px;height:100vh;padding:1.35rem 1rem .8rem;background:#180d2d;color:#f4f2f8}
.school-sidebar .school-brand{min-height:58px;margin:0 -.15rem 1.6rem;padding:.25rem .5rem;color:#fff}
.school-sidebar .school-brand-name{color:#fff;font-size:1.2rem}
.school-sidebar .school-brand-name small{margin-top:.35rem;color:#aaa2ba;font-size:.69rem}
.school-sidebar-label{display:block;margin:.3rem .65rem .65rem;color:#9690a6;font-size:.67rem;font-weight:700;letter-spacing:.08em}
.school-sidebar-section{margin-top:1.6rem}
.school-nav{display:flex;flex-direction:column;gap:.25rem}
.school-sidebar .school-nav a{display:flex;align-items:center;gap:.8rem;min-height:44px;padding:.65rem .75rem;border-radius:5px;color:#e3e0ea;font-size:.9rem;font-weight:600;text-decoration:none}
.school-sidebar .school-nav a>svg{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.school-sidebar .school-nav a:first-child>svg{fill:currentColor;stroke:none}
.school-sidebar .school-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.school-sidebar .school-nav a.active{background:#2b1c43;color:#fff}
.school-sidebar .school-nav a.active>span{color:#a983ff}
.school-sidebar-account{margin-top:auto;padding:.85rem .25rem .2rem;border-top:1px solid rgba(255,255,255,.12)}
.school-account-role{display:block;padding:.2rem .45rem .7rem;color:#c5bfce;font-size:.78rem}
.school-sidebar-account form{margin:0}
.school-sidebar-account button{display:flex;align-items:center;gap:.7rem;width:100%;min-height:40px;padding:.55rem .65rem;border:0;border-radius:4px;background:transparent;color:#e3e0ea;font:inherit;font-size:.84rem;text-align:left;cursor:pointer}
.school-sidebar-account button:hover{background:rgba(255,255,255,.07);color:#fff}
.school-sidebar-account button svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.school-workspace{display:flex;min-width:0;min-height:100vh;flex:1;flex-direction:column}
.school-topbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;gap:.9rem;min-height:64px;padding:0 clamp(1rem,3vw,2.1rem);border-bottom:1px solid #e4e7ea;background:#fff}
.school-topbar-title{color:#33434c;font-size:.9rem;font-weight:650}
.school-topbar>a{margin-left:auto;color:#5c6b72;font-size:.82rem;text-decoration:none}
.school-topbar>a:hover{color:var(--school-accent);text-decoration:underline}
.school-main{width:min(100% - 3rem,1160px);max-width:1160px;min-height:calc(100vh - 126px);padding:2rem 0 3rem}
.school-workspace>.school-footer{min-height:62px;justify-content:flex-start;padding:1rem clamp(1rem,3vw,2.1rem);border-top:1px solid #e4e7ea;background:#fff;color:#67747b;font-size:.77rem}
.school-workspace>.school-footer p{margin:0}
.school-nav-toggle{display:none}
@media(max-width:720px){
  .school-app{display:block}
  .school-sidebar{position:relative;top:auto;width:100%;height:auto;min-height:0;padding:.7rem 1rem;background:#180d2d}
  .school-sidebar .school-brand{min-height:42px;margin:0;padding:.2rem .3rem}
  .school-sidebar-label,.school-sidebar-account{display:none}
  .school-sidebar .school-nav{flex-direction:row;flex-wrap:wrap;gap:.25rem;margin-top:.55rem}
  .school-sidebar .school-nav a{flex:1 1 auto;width:auto;min-height:40px;padding:.5rem .6rem;font-size:.82rem}
  .school-sidebar .school-nav a>svg{width:1rem;height:1rem}
  .school-workspace{min-height:calc(100vh - 110px)}
  .school-topbar{position:sticky;min-height:56px;padding:0 .85rem}
  .school-main{width:min(100% - 1.5rem,1160px);padding:1.2rem 0 2rem}
  .school-workspace>.school-footer{padding:.8rem 1rem}
  .school-portal.school-nav-enhanced .school-sidebar{position:fixed;z-index:22;top:0;left:0;width:min(82vw,290px);height:100dvh;padding:1.1rem 1rem .8rem;transform:translateX(-102%);transition:transform .18s ease}
  .school-portal.school-nav-enhanced .school-sidebar .school-brand{min-height:58px;margin:0 -.15rem 1.4rem;padding:.25rem .5rem}
  .school-portal.school-nav-enhanced .school-sidebar-label{display:block}
  .school-portal.school-nav-enhanced .school-sidebar-account{display:block}
  .school-portal.school-nav-enhanced .school-sidebar .school-nav{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:.25rem;margin-top:0}
  .school-portal.school-nav-enhanced .school-sidebar .school-nav a{flex:none;width:100%;min-height:44px;padding:.65rem .75rem;font-size:.9rem}
  .school-portal.school-nav-enhanced .school-sidebar-section{margin-top:1.6rem}
  .school-portal.school-menu-open .school-sidebar{transform:translateX(0)}
  .school-portal.school-nav-enhanced .school-nav-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid #d7dddf;border-radius:4px;background:#fff;color:#40515a;font-size:1.1rem;cursor:pointer}
  .school-portal.school-menu-open .school-app::before{position:fixed;z-index:20;inset:0;background:rgba(24,13,45,.38);content:""}
}
@media(max-width:520px){
  .school-sidebar .school-nav a{justify-content:flex-start}
  .school-topbar>a{font-size:.77rem}
  .school-main{width:min(100% - 1.25rem,1160px)}
}

/* Maquette Écoute-moi : parcours élève */
.school-portal{
  --student-ink:#25254a;
  --student-muted:#696986;
  --student-paper:#f6f5fc;
  --student-lilac:#ebe8fa;
  --student-purple:#7868c7;
  --student-teal:#47c9bf;
  min-height:100vh;
  background:var(--student-paper);
  color:var(--student-ink);
}
.school-portal :focus-visible{outline:3px solid #47a9a4;outline-offset:3px}
.school-portal h1,.school-portal h2,.school-portal h3{color:var(--student-ink)}
.student-app-shell{display:flex;min-height:100vh;flex-direction:column}
.student-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem max(1.25rem,calc((100vw - 1080px)/2));background:#fff}
.student-brand{display:flex;align-items:center;gap:.65rem;color:var(--student-ink);font-size:1rem;font-weight:800;text-decoration:none}
.student-brand>span:last-child{display:grid;gap:.12rem}
.student-brand small{color:var(--student-muted);font-size:.72rem;font-weight:500}
.student-brand-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--student-lilac);color:var(--student-purple)}
.student-brand-mark svg{width:1.2rem;height:1.2rem;fill:currentColor}
.student-topbar-help{color:var(--student-muted);font-size:.85rem;font-weight:700;text-decoration:none}
.student-topbar-help:hover,.student-school-link:hover{color:var(--student-purple);text-decoration:underline}
.student-main{width:min(100% - 2rem,1080px);max-width:1080px;min-height:0;flex:1;padding:clamp(1.2rem,3vw,2.2rem) 0 2.5rem}
.school-landing{position:relative;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:1rem;max-width:none;margin:0;padding:clamp(1.5rem,4vw,3rem);overflow:hidden;border:0;border-radius:30px;background:#e9e7f8;box-shadow:none}
.school-landing-copy{max-width:570px}
.school-eyebrow{color:var(--student-purple);font-size:.72rem;font-weight:800;letter-spacing:.09em}
.school-landing-copy h1{max-width:16ch;margin:.65rem 0 .8rem;color:var(--student-ink);font-size:clamp(2.3rem,5vw,3.7rem);font-weight:800;line-height:1.04;letter-spacing:-.045em}
.school-landing-copy>p:not(.school-privacy-note){max-width:46ch;color:#555675;font-size:1.06rem;line-height:1.65}
.school-primary-action,.school-actions .btn,.school-form .btn,.school-confirmation .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:50px;padding:.8rem 1.2rem;border:0;border-radius:15px;background:var(--student-teal);color:#153d48!important;font-size:.95rem;font-weight:800;text-decoration:none;box-shadow:0 5px 0 rgba(26,122,125,.1)}
.school-primary-action:hover,.school-actions .btn:hover,.school-form .btn:hover,.school-confirmation .btn:hover{background:#35bdb3;transform:translateY(-1px)}
.school-actions{gap:.7rem;margin:1.1rem 0}
.school-landing-illustration{display:grid;place-items:center;min-height:250px}
.school-landing-illustration svg{width:min(100%,350px);height:auto;overflow:visible}
.school-landing-illustration .illustration-cloud{fill:#d2cef0}
.school-landing-illustration .illustration-heart{fill:#69d1c7}
.school-landing-illustration .illustration-person-hair{fill:#4a4b70}
.school-landing-illustration .illustration-person-shirt{fill:#7566bf}
.school-landing-illustration .illustration-person-face{fill:#efc7a8}
.school-landing-illustration .illustration-detail{fill:none;stroke:#5c4051;stroke-linecap:round;stroke-width:2}
.school-landing-illustration .illustration-hand{fill:#efc7a8}
.student-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;max-width:900px;margin:1.2rem auto}
.student-shortcut{position:relative;display:flex;align-items:center;gap:.85rem;min-height:80px;padding:1rem 3rem 1rem 1rem;border:1px solid #e5e2f2;border-radius:20px;background:#fff;color:var(--student-ink);text-decoration:none;transition:transform .15s,border-color .15s}
.student-shortcut:hover{transform:translateY(-2px);border-color:#bdb5e4}
.student-shortcut-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;flex:0 0 auto;border-radius:14px;background:var(--student-lilac);color:var(--student-purple)}
.student-shortcut-icon svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.student-shortcut-teal .student-shortcut-icon{background:#def7f3;color:#278c88}
.student-shortcut-arrow{position:absolute;right:1rem;color:var(--student-purple);font-size:1.25rem}
.student-school-link{grid-column:1/-1;justify-self:center;color:var(--student-muted);font-size:.84rem;text-decoration:none}
.school-how{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:2rem;max-width:900px;margin:2.2rem auto;padding:0 .5rem}
.school-how-heading h2{font-size:1.55rem}
.school-how-heading p,.school-how li{color:var(--student-muted)}
.school-how li{border-color:#e6e3f0}
.school-how li::before{border-color:#d4d0e9;color:var(--student-purple)}
.student-safety-note{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:1rem auto 0;padding:.9rem 1rem;border-radius:16px;background:#fff4e6;color:#614f3a;font-size:.85rem;text-align:center}
.student-safety-note strong{color:#533f2b}
.student-bottom-nav{display:flex;justify-content:center;gap:.35rem;padding:.6rem max(1rem,calc((100vw - 780px)/2));border-top:1px solid #e9e7f1;background:#fff}
.student-bottom-nav>a,.student-bottom-nav>form{display:flex;min-width:110px;flex:1;justify-content:center;margin:0}
.student-bottom-nav>a,.student-bottom-nav button{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:.45rem .65rem;border:0;border-radius:12px;background:transparent;color:#76758f;font:700 .78rem var(--sans);text-decoration:none;cursor:pointer}
.student-bottom-nav>a.active{background:var(--student-lilac);color:var(--student-purple)}
.student-bottom-nav>a:hover,.student-bottom-nav button:hover{background:#f5f3fb;color:var(--student-ink)}
.student-bottom-nav svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.school-page-heading{max-width:760px;margin:0 auto 1.25rem}
.school-page-heading h1{margin:.35rem 0 .5rem;font-size:clamp(1.8rem,4vw,2.55rem);font-weight:800;letter-spacing:-.04em}
.school-page-heading p{max-width:68ch;color:var(--student-muted);line-height:1.6}
.school-form-card,.school-case-content,.school-confirmation,.school-case-card,.school-staff-card,.school-class-card,.school-list .card,.student-main>.card{border:1px solid #e8e5f1;border-radius:22px;background:#fff;box-shadow:0 8px 24px rgba(50,43,91,.045)}
.school-form-card{max-width:760px;margin:1rem auto;padding:clamp(1rem,3vw,1.8rem)}
.school-form-card h2{font-size:1.25rem}
.school-form{gap:1.15rem}
.school-form label{color:var(--student-ink);font-size:.94rem}
.school-form input,.school-form select,.school-form textarea{min-height:48px;border:1px solid #d9d6e7;border-radius:12px;background:#fcfbfe;color:var(--student-ink);box-shadow:none}
.school-form textarea{min-height:130px}
.school-form input:focus,.school-form select:focus,.school-form textarea:focus{border-color:var(--student-purple);outline:3px solid rgba(120,104,199,.16);outline-offset:1px}
.school-choice-group{gap:.6rem;border-color:#e7e3f1;border-radius:16px}
.school-choice-group legend{color:var(--student-ink)}
.school-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.school-check{min-height:64px;border-color:#e2def1;border-radius:16px;background:#f8f7fc}
.school-check span{color:var(--student-ink)}
.school-check input{accent-color:var(--student-purple)}
.school-check:has(input:checked){border-color:var(--student-purple);background:#efedfa;box-shadow:0 0 0 3px rgba(120,104,199,.12)}
.school-wizard-progress{gap:.45rem;color:var(--student-muted)}
.school-wizard-progress progress{height:.7rem;accent-color:var(--student-purple)}
.school-wizard-step h2{font-family:var(--sans);font-size:1.45rem;font-weight:800}
.school-wizard-actions{gap:.75rem;padding-top:.3rem}
.school-wizard-actions .btn-outline{min-height:48px;padding:.7rem 1rem;border:1px solid #d9d6e7;border-radius:14px;background:#fff;color:var(--student-ink)}
.school-wizard-actions .btn-outline:hover{background:var(--student-lilac)}
.school-identity-fields{border-color:#e7e3f1;border-radius:16px;background:#faf9fd}
.school-urgent,.school-privacy-note{border-radius:14px}
.school-confirmation{max-width:700px;border-top:4px solid var(--student-teal)}
.school-confirmation h1{color:var(--student-ink)}
.school-confirmation-mark{background:#def7f3;color:#278c88}
.school-case-card{padding:1rem 1.15rem;color:var(--student-ink);text-decoration:none}
.school-case-card:hover{border-color:#bdb5e4;color:var(--student-ink)}
.school-case-card>strong{color:var(--student-ink)}
.school-stat strong{color:var(--student-purple)}
.school-chat-thread{gap:.8rem}
.school-chat-message{padding:1rem 1.15rem;border:1px solid #e8e5f1;border-radius:18px;background:#fff}
.school-chat-mine{border-color:#dcd7f1;background:#efedfa}
.school-chat-message time{color:var(--student-muted)}
.school-timeline{gap:0;margin:1rem 0;padding:0;list-style:none}
.school-timeline li{position:relative;margin-left:.6rem;padding:.15rem 0 1.2rem 1.7rem;border-left:2px solid #dedaf0}
.school-timeline li:last-child{border-left-color:transparent}
.school-timeline li::before{position:absolute;top:.15rem;left:-.48rem;width:.8rem;height:.8rem;border:3px solid var(--student-paper);border-radius:50%;background:var(--student-purple);content:""}
.school-timeline li strong{margin-bottom:.2rem;color:var(--student-purple);font-size:.82rem}
.school-timeline li span{margin:.2rem 0;color:var(--student-muted);line-height:1.5}
.school-list{gap:.7rem}
.school-footer{border-color:#e9e7f1;background:#fff;color:var(--student-muted)}
.student-legal-footer{justify-content:center;min-height:auto;padding:1rem;background:#fff;color:var(--student-muted)}
.school-sidebar{background:#242346}
.school-sidebar .school-nav a.active{background:#373568}
.school-sidebar .school-nav a.active>span{color:#c8c0ff}
.school-sidebar .school-nav a.active{color:#d5d0ff}
.school-topbar,.school-workspace>.school-footer{border-color:#e9e7f1}
.school-portal .tag{border-radius:999px}
@media(max-width:760px){
  .student-main{width:min(100% - 1.25rem,680px);padding:1rem 0 6.8rem}
  .student-legal-footer{padding:1rem 1rem calc(6rem + env(safe-area-inset-bottom))}
  .school-landing{grid-template-columns:1fr;gap:.4rem;margin:0;padding:1.45rem 1.25rem 1rem;border-radius:24px}
  .school-landing-copy h1{max-width:13ch;font-size:clamp(2.2rem,10vw,3rem)}
  .school-landing-copy>p:not(.school-privacy-note){font-size:1rem}
  .school-landing-illustration{min-height:150px}
  .school-landing-illustration svg{width:min(75%,280px);max-height:210px}
  .student-shortcuts{grid-template-columns:1fr;margin:.85rem auto}
  .student-shortcut{min-height:70px;border-radius:17px}
  .school-how{grid-template-columns:1fr;gap:.3rem;margin:1.8rem auto 1rem}
  .student-safety-note{margin-top:.8rem;font-size:.8rem}
  .student-bottom-nav{position:fixed;z-index:15;right:0;bottom:0;left:0;justify-content:space-around;gap:0;padding:.4rem max(.3rem,env(safe-area-inset-left)) calc(.4rem + env(safe-area-inset-bottom));box-shadow:0 -5px 20px rgba(35,34,70,.08)}
  .student-bottom-nav>a,.student-bottom-nav>form{min-width:0;flex:1}
  .student-bottom-nav>a,.student-bottom-nav button{flex-direction:column;gap:.15rem;min-height:52px;padding:.35rem .15rem;font-size:.65rem}
  .student-bottom-nav svg{width:1.25rem;height:1.25rem}
  .school-choice-grid{grid-template-columns:1fr}
  .school-form-card{padding:1rem;border-radius:20px}
  .school-wizard-actions{display:grid;grid-template-columns:1fr 1fr}
  .school-wizard-actions .btn{width:100%;justify-self:stretch}
  .school-wizard-actions [data-wizard-submit]{grid-column:1/-1}
  .school-case-card{align-items:flex-start}
}
@media(max-width:720px){
  .school-portal.school-nav-enhanced .school-sidebar{background:#242346}
  .school-portal.school-nav-enhanced .school-nav-toggle{border-color:#e5e2f0;border-radius:12px}
}
@media(prefers-reduced-motion:reduce){
  .student-shortcut,.school-primary-action,.school-actions .btn,.school-form .btn{transition:none}
}

/* Administration de la plateforme Écoute-moi */
.admin-portal{min-height:100vh;background:#f7f6fb;color:#25254a}
.admin-portal{display:grid;grid-template-columns:248px minmax(0,1fr);grid-template-rows:auto 1fr auto}
.admin-header{position:relative;z-index:2;grid-column:1/-1;display:flex;align-items:center;gap:1rem;min-height:74px;padding:.7rem clamp(1.25rem,3vw,2.5rem);border-bottom:1px solid #e8e5f1;background:#fff}
.admin-brand{display:flex;align-items:center;gap:.7rem;color:#25254a;font-size:1rem;font-weight:800;text-decoration:none}
.admin-brand>span:last-child{display:grid;gap:.08rem}
.admin-brand small{color:#76758f;font-size:.72rem;font-weight:550}
.admin-brand-mark{display:grid;place-items:center;width:2.45rem;height:2.45rem;border-radius:13px;background:#ebe8fa;color:#7868c7;font-size:1.25rem;font-weight:850}
.admin-role{margin-left:auto;padding:.4rem .75rem;border:1px solid #e6e2f3;border-radius:999px;background:#faf9fd;color:#625b89;font-size:.76rem;font-weight:750}
.admin-logout{margin:0}
.admin-logout button{min-height:40px;padding:.5rem .8rem;border:1px solid #e1deeb;border-radius:11px;background:#fff;color:#555472;font:700 .82rem var(--sans);cursor:pointer}
.admin-logout button:hover{border-color:#c9c3e4;background:#f7f5fc;color:#25254a}
.admin-nav{position:sticky;top:1rem;align-self:start;grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:.25rem;min-height:calc(100vh - 74px);padding:1.4rem 1rem;border-right:1px solid #e8e5f1;background:#fff}
.admin-nav-label{margin:.35rem .7rem .55rem;color:#9290a5;font-size:.62rem;font-weight:850;letter-spacing:.1em}
.admin-nav-public-label{margin-top:1.5rem}
.admin-nav>a{display:flex;align-items:center;gap:.65rem;min-height:46px;padding:.65rem .75rem;border:1px solid transparent;border-radius:12px;color:#666580;font-size:.84rem;font-weight:700;text-decoration:none}
.admin-nav-icon{display:grid;place-items:center;width:1.6rem;height:1.6rem;flex:0 0 auto;border-radius:8px;background:#f3f1fa;color:#7565bd;font-size:1rem}
.admin-nav>a:hover{background:#f7f5fc;color:#403a69}
.admin-nav>a.active{border-color:#e8e4f5;background:#efedfa;color:#6b5bb9}
.admin-nav>a.active .admin-nav-icon{background:#dfdaf5;color:#514294}
.admin-nav-badge{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:#e5f6f3;color:#247f7a;font-size:.68rem;font-weight:800}
.admin-main{grid-column:2;grid-row:2;width:min(100% - 3rem,1120px);min-height:calc(100vh - 170px);max-width:1120px;margin:0 auto;padding:clamp(1.8rem,4vw,3rem) 0}
.admin-main>.section-title{margin-bottom:1.5rem}
.admin-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem clamp(1.25rem,3vw,2.5rem);border-top:1px solid #e8e5f1;background:#fff;color:#77768e;font-size:.78rem}
.admin-footer a{color:#6b5bb9;font-weight:700;text-decoration:none}
.admin-footer nav{justify-content:flex-end}
.admin-dashboard-heading{margin:0 0 1.5rem}
.admin-eyebrow{color:#7868c7;font-size:.68rem;font-weight:850;letter-spacing:.1em}
.admin-dashboard-heading h1{margin:.4rem 0;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:820;letter-spacing:-.04em}
.admin-dashboard-heading p{max-width:65ch;margin:0;color:#72718a}
.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.admin-stat-card{display:grid;gap:.3rem;min-height:142px;padding:1.15rem 1.25rem;border:1px solid #e9e6f2;border-radius:19px;background:#fff;color:#25254a;text-decoration:none;box-shadow:0 5px 20px rgba(50,43,91,.035);transition:transform .15s,border-color .15s}
.admin-stat-card:hover{transform:translateY(-2px);border-color:#c9c2e7}
.admin-stat-label{color:#77768e;font-size:.8rem;font-weight:700}
.admin-stat-card strong{font-size:2rem;line-height:1.15;letter-spacing:-.04em}
.admin-stat-card>span:last-child{color:#77768e;font-size:.78rem}
.admin-stat-card.is-pending strong{color:#6d5ec0}
.admin-work-queue{margin-top:2.1rem}
.admin-section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:.8rem}
.admin-section-heading h2{margin:.25rem 0 0;font-size:1.25rem;font-weight:800}
.admin-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.admin-work-card{position:relative;display:flex;align-items:flex-start;gap:.9rem;min-height:176px;padding:1.15rem;border:1px solid #e9e6f2;border-radius:19px;background:#fff;box-shadow:0 5px 20px rgba(50,43,91,.035)}
.admin-work-icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;flex:0 0 auto;border-radius:13px;background:#e2f7f3;color:#298d87;font-size:1.25rem}
.admin-work-icon-lilac{background:#efedfa;color:#7868c7}
.admin-work-card h3{margin:.1rem 0 .4rem;font-size:1rem}
.admin-work-card p{margin:0 0 .8rem;color:#77768e;font-size:.83rem;line-height:1.55}
.admin-work-card a{color:#6859b6;font-size:.82rem;font-weight:800;text-decoration:none}
.admin-work-card a:hover{text-decoration:underline}
.admin-work-count{position:absolute;top:1rem;right:1rem;padding:.3rem .55rem;border-radius:999px;background:#f0eef9;color:#695bb0;font-size:.67rem;font-weight:800}
.admin-section-heading h2{margin:.3rem 0 0;color:#292747;font-size:1.2rem;font-weight:780}
.admin-result-count{padding:.35rem .65rem;border:1px solid #e7e4f1;border-radius:999px;background:#fff;color:#73718a;font-size:.74rem;font-weight:700}
.admin-pending-schools{margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid #e8e5f1}
.admin-empty-state{border-style:dashed;background:#fbfafd;box-shadow:none}
.admin-empty-state strong{color:#403a69}
.admin-empty-state p{margin:.25rem 0 0;color:#77768e;font-size:.88rem}
.admin-work-card{transition:transform .15s,border-color .15s,box-shadow .15s}
.admin-work-card:hover{transform:translateY(-2px);border-color:#d4cfee;box-shadow:0 10px 25px rgba(50,43,91,.07)}
.admin-auth-site{background:#f6f5fa}
.admin-auth-site #contenu{display:grid;min-height:calc(100vh - 190px);place-items:center;padding:2.5rem 1rem}
.admin-auth-site .auth-box{width:min(100%,480px);max-width:480px;margin:0;padding:clamp(1.4rem,4vw,2.2rem);border:1px solid #e8e5f1;border-top:4px solid #7868c7;border-radius:22px;background:#fff;box-shadow:0 18px 48px rgba(47,39,82,.08)}
.admin-auth-eyebrow{display:inline-block;margin-bottom:.5rem;color:#7868c7;font-size:.67rem;font-weight:850;letter-spacing:.1em}
.admin-auth-site .auth-box h1{margin:.2rem 0 .6rem;color:#25254a;font-family:var(--sans);font-size:clamp(1.55rem,5vw,2rem);font-weight:800;letter-spacing:-.035em}
.admin-auth-site .auth-box>p{margin:.4rem 0 1.2rem;color:#72718a}
.admin-auth-form{display:grid;gap:.6rem}
.admin-auth-form label{margin-top:.35rem;color:#403f5d;font-size:.83rem;font-weight:750}
.admin-auth-form input{width:100%;min-height:48px;padding:.7rem .8rem;border:1px solid #dcd9e9;border-radius:12px;background:#fdfcff;color:#25254a;font:inherit}
.admin-auth-form input:focus{border-color:#7868c7;outline:3px solid rgba(120,104,199,.15);outline-offset:1px}
.admin-auth-form .btn{min-height:48px;margin-top:.65rem;border:0;border-radius:12px;background:#6253a7}
.admin-auth-form .btn:hover{background:#51438f}
.admin-auth-site .auth-box .flash{margin-top:.8rem}
@media(max-width:900px){
  .admin-portal{grid-template-columns:210px minmax(0,1fr)}
  .admin-nav{padding:1.2rem .7rem}
  .admin-main{width:min(100% - 2rem,1120px)}
  .admin-footer{align-items:flex-start;flex-direction:column}
  .admin-footer nav{justify-content:flex-start}
}
@media(max-width:700px){
  .admin-portal{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr auto}
  .admin-header{min-height:66px;padding:.6rem 1rem}
  .admin-nav{position:sticky;z-index:10;top:0;grid-column:1;grid-row:2;flex-direction:row;align-items:center;gap:.25rem;min-height:0;overflow-x:auto;padding:.45rem .65rem;border-right:0;border-bottom:1px solid #e8e5f1;scrollbar-width:thin}
  .admin-nav-label{display:none}
  .admin-nav>a{flex:0 0 auto;min-height:42px;padding:.5rem .65rem}
  .admin-nav-public-label{display:none}
  .admin-nav>a:last-child{margin-left:auto}
  .admin-main{grid-column:1;grid-row:3;width:min(100% - 1.25rem,1120px);min-height:0;padding:1.4rem 0 2rem}
  .admin-footer{grid-row:4}
  .admin-stats{grid-template-columns:1fr;gap:.6rem}
  .admin-stat-card{grid-template-columns:1fr auto;align-items:center;min-height:0;padding:.9rem 1rem}
  .admin-stat-card .admin-stat-label{grid-column:1/-1}
  .admin-stat-card strong{grid-row:2/4;font-size:1.7rem}
  .admin-stat-card>span:last-child{grid-column:2;grid-row:2/4;text-align:right}
  .admin-work-grid{grid-template-columns:1fr}
  .admin-work-card{min-height:150px}
  .admin-footer{padding:.9rem 1rem}
  .admin-footer nav{gap:.5rem .8rem}
  .admin-auth-site #contenu{min-height:calc(100vh - 250px);padding:1.5rem .8rem}
  .admin-auth-site .auth-box{padding:1.35rem;border-radius:18px}
}
@media(max-width:420px){
  .admin-role{display:none}
  .admin-logout button{min-height:38px;padding:.4rem .6rem}
  .admin-work-card{padding:.9rem}
}
@media(prefers-reduced-motion:reduce){
  .admin-stat-card{transition:none}
}

/* Shared visual language for the public, school and administration spaces. */
:root{
  --brand-forest:#21483b;
  --brand-leaf:#39785e;
  --brand-mint:#e5eee7;
  --brand-paper:#fbfaf6;
  --brand-ink:#25332d;
  --brand-muted:#68746e;
  --brand-line:#e0e5df;
  --brand-gold:#d3a65c;
  --brand-coral:#b65d46;
}
body{background:var(--brand-paper);color:var(--brand-ink)}
h1,h2,h3{font-family:var(--sans);letter-spacing:-.035em}
.site-header{border-color:var(--brand-line);background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}
.brand{font-family:var(--sans);font-size:1.16rem;font-weight:800}
.brand svg{width:34px;height:34px}
.main-nav a,.main-nav .link-btn{border-radius:10px;color:#46564e}
.main-nav a.active{background:var(--brand-mint);color:var(--brand-forest);box-shadow:none}
.main-nav a:hover,.main-nav .link-btn:hover{background:#f2f5ef;color:var(--brand-forest)}
.btn{border-radius:12px;background:var(--brand-forest);border-color:var(--brand-forest);box-shadow:0 3px 0 rgba(30,67,54,.12)}
.btn:hover{background:#18382e;border-color:#18382e}
.btn-outline{border-color:#cfd9d1;background:#fff;color:var(--brand-forest)!important;box-shadow:none}
.flash{border-radius:12px}
.site-footer{margin-top:4rem;border-top:4px solid var(--brand-gold);background:#20382f;color:#e9eee9}
.site-footer h3{color:#f1d49c;font-family:var(--sans);letter-spacing:0}
.site-footer a{color:#e9eee9}
.site-footer a:hover{color:#f1d49c}
.footer-bottom{border-color:rgba(255,255,255,.14)}

.school-portal{
  --student-ink:#25332d;
  --student-muted:#68746e;
  --student-paper:#fbfaf6;
  --student-lilac:#e5eee7;
  --student-purple:#39785e;
  --student-teal:#d3a65c;
  --school-ink:#25332d;
  --school-accent:#39785e;
  --sage-deep:#21483b;
  --sage-strong:#39785e;
  --sage-bg:#edf1e9;
  --sage-soft:#f6f5ef;
  --student-paper:var(--brand-paper);
  background:var(--brand-paper);
  color:var(--brand-ink);
}
.school-portal :focus-visible{outline-color:#39785e}
.student-topbar,.school-header{border-bottom:1px solid var(--brand-line);background:#fff}
.student-topbar{min-height:68px;padding-inline:max(1.25rem,calc((100vw - 1120px)/2))}
.student-brand{font-size:1.02rem}
.student-brand-mark{border-radius:12px;background:var(--brand-mint);color:var(--brand-forest)}
.student-brand-mark svg{fill:none;stroke:currentColor;stroke-width:1.8}
.student-topbar-help{padding:.5rem .8rem;border:1px solid var(--brand-line);border-radius:10px;color:var(--brand-forest)}
.student-topbar-help:hover{background:#f5f7f3;color:var(--brand-forest)}
.student-main{width:min(100% - 2.5rem,1120px);padding-top:clamp(1.5rem,4vw,3rem)}
.school-landing{
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  min-height:390px;
  padding:clamp(2rem,5vw,4rem);
  border:1px solid #e1e7df;
  border-radius:28px;
  background:linear-gradient(125deg,#f4f5ed 0%,#eff4ec 62%,#e4eee6 100%);
  box-shadow:0 18px 50px rgba(37,61,48,.07);
}
.school-eyebrow,.home-section-kicker{color:var(--brand-leaf);letter-spacing:.1em}
.school-landing-copy h1{max-width:12ch;color:var(--brand-forest);font-size:clamp(2.7rem,5.5vw,4.3rem);font-weight:760;letter-spacing:-.065em}
.school-landing-copy>p:not(.school-privacy-note){max-width:42ch;color:#53635a;font-size:1.1rem}
.school-actions .btn,.school-primary-action,.school-form .btn,.school-confirmation .btn{
  min-height:54px;
  padding:.85rem 1.25rem;
  border:1px solid var(--brand-forest);
  border-radius:12px;
  background:var(--brand-forest);
  color:#fff!important;
  box-shadow:0 5px 0 rgba(33,72,59,.12);
}
.school-primary-action:hover,.school-actions .btn:hover,.school-form .btn:hover,.school-confirmation .btn:hover{background:#18382e}
.school-primary-action span{font-size:1.2rem}
.school-landing-illustration{min-height:300px}
.school-landing-illustration svg{width:min(100%,390px);filter:drop-shadow(0 14px 16px rgba(50,77,59,.08))}
.student-shortcuts{max-width:980px;margin:1.5rem auto}
.student-shortcut{min-height:90px;padding:1.1rem 3rem 1.1rem 1.2rem;border-color:#e1e6df;border-radius:16px;box-shadow:0 5px 18px rgba(37,61,48,.035)}
.student-shortcut:hover{transform:translateY(-2px);border-color:#b6cbbb;box-shadow:0 10px 24px rgba(37,61,48,.08)}
.student-shortcut-icon{border-radius:12px;background:var(--brand-mint);color:var(--brand-forest)}
.student-shortcut-teal .student-shortcut-icon{background:#f5ecd9;color:#8a6531}
.student-shortcut-arrow{color:var(--brand-leaf)}
.student-school-link{color:#65736b}
.school-how{margin-top:3.5rem}
.school-how-heading h2{color:var(--brand-forest);font-size:1.8rem}
.school-how-heading p,.school-how li{color:#5b6961}
.school-how li{border-color:var(--brand-line)}
.school-how li::before{border-color:#cbd8cd;color:var(--brand-leaf)}
.student-safety-note{border:1px solid #eadfc8;border-radius:14px;background:#fbf5e9;color:#665537}
.student-safety-note strong{color:#574526}
.student-bottom-nav{border-top:1px solid var(--brand-line);background:rgba(255,255,255,.97);box-shadow:0 -8px 24px rgba(37,61,48,.06)}
.student-bottom-nav>a.active{background:var(--brand-mint);color:var(--brand-forest)}
.school-page-heading{max-width:780px;margin-bottom:1.5rem}
.school-page-heading h1{color:var(--brand-forest);font-size:clamp(2rem,4vw,2.75rem);font-weight:760;letter-spacing:-.05em}
.school-page-heading p{color:var(--brand-muted);font-size:1.02rem;line-height:1.65}
.school-form-card,.school-case-content,.school-confirmation,.school-case-card,.school-staff-card,.school-class-card,.school-list .card,.student-main>.card{
  border-color:#e2e7e0;
  border-radius:18px;
  box-shadow:0 9px 28px rgba(37,61,48,.055);
}
.school-form-card{max-width:800px;padding:clamp(1.25rem,3vw,2rem)}
.school-form label{color:#344b3f}
.school-form input,.school-form select,.school-form textarea{border-color:#d4ddd5;border-radius:10px;background:#fff;color:var(--brand-ink)}
.school-form input:focus,.school-form select:focus,.school-form textarea:focus{border-color:#6d967d;outline-color:rgba(57,120,94,.2)}
.school-form .btn{font-size:.96rem}
.school-choice-group{border-color:#dfe6df;border-radius:12px}
.school-check{border-color:#e0e6df;border-radius:12px;background:#fafbf8}
.school-check:has(input:checked){border-color:#7da58c;background:#edf4ee;box-shadow:0 0 0 2px rgba(57,120,94,.1)}
.school-confirmation-mark{background:var(--brand-mint);color:var(--brand-forest)}
.school-footer{border-color:var(--brand-line);background:#fff}
.school-footer a{color:var(--brand-leaf)}
.school-header{min-height:70px;padding:.8rem max(1.25rem,calc((100vw - 1120px)/2))}
.school-header>a:last-child{padding:.55rem .85rem;border:1px solid var(--brand-line);border-radius:10px;color:var(--brand-forest);font-size:.86rem;font-weight:750;text-decoration:none}
.school-brand-name{color:var(--brand-forest)}
.school-brand-name small{color:var(--brand-muted)}
.school-app{background:#f4f6f2}
.school-sidebar{background:#21483b}
.school-sidebar .school-brand{color:#fff}
.school-sidebar .school-sidebar-label{color:#b8cec0}
.school-sidebar .school-nav a{border-radius:10px;color:#e4eee7}
.school-sidebar .school-nav a:hover{background:rgba(255,255,255,.09);color:#fff}
.school-sidebar .school-nav a.active{background:#e5eee7;color:#21483b}
.school-sidebar .school-nav a.active svg{stroke:#39785e}
.school-topbar{border-color:var(--brand-line);background:#fff}
.school-topbar-title{color:var(--brand-forest)}
.school-main{padding-top:clamp(1.5rem,4vw,3rem)}
.school-stat strong{color:var(--brand-leaf)}
.school-sidebar-account{border-color:rgba(255,255,255,.14)}
.school-sidebar-account button{color:#e4eee7}

.admin-portal{background:#f5f6f2;color:var(--brand-ink)}
.admin-header{border-color:var(--brand-line);background:#fff}
.admin-brand{color:var(--brand-forest)}
.admin-brand-mark{border-radius:12px;background:#e5eee7;color:var(--brand-forest)}
.admin-role{border-color:#dce6dd;background:#f4f7f2;color:#45634f}
.admin-nav{border-color:var(--brand-line);background:#fff}
.admin-nav>a{border-radius:11px;color:#5b6a62}
.admin-nav-icon{border-radius:9px;background:#eff4ee;color:var(--brand-leaf)}
.admin-nav>a:hover{background:#f4f7f2;color:var(--brand-forest)}
.admin-nav>a.active{border-color:#dbe7dc;background:#eaf1e9;color:var(--brand-forest)}
.admin-nav>a.active .admin-nav-icon{background:#dbe9db;color:var(--brand-forest)}
.admin-nav-badge{background:#f5ecd9;color:#80602e}
.admin-main>.section-title{border-color:#d7e2d7}
.admin-dashboard-heading h1{color:var(--brand-forest)}
.admin-eyebrow{color:var(--brand-leaf)}
.admin-dashboard-heading p{color:var(--brand-muted)}
.admin-stat-card,.admin-work-card{border-color:#e1e7df;border-radius:16px;box-shadow:0 5px 18px rgba(37,61,48,.04)}
.admin-stat-card{color:var(--brand-ink)}
.admin-stat-card:hover,.admin-work-card:hover{border-color:#b8cbb9;box-shadow:0 10px 24px rgba(37,61,48,.08)}
.admin-stat-card strong{color:var(--brand-forest)}
.admin-stat-card.is-pending strong{color:#9a7134}
.admin-work-icon{border-radius:11px;background:#e5eee7;color:var(--brand-leaf)}
.admin-work-icon-lilac{background:#f5ecd9;color:#8a6531}
.admin-work-card h3,.admin-section-heading h2{color:var(--brand-forest)}
.admin-work-card p,.admin-work-count{color:var(--brand-muted)}
.admin-work-card a{color:var(--brand-leaf)}
.admin-work-count{background:#f3f5f0}
.admin-section-heading{gap:1rem}
.admin-result-count{border-color:var(--brand-line);background:#fff;color:var(--brand-muted)}
.admin-pending-schools{border-color:var(--brand-line)}
.admin-empty-state{border-color:#d8e2d8;background:#fafbf8}
.admin-empty-state strong{color:var(--brand-forest)}
.admin-empty-state p{color:var(--brand-muted)}
.admin-main .school-access-request{align-items:center;border-color:var(--brand-line);border-left:3px solid #d7e4d8;border-radius:15px}
.admin-main .school-access-request h2{color:var(--brand-forest)}
.admin-main .school-access-request p{color:#5c6b63}
.admin-main .toolbar{gap:.75rem;margin:1.25rem 0;padding:1rem 1.1rem;border:1px solid var(--brand-line);border-radius:14px;background:#fff}
.admin-main .toolbar label{display:grid;gap:.3rem;color:#43574a;font-size:.82rem;font-weight:750}
.admin-main .toolbar select,.admin-main .privacy-admin-card select{min-height:42px;padding:.5rem .7rem;border:1px solid #d5ded5;border-radius:9px;background:#fff;color:var(--brand-ink);font:inherit}
.admin-main .toolbar .btn{min-height:40px}
.admin-main .privacy-admin-card{border-color:var(--brand-line);border-left:4px solid #d3a65c;border-radius:15px}
.admin-main .privacy-admin-message{border:1px solid #e8ece6;border-radius:11px;background:#f7f8f5}
.admin-main .form-stack{padding:1rem;border:1px solid var(--brand-line);border-radius:13px;background:#fafbf8}
.admin-main .form-stack input,.admin-main .form-stack select,.admin-main .form-stack textarea{border-color:#d5ded5;border-radius:9px}
.legal-page{border-color:var(--brand-line);border-radius:18px;box-shadow:0 10px 30px rgba(37,61,48,.045)}
.legal-heading h1{color:var(--brand-forest)}
.legal-heading>p,.legal-page p,.legal-page li{color:#526159;line-height:1.75}
.legal-page section h2{border-color:var(--brand-line);color:var(--brand-forest)}
.legal-toc a{border-color:var(--brand-line);background:#f7f8f5;color:var(--brand-forest)}
.legal-toc a:hover{border-color:#bdcebf;background:var(--brand-mint)}
.legal-page th{background:#f1f5ef}
.admin-footer{border-color:var(--brand-line);background:#fff;color:var(--brand-muted)}
.admin-footer a{color:var(--brand-leaf)}
.admin-auth-site{min-height:100vh;background:#f1f4ef}
.admin-auth-site .site-header,.admin-auth-site .site-footer{display:none}
.admin-auth-site #contenu{min-height:100vh;padding:2rem}
.admin-auth-site #contenu.container{width:min(100%,1040px);max-width:1040px;margin:0 auto;padding:0}
.admin-auth-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.82fr);align-items:center;gap:clamp(2rem,7vw,6rem);width:100%;min-height:calc(100vh - 4rem);padding:clamp(1rem,4vw,3rem)}
.admin-auth-intro{max-width:480px}
.admin-auth-mark{display:grid;place-items:center;width:3.25rem;height:3.25rem;margin-bottom:3rem;border-radius:16px;background:var(--brand-forest);color:#fff;font-size:1.5rem;font-weight:850;box-shadow:0 8px 22px rgba(33,72,59,.18)}
.admin-auth-intro .admin-auth-eyebrow{display:block;margin-bottom:.75rem}
.admin-auth-intro h1{max-width:10ch;margin:0 0 1rem;color:var(--brand-forest);font-size:clamp(2.5rem,5vw,4rem);font-weight:760;line-height:1.02;letter-spacing:-.065em}
.admin-auth-intro p{max-width:39ch;margin:0 0 1.5rem;color:#5e6d64;font-size:1.05rem;line-height:1.7}
.admin-auth-intro>a{color:var(--brand-leaf);font-size:.9rem;font-weight:750;text-decoration:none}
.admin-auth-intro>a:hover{text-decoration:underline}
.admin-auth-site .auth-box{width:100%;max-width:470px;padding:clamp(1.5rem,4vw,2.4rem);border:1px solid #e0e7df;border-top:4px solid var(--brand-leaf);border-radius:20px;box-shadow:0 22px 60px rgba(37,61,48,.09)}
.admin-auth-site .auth-box h2{margin:.25rem 0 .6rem;color:var(--brand-forest);font-size:1.8rem;font-weight:750}
.admin-auth-site .auth-box>p{color:var(--brand-muted);line-height:1.6}
.admin-auth-eyebrow{color:var(--brand-leaf)}
.admin-auth-form label{color:#344b3f}
.admin-auth-form input{border-color:#d5ded5;border-radius:10px;background:#fff;color:var(--brand-ink)}
.admin-auth-form input:focus{border-color:#6d967d;outline-color:rgba(57,120,94,.18)}
.admin-auth-form .btn{border-radius:10px;background:var(--brand-forest)}
.admin-auth-form .btn:hover{background:#18382e}
@media(max-width:760px){
  .school-landing{grid-template-columns:minmax(0,1fr) minmax(220px,.75fr);gap:1.2rem}
  .school-landing-illustration{min-height:230px}
  .school-portal.school-nav-enhanced .school-sidebar{background:var(--brand-forest)}
  .school-portal.school-nav-enhanced .school-nav-toggle{border-color:rgba(255,255,255,.3);background:#fff;color:var(--brand-forest)}
  .admin-auth-site #contenu.container{width:100%;padding:1.25rem}
  .admin-auth-layout{grid-template-columns:1fr;gap:1.5rem;min-height:calc(100vh - 2.5rem);max-width:520px;margin:auto;padding:.25rem}
  .admin-auth-mark{margin-bottom:1.4rem}
  .admin-auth-intro h1{max-width:18ch;font-size:clamp(2rem,8vw,3rem)}
  .admin-auth-intro p{margin-bottom:.9rem;font-size:.95rem}
  .admin-auth-site .auth-box{max-width:none}
}
@media(max-width:560px){
  .student-main{width:min(100% - 1.25rem,1120px);padding:1rem 0 6.8rem}
  .school-landing{grid-template-columns:1fr;gap:.3rem;margin:0;padding:1.5rem 1.25rem 1rem;border-radius:22px}
  .school-landing-copy h1{max-width:12ch;font-size:clamp(2.5rem,12vw,3.5rem)}
  .school-landing-copy>p:not(.school-privacy-note){font-size:1rem}
  .school-landing-illustration{min-height:170px}
  .school-landing-illustration svg{width:min(82%,300px);max-height:205px}
  .student-shortcuts{grid-template-columns:1fr;margin:.9rem auto}
  .student-shortcut{min-height:74px}
  .school-how{grid-template-columns:1fr;gap:.25rem;margin:2rem auto 1rem;padding:0 .2rem}
  .school-how-heading h2{font-size:1.55rem}
  .student-safety-note{align-items:flex-start;flex-direction:column;text-align:left}
  .school-form-card{padding:1.1rem;border-radius:16px}
  .school-header{min-height:62px;padding:.6rem .85rem}
  .school-header>a:last-child{font-size:.75rem}
  .admin-auth-site #contenu.container{padding:.8rem}
  .admin-auth-layout{gap:1rem}
  .admin-auth-site .auth-box{padding:1.25rem;border-radius:16px}
}
@media(max-width:700px){
  .admin-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .admin-nav>a{min-width:0;justify-content:flex-start}
  .admin-nav>a:last-child{margin-left:0}
  .admin-stat-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .admin-stat-card>span:last-child{min-width:0;line-height:1.35;overflow-wrap:anywhere;white-space:normal}
}
@media(prefers-reduced-motion:reduce){
  .student-shortcut,.admin-stat-card,.admin-work-card{transition:none}
}

/* School management console, with a clear directory-style admin layout. */
.school-admin-console{
  --school-accent:#6554b4;
  --school-ink:#202124;
  --school-muted:#5f6368;
  --school-line:#dadce0;
  background:#f8fafd;
  color:var(--school-ink);
}
.school-admin-console .school-app{background:#f8fafd}
.school-admin-console .school-sidebar{border-right:1px solid var(--school-line);background:#fff;color:var(--school-ink)}
.school-admin-console .school-sidebar .school-brand{color:var(--school-ink)}
.school-admin-console .school-sidebar .school-brand-name{color:var(--school-ink);font-family:var(--sans);font-size:1.08rem;font-weight:700}
.school-admin-console .school-sidebar .school-brand-name small{color:var(--school-muted);font-weight:500}
.school-admin-console .school-sidebar-label{color:#70757a}
.school-admin-console .school-sidebar .school-nav a{border-radius:0 24px 24px 0;color:#3c4043;font-weight:550}
.school-admin-console .school-sidebar .school-nav a:hover{background:#f1f3f4;color:#202124}
.school-admin-console .school-sidebar .school-nav a.active{background:#eeeafb;color:#514481;font-weight:700}
.school-admin-console .school-sidebar .school-nav a.active>span{color:inherit}
.school-admin-console .school-sidebar .school-nav a.active svg{color:#6554a4}
.school-admin-console .school-sidebar-account{border-color:var(--school-line)}
.school-admin-console .school-account-role{color:#5f6368}
.school-admin-console .school-sidebar-account button{color:#3c4043}
.school-admin-console .school-sidebar-account button:hover{background:#f1f3f4;color:#202124}
.school-admin-console .school-topbar{gap:.8rem;border-color:var(--school-line);background:#fff}
.school-admin-console .school-topbar-title{color:#202124;font-size:.94rem;font-weight:650}
.school-admin-console .school-topbar-context{padding:.25rem .55rem;border:1px solid #dadce0;border-radius:4px;color:#5f6368;font-size:.75rem}
.school-admin-console .school-topbar>a{color:#6554b4;font-weight:600}
.school-admin-console .school-main{width:min(100% - 3rem,1440px);padding-top:1.7rem}
.school-admin-console .school-page-heading{max-width:none;margin-bottom:1.5rem}
.school-admin-console .school-page-heading .home-section-kicker{color:#5f6368;font-size:.8rem;font-weight:600}
.school-admin-console .school-page-heading h1,
.school-admin-console h2,
.school-admin-console h3{font-family:var(--sans);color:#202124;letter-spacing:-.015em}
.school-admin-console .school-page-heading h1{font-size:clamp(1.8rem,3.5vw,2.25rem);font-weight:500}
.school-admin-console .school-page-heading p{color:#5f6368;font-size:.95rem}
.school-admin-console .school-form-card,
.school-admin-console .school-staff-card,
.school-admin-console .school-class-card,
.school-admin-console .school-main>.card,
.school-admin-console .school-list .card{
  border:1px solid #dadce0;
  border-radius:12px;
  background:#fff;
  box-shadow:0 1px 2px rgba(60,64,67,.08);
}
.school-admin-console .school-form-card{max-width:none;margin:0;padding:1.35rem}
.school-admin-console .school-form-card h2{font-size:1.08rem;font-weight:600}
.school-admin-console .school-form label{color:#3c4043;font-size:.88rem}
.school-admin-console .school-form input,
.school-admin-console .school-form select,
.school-admin-console .school-form textarea{border-color:#dadce0;border-radius:6px;color:#202124}
.school-admin-console .school-form input:focus,
.school-admin-console .school-form select:focus,
.school-admin-console .school-form textarea:focus{border-color:#6554b4;outline:3px solid rgba(101,84,180,.14)}
.school-admin-console .school-form .btn,
.school-admin-console .school-actions .btn{min-height:40px;border:1px solid #6554b4;border-radius:6px;background:#6554b4;color:#fff!important;font-size:.86rem;box-shadow:none}
.school-admin-console .school-form .btn:hover,
.school-admin-console .school-actions .btn:hover{border-color:#51439f;background:#51439f;transform:none}
.school-admin-console .school-form .btn-outline,
.school-admin-console .school-actions .btn-outline{border-color:#dadce0;background:#fff;color:#6554b4!important}
.school-admin-console .school-form .btn-outline:hover,
.school-admin-console .school-actions .btn-outline:hover{background:#f6fafe}
.school-admin-console .school-stat{border:1px solid #dadce0;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(60,64,67,.08)}
.school-admin-console .school-stat strong{color:#6554b4;font-family:var(--sans);font-size:1.9rem}
.school-admin-console .school-footer{background:#fff;color:#5f6368}
@media(max-width:720px){
  .school-portal.school-nav-enhanced.school-admin-console .school-sidebar{background:#fff}
  .school-admin-console .school-sidebar .school-nav a{border-radius:8px}
  .school-admin-console .school-main{width:min(100% - 1.5rem,1440px);padding:1.2rem 0 2rem}
  .school-admin-console .school-topbar-context{display:none}
}

.school-admin-console .school-sidebar{flex-basis:264px;width:264px;padding:1.2rem .8rem .8rem}
.school-admin-console .school-sidebar .school-brand{min-height:54px;margin:0 .25rem 1.5rem;padding:.35rem .55rem}
.school-admin-console .school-sidebar-label{margin:.4rem .8rem .55rem}
.school-admin-console .school-sidebar .school-nav{gap:.18rem}
.school-admin-console .school-main{padding-top:2rem}
.school-admin-console .school-page-heading h1{margin-bottom:.35rem}
.school-admin-console .school-page-heading .home-section-kicker{letter-spacing:.02em}
.school-admin-console .school-main .section-title{align-items:center;border-bottom:1px solid #dadce0}
.school-admin-console .school-main .section-title h2{font-size:1.2rem;font-weight:600}
.school-admin-console .school-class-card{padding:1rem 1.1rem}
.school-admin-console .school-class-card>strong{color:#202124;font-weight:600}
.school-admin-console .school-class-card>span{color:#5f6368}
.school-admin-console .school-staff-card{padding:1rem 1.1rem}
.school-admin-console .school-staff-card>div strong{font-weight:600}
.school-admin-console .school-staff-card .tag,
.school-admin-console .school-class-card .tag{border-radius:20px}
.school-admin-console .school-list{gap:.6rem}
.school-admin-console .table-wrap{overflow-x:auto;border:1px solid #dadce0;border-radius:8px}
.school-admin-console table{width:100%;border-collapse:collapse}
.school-admin-console th{background:#f8f9fa;color:#5f6368;font-size:.78rem;font-weight:600;text-align:left}
.school-admin-console th,.school-admin-console td{padding:.8rem 1rem;border-bottom:1px solid #e8eaed}
.school-admin-console tr:last-child td{border-bottom:0}
.school-admin-console .school-actions{gap:.6rem}
.school-admin-quicklinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1.4rem 0}
.school-admin-quicklink{display:flex;align-items:center;gap:.9rem;min-height:88px;padding:1rem 1.1rem;border:1px solid #dadce0;border-radius:12px;background:#fff;color:#202124;text-decoration:none;box-shadow:0 1px 2px rgba(60,64,67,.08);transition:box-shadow .15s,border-color .15s}
.school-admin-quicklink:hover{border-color:#c8c0e8;box-shadow:0 3px 10px rgba(60,64,67,.12);color:#202124}
.school-admin-quicklink-icon{display:grid;place-items:center;width:2.6rem;height:2.6rem;flex:none;border-radius:50%;background:#eeeafb;color:#6554b4;font-size:1.25rem}
.school-admin-quicklink>span:nth-child(2){display:grid;gap:.2rem;flex:1}
.school-admin-quicklink strong{font-size:.91rem;font-weight:650}
.school-admin-quicklink small{color:#5f6368;font-size:.78rem}
.school-admin-quicklink-arrow{color:#6554b4;font-size:1.1rem}
.school-admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.school-admin-console .school-admin-table-wrap{margin-top:.7rem}
.school-admin-console .school-admin-table{min-width:760px}
.school-admin-console .school-admin-table th{height:46px}
.school-admin-console .school-admin-table td{color:#3c4043;vertical-align:middle}
.school-admin-console .school-admin-table td:first-child strong,
.school-admin-console .school-admin-table td:first-child small{display:block}
.school-admin-console .school-admin-table td:first-child strong{color:#202124;font-weight:600}
.school-admin-console .school-admin-table td:first-child small{margin-top:.2rem;color:#5f6368;font-size:.78rem}
.school-admin-console .school-admin-table td>form{margin:0}
.school-admin-console .school-admin-table-actions{white-space:nowrap}
.school-admin-console .school-admin-table-actions>form{display:inline-block;vertical-align:middle}
.school-admin-console .school-admin-table .btn{min-height:34px;padding:.4rem .65rem;border-radius:5px;font-size:.78rem}
.school-admin-console .school-admin-table .btn-danger{border:1px solid #dadce0;background:#fff;color:#b3261e!important}
.school-admin-console .school-admin-table .btn-danger:hover{border-color:#f2c5c2;background:#fce8e6}
@media(max-width:760px){
  .school-admin-quicklinks{grid-template-columns:1fr}
  .school-admin-console .school-admin-stat-grid{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
}

.school-student-console{
  --student-ink:#24233f;
  --student-muted:#696783;
  --student-lilac:#eeeafe;
  --student-purple:#6253b5;
  --student-teal:#dff6ef;
  background:#f8f7fc;
  color:var(--student-ink);
}
.school-student-console .school-app{background:#f8f7fc}
.school-student-console .student-sidebar{flex-basis:250px;width:250px;border-right:1px solid #e7e4f1;background:#fff;color:var(--student-ink)}
.school-student-console .student-sidebar .school-brand{align-items:center;min-height:60px;margin:0 0 1.5rem;padding:.3rem .65rem;color:var(--student-ink)}
.school-student-console .student-brand-mark{width:2.35rem;height:2.35rem;background:var(--student-lilac);color:var(--student-purple)}
.school-student-console .student-brand-mark svg{width:1.2rem;height:1.2rem;fill:currentColor}
.school-student-console .student-sidebar .school-brand-name{color:var(--student-ink);font-family:var(--sans);font-size:1rem;font-weight:800}
.school-student-console .student-sidebar .school-brand-name small{color:var(--student-muted);font-size:.72rem;font-weight:550}
.school-student-console .student-sidebar .school-sidebar-label{color:#77758e}
.school-student-console .student-sidebar .school-nav{gap:.35rem}
.school-student-console .student-sidebar .school-nav a{min-height:48px;border-radius:14px;color:#4e4b68;font-size:.9rem;font-weight:650}
.school-student-console .student-sidebar .school-nav a:hover{background:#f7f5fd;color:var(--student-ink)}
.school-student-console .student-sidebar .school-nav a.active{background:var(--student-lilac);color:var(--student-purple)}
.school-student-console .student-sidebar .school-nav a.active svg{color:var(--student-purple)}
.school-student-console .student-sidebar-account{border-color:#e7e4f1}
.school-student-console .student-sidebar-account .school-account-role{color:var(--student-muted)}
.school-student-console .student-sidebar-account button{border-radius:10px;color:#55526d}
.school-student-console .student-sidebar-account button:hover{background:#f7f5fd;color:var(--student-purple)}
.school-student-console .student-topbar{min-height:68px;border-color:#e9e7f1;background:rgba(255,255,255,.96)}
.school-student-console .student-topbar .school-topbar-title{color:var(--student-ink);font-size:.92rem;font-weight:700}
.school-student-console .student-topbar .student-topbar-help{padding:.55rem .8rem;border:1px solid #e4e0f2;border-radius:12px;background:#fff;color:var(--student-purple);font-weight:700}
.school-student-console .student-topbar .student-topbar-help:hover{background:#f7f5fd;text-decoration:none}
.school-student-console .student-main{width:min(100% - 3rem,1100px);max-width:1100px;padding-top:2rem}
.school-student-console .school-page-heading{max-width:none;margin-bottom:1.4rem}
.school-student-console .school-page-heading .home-section-kicker{color:var(--student-purple);font-size:.72rem;font-weight:800;letter-spacing:.08em}
.school-student-console .school-page-heading h1{max-width:24ch;color:var(--student-ink);font-family:var(--sans);font-size:clamp(1.8rem,3.5vw,2.5rem);font-weight:780;letter-spacing:-.045em}
.school-student-console .school-page-heading p{max-width:66ch;color:var(--student-muted);font-size:1rem;line-height:1.7}
.school-student-console .school-footer{border-color:#e9e7f1;background:#fff;color:var(--student-muted)}
.school-student-console .school-footer a{color:var(--student-purple)}
.student-dashboard-overview{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,.8fr);gap:1rem;margin:1.5rem 0 2.1rem}
.student-overview-card{display:flex;align-items:center;gap:1rem;min-height:110px;padding:1.15rem 1.25rem;border:1px solid #e6e2f2;border-radius:18px;background:#fff;box-shadow:0 5px 20px rgba(49,43,86,.04)}
.student-overview-primary{flex-wrap:wrap;background:linear-gradient(120deg,#eeebfb,#fff)}
.student-overview-icon,.student-empty-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;flex:0 0 auto;border-radius:15px;background:#e4defa;color:var(--student-purple);font-size:1.45rem}
.student-overview-card>div{flex:1 1 190px}
.student-overview-card strong{display:block;color:var(--student-ink);font-size:1rem}
.student-overview-card p{margin:.2rem 0 0;color:var(--student-muted);font-size:.86rem}
.student-overview-card .btn,.student-empty-state .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.65rem .95rem;border:0;border-radius:12px;background:#6253b5;color:#fff;font-weight:750;text-decoration:none}
.student-overview-card .btn:hover,.student-empty-state .btn:hover{background:#51439f}
.student-overview-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.student-overview-stats .student-overview-card{display:grid;align-content:center;gap:.25rem;min-height:0}
.student-overview-stats span{color:var(--student-muted);font-size:.8rem;font-weight:650}
.student-overview-stats strong{font-size:1.7rem;color:var(--student-purple)}
.student-requests-section .section-title{border-color:#e6e2f2}
.student-requests-section .section-title h2{color:var(--student-ink);font-family:var(--sans);font-size:1.15rem;font-weight:750}
.student-requests-section .section-title>span{color:var(--student-muted);font-size:.8rem}
.school-student-console .school-case-card{min-height:88px;padding:1.1rem 1.2rem;border:1px solid #e8e5f1;border-radius:16px;background:#fff;box-shadow:0 3px 14px rgba(49,43,86,.035)}
.school-student-console .school-case-card:hover{border-color:#c9c1e7;box-shadow:0 7px 18px rgba(49,43,86,.07);transform:translateY(-1px)}
.school-student-console .school-case-card>div strong{color:var(--student-ink);font-size:.96rem}
.school-student-console .school-case-card>div span{color:var(--student-muted)}
.school-student-console .school-case-card .tag{border-radius:20px}
.student-request-open{color:var(--student-purple)!important;font-size:.83rem;font-weight:750}
.student-empty-state{display:grid;justify-items:center;gap:.5rem;padding:2.5rem 1.5rem;text-align:center}
.student-empty-state .student-empty-icon{width:3.25rem;height:3.25rem;margin-bottom:.4rem;font-size:1.6rem}
.student-empty-state h2{margin:.2rem 0;color:var(--student-ink);font-family:var(--sans);font-size:1.2rem}
.student-empty-state p{max-width:52ch;color:var(--student-muted)}
.school-student-console .school-form-card,
.school-student-console .school-case-content,
.school-student-console .school-confirmation,
.school-student-console .student-main>.card{
  border:1px solid #e7e3f1;
  border-radius:18px;
  background:#fff;
  box-shadow:0 7px 22px rgba(49,43,86,.045);
}
.school-student-console .school-form label{color:#36334f}
.school-student-console .school-form input,
.school-student-console .school-form select,
.school-student-console .school-form textarea{border-color:#d9d5e8;border-radius:11px}
.school-student-console .school-form input:focus,
.school-student-console .school-form select:focus,
.school-student-console .school-form textarea:focus{border-color:#7667c4;outline-color:rgba(118,103,196,.18)}
.school-student-console .school-form .btn,
.school-student-console .school-actions .btn{border:0;border-radius:13px;background:#6253b5;color:#fff!important;box-shadow:none}
.school-student-console .school-form .btn:hover,
.school-student-console .school-actions .btn:hover{background:#51439f;transform:translateY(-1px)}
.school-student-console .school-form .btn-outline,
.school-student-console .school-actions .btn-outline{border:1px solid #ded9ef;background:#fff;color:#6253b5!important}
.school-student-console .school-form .btn-outline:hover,
.school-student-console .school-actions .btn-outline:hover{background:#f7f5fd}
.school-student-console .school-chat-mine{border-color:#e3def5;background:#f1effb}
.student-bottom-nav{display:none}
@media(max-width:720px){
  .school-portal.school-student-console .student-sidebar{display:none}
  .school-student-console .student-main{width:min(100% - 1.5rem,720px);padding:1.3rem 0 6rem}
  .school-student-console .student-topbar{min-height:60px;padding:0 1rem}
  .student-dashboard-overview{grid-template-columns:1fr;gap:.75rem;margin:1rem 0 1.6rem}
  .student-overview-primary{padding:1rem}
  .student-overview-stats .student-overview-card{min-height:82px}
  .student-bottom-nav{position:fixed;z-index:15;right:0;bottom:0;left:0;display:flex;justify-content:space-around;gap:.2rem;padding:.45rem max(.35rem,env(safe-area-inset-left)) calc(.45rem + env(safe-area-inset-bottom));border-top:1px solid #e9e7f1;background:rgba(255,255,255,.97);box-shadow:0 -5px 18px rgba(49,43,86,.08)}
  .student-bottom-nav>a,.student-bottom-nav>form{display:flex;min-width:0;flex:1;justify-content:center;margin:0}
  .student-bottom-nav>a,.student-bottom-nav button{display:flex;align-items:center;justify-content:center;gap:.2rem;min-height:50px;padding:.35rem .2rem;border:0;border-radius:11px;background:transparent;color:#706d87;font:700 .68rem var(--sans);text-decoration:none;cursor:pointer}
  .student-bottom-nav>a.active{background:#eeeafe;color:#6253b5}
  .student-bottom-nav svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
  .school-student-console .student-legal-footer{padding:1rem 1rem 5.7rem}
}
@media(max-width:460px){
  .student-overview-primary .btn{width:100%}
  .school-student-console .school-case-card{align-items:flex-start}
  .student-request-open{margin-left:auto}
}

/* Shared mauve Workspace theme for the connected school and platform consoles. */
.school-staff-console{
  --school-accent:#6554b4;
  --school-ink:#292642;
  --school-muted:#706d85;
  --school-line:#e5e1f0;
  background:#f7f6fb;
  color:var(--school-ink);
}
.school-staff-console .school-app{background:#f7f6fb}
.school-staff-console .school-sidebar{border-right:1px solid var(--school-line);background:#fff;color:var(--school-ink)}
.school-staff-console .school-sidebar .school-brand,
.school-staff-console .school-sidebar .school-brand-name{color:var(--school-ink)}
.school-staff-console .school-sidebar .school-brand-name small,
.school-staff-console .school-sidebar-label{color:var(--school-muted)}
.school-staff-console .school-sidebar .school-nav a{border-radius:0 24px 24px 0;color:#514e68}
.school-staff-console .school-sidebar .school-nav a:hover{background:#f7f5fd;color:#37334f}
.school-staff-console .school-sidebar .school-nav a.active{background:#eeeafb;color:#5b4ca7;font-weight:700}
.school-staff-console .school-sidebar .school-nav a.active svg{color:#6554b4}
.school-staff-console .school-sidebar-account{border-color:var(--school-line)}
.school-staff-console .school-account-role,
.school-staff-console .school-sidebar-account button{color:var(--school-muted)}
.school-staff-console .school-sidebar-account button:hover{background:#f7f5fd;color:#5b4ca7}
.school-staff-console .school-topbar{border-color:var(--school-line);background:#fff}
.school-staff-console .school-topbar-title{color:var(--school-ink)}
.school-staff-console .school-topbar-context{border-color:var(--school-line);color:#6554b4}
.school-staff-console .school-topbar>a{color:#5b4ca7}
.school-staff-console .school-page-heading .home-section-kicker,
.school-staff-console .school-workspace-eyebrow{color:#7161bb}
.school-staff-console .school-page-heading h1,
.school-staff-console h2,
.school-staff-console h3{color:var(--school-ink)}
.school-staff-console .school-page-heading p{color:var(--school-muted)}
.school-staff-console .school-stat,
.school-staff-console .school-admin-quicklink,
.school-staff-console .school-staff-dashboard-case{
  border-color:var(--school-line);
  background:#fff;
  box-shadow:0 2px 8px rgba(52,44,93,.04);
}
.school-staff-console .school-stat{position:relative;min-height:145px;padding:1.1rem 1.2rem}
.school-staff-console .school-stat strong{color:#6253b5}
.school-staff-console .school-stat>span:last-child{color:var(--school-muted)}
.school-staff-console .school-stat-icon{
  display:grid;place-items:center;width:2.3rem;height:2.3rem;margin-bottom:.4rem;
  border-radius:12px;background:#f0edfa;color:#6554b4;font-size:1.1rem
}
.school-workspace-stats{margin:1.5rem 0 2rem}
.school-workspace-section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:.4rem}
.school-workspace-section-heading h2{margin:.2rem 0 0;font-size:1.2rem}
.school-staff-console .school-admin-quicklink{border-radius:14px;color:var(--school-ink)}
.school-staff-console .school-admin-quicklink:hover{border-color:#c8c0e8;box-shadow:0 5px 16px rgba(52,44,93,.08);color:var(--school-ink)}
.school-staff-console .school-admin-quicklink-icon{background:#f0edfa;color:#6554b4}
.school-staff-console .school-admin-quicklink small{color:var(--school-muted)}
.school-staff-console .school-admin-quicklink-arrow{color:#6554b4}
.school-staff-console .school-main .section-title{border-color:var(--school-line)}
.school-staff-console .school-main .section-title h2{color:var(--school-ink)}
.school-staff-console .school-main .section-title>a{color:#6253b5}
.school-staff-console .school-staff-dashboard-case{
  display:flex;align-items:center;gap:.85rem;min-height:76px;padding:.8rem 1rem;
  border-radius:13px;color:var(--school-ink);text-decoration:none
}
.school-staff-console .school-staff-dashboard-case:hover{border-color:#c8c0e8;box-shadow:0 5px 16px rgba(52,44,93,.08);transform:translateY(-1px)}
.school-staff-case-avatar{display:grid;place-items:center;width:2.45rem;height:2.45rem;flex:none;border-radius:50%;background:#eeeafb;color:#5b4ca7;font-weight:800}
.school-staff-case-main{display:grid;gap:.18rem;min-width:0;flex:1}
.school-staff-console .school-staff-case-main strong{color:var(--school-ink);font-size:.91rem}
.school-staff-case-main small{color:var(--school-muted);font-size:.78rem}
.school-staff-case-arrow{color:#6554b4;font-size:1.1rem}
.school-staff-console .school-form input:focus,
.school-staff-console .school-form select:focus,
.school-staff-console .school-form textarea:focus{border-color:#7667c4;outline:3px solid rgba(118,103,196,.16)}
.school-staff-console .school-form .btn,
.school-staff-console .school-actions .btn{border-color:#6554b4;background:#6554b4}
.school-staff-console .school-form .btn:hover,
.school-staff-console .school-actions .btn:hover{border-color:#51439f;background:#51439f}
.school-staff-console .school-form .btn-outline,
.school-staff-console .school-actions .btn-outline{border-color:#ded9ef;background:#fff;color:#6253b5!important}
.school-staff-console .school-form .btn-outline:hover,
.school-staff-console .school-actions .btn-outline:hover{background:#f7f5fd}
.school-staff-console .school-footer{border-color:var(--school-line);background:#fff;color:var(--school-muted)}
.school-staff-console .school-footer a{color:#6253b5}

.admin-portal{background:#f7f6fb;color:#292642}
.admin-header,.admin-nav{border-color:#e5e1f0;background:#fff}
.admin-brand{color:#292642}
.admin-brand-mark{background:#eeeafb;color:#6253b5}
.admin-role{border-color:#e2def0;background:#f7f5fd;color:#5b4ca7}
.admin-nav-label{color:#77748b}
.admin-nav>a{color:#514e68}
.admin-nav-icon{background:#f0edfa;color:#6554b4}
.admin-nav>a:hover{background:#f7f5fd;color:#37334f}
.admin-nav>a.active{border-color:#e2def0;background:#eeeafb;color:#5b4ca7}
.admin-nav>a.active .admin-nav-icon{background:#e2def7;color:#51439f}
.admin-nav-badge{background:#eeeafb;color:#5b4ca7}
.admin-dashboard-heading h1,.admin-section-heading h2{color:#292642}
.admin-eyebrow{color:#7161bb}
.admin-dashboard-heading p,.admin-stat-label,.admin-stat-card>span:last-child{color:#706d85}
.admin-stat-card,.admin-work-card{border-color:#e5e1f0;background:#fff;box-shadow:0 3px 14px rgba(52,44,93,.045)}
.admin-stat-card{color:#292642}
.admin-stat-card:hover,.admin-work-card:hover{border-color:#c8c0e8;box-shadow:0 8px 22px rgba(52,44,93,.08)}
.admin-stat-card strong,.admin-stat-card.is-pending strong{color:#6253b5}
.admin-work-icon{background:#f0edfa;color:#6554b4}
.admin-work-icon-lilac{background:#e9e4f8;color:#5b4ca7}
.admin-work-card h3{color:#292642}
.admin-work-card p,.admin-work-count{color:#706d85}
.admin-work-card a,.admin-footer a{color:#6253b5}
.admin-work-count{background:#f0edfa}
.admin-footer{border-color:#e5e1f0;background:#fff;color:#706d85}
.admin-pending-schools{border-color:#e5e1f0}
.admin-empty-state{border-color:#ded9ef;background:#fbfaff}
.admin-empty-state strong{color:#3f3968}
.admin-empty-state p{color:#706d85}
.admin-auth-site{background:#f7f6fb}
.admin-auth-site .auth-box{border-color:#e5e1f0;border-top-color:#6554b4}

@media(max-width:720px){
  .school-staff-console .school-sidebar .school-nav a{border-radius:8px}
  .school-staff-console .school-main{width:min(100% - 1.5rem,1440px);padding:1.2rem 0 2rem}
  .school-staff-console .school-topbar-context{display:none}
  .school-admin-quicklinks{grid-template-columns:1fr}
  .school-workspace-stats{margin:1.2rem 0 1.6rem}
}
@media(max-width:480px){
  .school-staff-console .school-staff-dashboard-case{flex-wrap:wrap}
  .school-staff-console .school-staff-dashboard-case .tag{margin-left:auto}
}
.school-staff-console .school-domain-row{align-items:center;justify-content:space-between;gap:1rem}
.school-staff-console .school-domain-row>div{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}
.school-support-resources{margin-top:1.25rem;border-color:#e3def5;background:#fbfaff;color:#514e68}
.school-support-resources h2{margin:.1rem 0 .45rem;color:#393451;font-size:1.05rem}
.school-support-resources p,.school-support-resources li{color:#5b5872;line-height:1.6}
.school-support-resources ul{display:grid;gap:.4rem;margin:.65rem 0 0;padding-left:1.25rem}
.school-support-resources a{color:#5b4ca7;font-weight:700}
.school-support-resources a:focus-visible{outline:3px solid rgba(101,84,180,.3);outline-offset:2px}
.legal-rgpd-form{margin-top:1.5rem;padding:clamp(1rem,3vw,1.5rem);border-color:#e5e1f0;border-radius:16px;background:#fff}
.legal-rgpd-form h3{margin-top:0;color:#292642}
.legal-rgpd-form>p{color:#706d85}
.legal-rgpd-form .school-form{display:grid;gap:1rem}
.legal-rgpd-form .school-form label{display:grid;gap:.4rem;color:#39364f;font-weight:650}
.legal-rgpd-form .school-form input,
.legal-rgpd-form .school-form select,
.legal-rgpd-form .school-form textarea{width:100%;min-height:44px;padding:.7rem .8rem;border:1px solid #d9d5e8;border-radius:10px;background:#fff;color:#292642;font:inherit}
.legal-rgpd-form .school-form textarea{min-height:130px;resize:vertical}
.legal-rgpd-form .school-form input:focus,
.legal-rgpd-form .school-form select:focus,
.legal-rgpd-form .school-form textarea:focus{border-color:#7667c4;outline:3px solid rgba(118,103,196,.16)}
.legal-rgpd-form .school-form label small{color:#706d85;font-size:.8rem;font-weight:400}
.legal-rgpd-form .school-form .btn{justify-self:start;min-height:44px;padding:.7rem 1rem;border:0;border-radius:11px;background:#6554b4;color:#fff;font-weight:750}
.legal-rgpd-form .school-form .btn:hover{background:#51439f}
.docs-index{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.2rem 0 2rem;padding:.9rem;border:1px solid #e5e1f0;border-radius:16px;background:#fbfaff}
.docs-index a{padding:.45rem .7rem;border:1px solid #e5e1f0;border-radius:999px;background:#fff;color:#51439f;font-size:.82rem;font-weight:700;text-decoration:none}
.docs-index a:hover{border-color:#c8c0e8;background:#f3f0fc}
.docs-section{scroll-margin-top:1.5rem;margin:1.4rem 0;padding:clamp(1.1rem,3vw,1.7rem);border:1px solid #e6e2f0;border-radius:18px;background:#fff;box-shadow:0 5px 18px rgba(52,44,93,.035)}
.docs-step{color:#7161bb;font-size:.7rem;font-weight:850;letter-spacing:.1em}
.docs-section h2{margin:.35rem 0 .8rem;color:#292642;font-size:clamp(1.2rem,2.5vw,1.55rem)}
.docs-section h3{margin:1.1rem 0 .45rem;color:#39364f;font-size:1rem}
.docs-section p,.docs-section li{color:#5f5c74;line-height:1.7}
.docs-section li+li{margin-top:.35rem}
.docs-section a{color:#5b4ca7;font-weight:700}
.docs-section code{padding:.12rem .35rem;border-radius:5px;background:#f1eef9;color:#55469d;font-size:.88em;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.docs-section ol,.docs-section ul{padding-left:1.35rem}
.docs-page .school-support-resources{padding:1rem 1.2rem;border:1px solid #e3def5;border-radius:14px;background:#fbfaff}
.docs-page{
  display:grid;
  grid-template-columns:minmax(205px,.62fr) minmax(0,1.6fr);
  gap:0 1.3rem;
  width:100%;
  min-width:0;
  max-width:1040px;
}
.docs-hero,.docs-audience,.docs-last-updated{grid-column:1/-1}
.docs-hero{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(230px,.8fr);
  align-items:center;
  gap:clamp(1rem,3vw,2rem);
  padding:0 0 1.4rem;
  border-bottom:1px solid #e8e4f0;
}
.docs-hero h1{margin:.4rem 0 .7rem;color:#30264f;font-size:clamp(1.9rem,4vw,2.65rem);letter-spacing:-.04em;line-height:1.12}
.docs-hero p{margin:0;color:#625f71;line-height:1.65}
.docs-hero-note{padding:1rem 1.1rem;border:1px solid #e3def5;border-radius:14px;background:#fbfaff;color:#514b68}
.docs-hero-note strong{color:#30264f}
.docs-hero-note p{margin:.4rem 0 .7rem;font-size:.88rem}
.docs-hero-note a:not(.docs-hero-link){color:#493b80;font-weight:800}
.docs-hero-link{display:inline-flex;align-items:center;gap:.35rem;color:#493b80;font-size:.86rem;font-weight:800;text-decoration:none}
.docs-hero-link:hover{text-decoration:underline;text-underline-offset:3px}
.docs-audience{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.2rem 0 1.35rem}
.docs-audience a{display:flex;min-width:0;flex-direction:column;gap:.32rem;padding:.85rem .9rem;border:1px solid #e5e1ee;border-radius:13px;background:#fff;text-decoration:none;transition:border-color .15s,background .15s}
.docs-audience a:hover{border-color:#c8c0e8;background:#fbfaff}
.docs-audience span{color:#7161bb;font-size:.66rem;font-weight:850;letter-spacing:.07em}
.docs-audience strong{color:#30264f;font-size:.91rem}
.docs-audience small{color:#625f71;font-size:.78rem;line-height:1.45}
.docs-index{grid-column:1;position:sticky;top:90px;align-self:start;display:grid;gap:.3rem;margin:.15rem 0 1.2rem;padding:.8rem;border:1px solid #e5e1f0;border-radius:14px;background:#fbfaff}
.docs-index strong{padding:.1rem .35rem .45rem;color:#30264f;font-size:.84rem}
.docs-index a{padding:.5rem .55rem;border:0;border-radius:8px;background:transparent;font-size:.8rem;line-height:1.3}
.docs-index a:hover{background:#f1eef9}
.docs-section{grid-column:2;margin:0 0 1rem;padding:clamp(1rem,2.5vw,1.45rem)}
.docs-last-updated{margin:.3rem 0 0;padding-top:1rem;border-top:1px solid #e8e4f0;color:#625f71;font-size:.88rem}
.docs-last-updated a{color:#493b80;font-weight:750}
@media(max-width:760px){
  .docs-page{grid-template-columns:minmax(0,1fr);gap:0}
  .docs-hero,.docs-audience,.docs-last-updated,.docs-index,.docs-section{grid-column:1}
  .docs-hero{grid-template-columns:minmax(0,1fr);align-items:start}
  .docs-audience{grid-template-columns:minmax(0,1fr);margin-bottom:1rem}
  .docs-index{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;margin:.1rem 0 1rem}
  .docs-index strong{grid-column:1/-1}
  .docs-section{margin-bottom:.8rem}
}
@media(max-width:520px){
  .docs-index{grid-template-columns:minmax(0,1fr)}
  .docs-index strong{grid-column:1}
  .docs-hero-note{padding:.9rem}
  .docs-section{padding:1rem}
}
@media(max-width:520px){
  .school-staff-console .school-domain-row{align-items:flex-start}
  .school-staff-console .school-domain-row form{width:100%}
  .docs-index{gap:.4rem;padding:.7rem}
  .docs-index a{font-size:.76rem}
}

.admin-portal{background:#f7f6fb}
.admin-header{min-height:72px;box-shadow:0 1px 2px rgba(46,38,78,.04)}
.admin-nav{padding:1.1rem .75rem;background:#fbfaff}
.admin-nav>a{min-height:42px;border-radius:10px;font-weight:650}
.admin-nav>a.active{border-color:transparent;background:#eeeafb;color:#55459f}
.admin-nav>a.active .admin-nav-icon{background:#e1dcf7;color:#55459f}
.admin-main{max-width:1280px}
.admin-dashboard-heading{margin-bottom:1.75rem}
.admin-dashboard-heading h1{font-size:clamp(1.85rem,3vw,2.35rem);font-weight:700;letter-spacing:-.035em}
.admin-stats{gap:1rem}
.admin-stat-card{min-height:132px;padding:1.15rem;border-radius:14px;box-shadow:0 1px 2px rgba(46,38,78,.05)}
.admin-stat-card strong{font-size:1.9rem;font-weight:650}
.admin-work-queue{margin-top:2.4rem}
.admin-work-grid{gap:1rem}
.admin-work-card{min-height:164px;padding:1.2rem;border-radius:14px;box-shadow:0 1px 2px rgba(46,38,78,.05)}
.admin-work-icon,.admin-work-icon-lilac{border-radius:11px;background:#eeeafb;color:#6253b5}
.admin-work-card:hover,.admin-stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(46,38,78,.08)}
@media(max-width:700px){
  .admin-nav{background:#fbfaff}
  .admin-main{width:min(100% - 1.25rem,1280px)}
  .admin-work-card{min-height:0}
}

/* Public-facing pages use the same calm mauve identity as the connected spaces. */
.public-site{
  --sage-bg:#f4effc;--sage-soft:#faf8ff;--sage-strong:#6846c1;--sage-deep:#302255;
  --sand:#f6f2fc;--paper:#fbf9ff;--white:#fff;--ink:#29223d;--muted:#625a75;
  --line:#e5ddf6;--jaune:#a78bfa;--jaune-clair:#f2edff;--rouge:#6846c1;--rouge-fonce:#51329f;
  --encre:#29223d;--encre-douce:#625a75;--papier:#fbf9ff;--blanc:#fff;--bord:#e5ddf6;
  --shadow:0 10px 28px rgba(58,37,106,.08);--ombre:var(--shadow);
  --brand-forest:#302255;--brand-leaf:#6846c1;--brand-mint:#eee6fc;--brand-paper:#fbf9ff;
  --brand-ink:#29223d;--brand-muted:#625a75;--brand-line:#e5ddf6;--brand-gold:#a78bfa;
  background:var(--paper);color:var(--ink)
}
.public-site .topstripe{background:linear-gradient(90deg,#6846c1 0 68%,#a78bfa 68% 88%,#e9dffb 88% 100%)}
.public-site .site-header{border-color:var(--brand-line)}
.public-site .main-nav a,.public-site .main-nav .link-btn{color:#49445d}
.public-site .main-nav a:hover,.public-site .main-nav .link-btn:hover,
.public-site .main-nav a.active{background:#f1ecfb;color:#51329f}
.public-site .main-nav a.active{box-shadow:inset 0 -2px #6846c1}
.public-site .site-footer{border-color:#a78bfa;background:#302255;color:#f6f2ff}
.public-site .site-footer h3{color:#d9ccff}
.public-site .site-footer a{color:#f2effa}
.public-site .site-footer a:hover{color:#d9ccff}
.public-site .footer-bottom{border-color:#5c4b7f}
.public-site .pwa-install p{color:#ded9eb}
.public-site .home-hero{background:#f7f4fd}
.public-site .home-hero h1 span,.public-site .home-card-answer{color:#6846c1}
.public-site .home-kicker,.public-site .home-section-kicker{color:#6846c1}
.public-site .home-kicker{border-color:#e5ddf6;background:#fff}
.public-site .home-search button,.public-site .daily-answer-form button{background:#6846c1;color:#fff}
.public-site .home-search button:hover,.public-site .daily-answer-form button:hover{background:#51329f}
.public-site .home-primary-cta{border:1px solid #6846c1;background:#6846c1;color:#fff;box-shadow:0 3px 0 #51329f}
.public-site .home-primary-cta:hover{color:#fff}
.public-site .home-secondary-cta{color:#6846c1}
.public-site .home-reassurance span{background:#eee6fc;color:#6846c1}
.public-site .home-flashcard{border-color:#e5ddf6}
.public-site .home-flashcard::before{border-color:#d9ccf3;background:#eee6fc}
.public-site .home-card-answer{background:#f1ecfb}
.public-site .home-proof{border-color:#e5ddf6}
.public-site .legal-heading h1,.public-site .legal-page section h2{color:#302255}
.public-site .legal-page section h2{border-color:#e5ddf6}
.public-site .legal-page .table-wrap{border-color:#e5ddf6}
.public-site .legal-page th{background:#f1ecfb}
.public-site .legal-toc a{border-color:#e5ddf6;background:#faf8ff;color:#51329f}
.public-site .legal-toc a:hover{border-color:#c8b8ee;background:#eee6fc}
.public-site .privacy-action-number,.public-site .privacy-timeline li::before{background:#eee6fc;color:#6846c1}
.public-site .privacy-profile-card{border-color:#e5ddf6;background:linear-gradient(110deg,#f1ecfb,#fff)}
.public-site .privacy-profile-avatar{background:#514481}
.public-site .form-stack input:focus,.public-site .form-stack select:focus,.public-site .form-stack textarea:focus{border-color:#6554a4;outline:3px solid rgba(101,84,164,.16);outline-offset:1px}
.public-site.admin-auth-site{background:#f7f5fc}
.public-site.admin-auth-site .auth-box{border-color:#e5e1ee;border-top-color:#6554a4}
.public-site .admin-auth-form input{border-color:#ded9ed}
.public-site .admin-auth-form input:focus{border-color:#6554a4;outline-color:rgba(101,84,164,.18)}
.public-site .admin-auth-form .btn{background:#514481}
.public-site .admin-auth-form .btn:hover{background:#40366b}

.school-public-site{
  --student-ink:#29263a;--student-muted:#625f71;--student-paper:#fbfaff;
  --student-lilac:#eeeafb;--student-purple:#5b4b9a;--student-teal:#5b4b9a;
  --school-ink:#30264f;--school-paper:#fbfaff;--school-accent:#5b4b9a;
  --ink:#29263a;--muted:#625f71;--paper:#fbfaff;--white:#fff;--line:#e5e1ee;
  --encre:#29263a;--encre-douce:#625f71;--papier:#fbfaff;--blanc:#fff;--bord:#e5e1ee;
  --shadow:0 10px 28px rgba(48,38,79,.08);--ombre:var(--shadow);
  --brand-forest:#30264f;--brand-leaf:#6554a4;--brand-mint:#eeeafb;
  --brand-ink:#29263a;--brand-muted:#625f71;--brand-line:#e5e1ee;
  background:#fbfaff;color:#29263a
}
.school-public-site :focus-visible{outline-color:#6554a4}
.school-public-site .school-header{border-color:#e5e1ee}
.school-public-site .school-header>a:last-child:not(.school-brand){border-color:#e2ddef;background:#fff;color:#514481}
.school-public-site .school-header>a:last-child:not(.school-brand):hover{background:#f1eef9;color:#30264f}
.school-public-site .school-landing{border-color:#e2ddef;background:linear-gradient(125deg,#f8f6fc 0%,#f1eef9 62%,#e9e4f5 100%);box-shadow:0 18px 50px rgba(48,38,79,.08)}
.school-public-site .school-landing-copy h1,.school-public-site .school-page-heading h1{color:#30264f}
.school-public-site .school-eyebrow,.school-public-site .home-section-kicker{color:#6554a4}
.school-public-site .school-landing-copy>p:not(.school-privacy-note){color:#514d62}
.school-public-site .school-primary-action,.school-public-site .school-actions .btn,
.school-public-site .school-form .btn,.school-public-site .school-confirmation .btn{border-color:#514481;background:#514481;color:#fff!important;box-shadow:0 4px 0 rgba(48,38,79,.12)}
.school-public-site .school-primary-action:hover,.school-public-site .school-actions .btn:hover,
.school-public-site .school-form .btn:hover,.school-public-site .school-confirmation .btn:hover{background:#40366b}
.school-public-site .school-landing-illustration svg{filter:drop-shadow(0 14px 16px rgba(48,38,79,.08))}
.school-public-site .student-shortcut{border-color:#e5e1ee;box-shadow:0 5px 18px rgba(48,38,79,.035)}
.school-public-site .student-shortcut:hover{border-color:#bdb2dc;box-shadow:0 10px 24px rgba(48,38,79,.08)}
.school-public-site .student-shortcut-icon,.school-public-site .student-shortcut-teal .student-shortcut-icon{background:#eeeafb;color:#514481}
.school-public-site .student-shortcut-arrow,.school-public-site .student-school-link:hover{color:#514481}
.school-public-site .school-how-heading h2{color:#30264f}
.school-public-site .school-how-heading p,.school-public-site .school-how li{color:#625f71}
.school-public-site .school-how li{border-color:#e5e1ee}
.school-public-site .school-how li::before{border-color:#d0c9e8;color:#6554a4}
.school-public-site .student-safety-note{border-color:#e7dfc6;background:#fbf7ea;color:#554a32}
.school-public-site .student-safety-note strong{color:#423820}
.school-public-site .school-page-heading p{color:#625f71}
.school-public-site .school-form-card,.school-public-site .school-case-content,.school-public-site .school-confirmation,
.school-public-site .school-case-card,.school-public-site .school-staff-card,.school-public-site .school-class-card,
.school-public-site .school-list .card,.school-public-site .student-main>.card{border-color:#e5e1ee}
.school-public-site .school-form label{color:#30264f}
.school-public-site .school-form input,.school-public-site .school-form select,.school-public-site .school-form textarea{border-color:#d9d3e8;background:#fdfcff;color:#29263a}
.school-public-site .school-form input:focus,.school-public-site .school-form select:focus,.school-public-site .school-form textarea:focus{border-color:#6554a4;outline:3px solid rgba(101,84,164,.16);outline-offset:1px}
.school-public-site .school-confirmation{border-top-color:#6554a4}
.school-public-site .school-confirmation-mark{background:#eeeafb;color:#514481}
.school-public-site .school-confirmation h1{color:#30264f}
.school-public-site .school-footer{border-color:#e5e1ee;background:#30264f;color:#f2effa}
.school-public-site .school-footer a{color:#e6d9a9}
.school-public-site .school-footer nav a{color:#f2effa}
.school-public-site .school-landing{grid-template-columns:minmax(0,1.15fr) minmax(270px,.75fr);gap:clamp(1.5rem,4vw,3rem);min-height:0}
.school-public-site .school-landing-copy h1{max-width:16ch;font-size:clamp(2.25rem,4.5vw,3.6rem);line-height:1.08}
.school-public-site .school-actions{gap:.65rem}
.school-public-site .school-actions .btn{margin:0;text-align:center}
.school-public-site .school-actions .btn-outline{border:1px solid #d4cde7;background:#fff;color:#493b80!important;box-shadow:none}
.school-public-site .school-actions .btn-outline:hover{background:#f1eef9}
.school-landing-guide{display:grid;align-content:center;gap:.6rem;padding:1.4rem;border:1px solid rgba(101,84,164,.17);border-radius:18px;background:rgba(255,255,255,.82)}
.school-landing-guide h2{margin:.1rem 0;color:#30264f;font:700 1.2rem var(--sans);letter-spacing:-.02em}
.school-landing-guide p{margin:0;color:#625f71;font-size:.9rem;line-height:1.6}
.school-landing-guide>a{width:fit-content;color:#514481;font-size:.88rem;font-weight:750;text-underline-offset:3px}
.school-landing-guide .school-landing-note{margin-top:.35rem;padding-top:.75rem;border-top:1px solid #e8e4f0;font-size:.78rem}
.school-audience-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem 2rem;margin:1.4rem auto;padding:1.25rem 1.4rem;border:1px solid #e5e1ee;border-radius:16px;background:#fff}
.school-audience-card h2{margin:.2rem 0 .35rem;color:#30264f;font:700 1.05rem var(--sans);letter-spacing:-.02em}
.school-audience-card p{margin:0;color:#625f71;font-size:.86rem}
.school-audience-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}
.school-audience-actions a{display:inline-flex;align-items:center;min-height:42px;padding:.55rem .8rem;border:1px solid #dcd6eb;border-radius:10px;color:#493b80;font-size:.83rem;font-weight:750;text-decoration:none}
.school-audience-actions a:first-child{border-color:#514481;background:#514481;color:#fff}
.school-audience-actions a:hover{background:#f1eef9;color:#30264f}
.school-audience-actions a:first-child:hover{background:#40366b;color:#fff}
.school-audience-guide{grid-column:1/-1;width:fit-content;color:#514481;font-size:.82rem;font-weight:700;text-underline-offset:3px}
.school-public-site .school-how{align-items:start;margin:2.7rem auto 1.5rem}
.school-public-site .school-how-heading h2{margin:.35rem 0;font-size:1.65rem}
.school-public-site .school-how ol{display:grid;gap:.65rem;padding:0;list-style:none;counter-reset:help-step}
.school-public-site .school-how li{position:relative;min-height:70px;padding:.75rem .85rem .75rem 3rem;border:1px solid #e5e1ee;border-radius:13px;background:#fff;color:#625f71;line-height:1.55;counter-increment:help-step}
.school-public-site .school-how li::before{position:absolute;top:.72rem;left:.8rem;display:grid;place-items:center;width:1.55rem;height:1.55rem;border:0;border-radius:50%;background:#eeeafb;color:#514481;content:counter(help-step);font-size:.8rem;font-weight:850}
.school-public-site .school-how li strong{color:#30264f}
.school-public-site .student-safety-note{display:block;margin:1rem auto 0;padding:1rem 1.15rem;text-align:left}
.school-public-site .student-safety-note p{margin:.3rem 0 0;line-height:1.55}
.school-public-site .student-safety-note a{color:#493b80;font-weight:800;text-underline-offset:3px}
.school-public-site .school-footer{align-items:flex-start}
.school-footer-notes{display:grid;gap:.35rem;max-width:60ch}
.school-footer-notes p{margin:0;line-height:1.55}
.school-public-site .school-footer nav{justify-content:flex-end}
@media(max-width:560px){
  .school-public-site .school-landing{grid-template-columns:1fr;gap:1rem;padding:1.25rem}
  .school-public-site .school-landing-copy h1{max-width:17ch;font-size:clamp(2.1rem,9vw,2.8rem)}
  .school-public-site .school-actions{display:grid;grid-template-columns:1fr}
  .school-public-site .school-actions .btn{width:100%}
  .school-landing-guide{padding:1rem}
  .school-audience-card{grid-template-columns:1fr;gap:.8rem;padding:1rem}
  .school-audience-actions{display:grid;grid-template-columns:1fr}
  .school-audience-actions a{justify-content:center;text-align:center}
  .school-audience-guide{grid-column:auto}
  .school-public-site .school-how{margin:2rem auto 1.2rem}
  .school-public-site .school-how ol{gap:.5rem}
  .school-public-site .school-footer nav{justify-content:flex-start}
}

/* Public landing page: mobile-first layout from the approved lavender mockup. */
body.school-public-site.school-public-home{
  --home-purple:#6846C1;
  --home-lavender:#A78BFA;
  --home-pale:#E9DFFB;
  --home-canvas:#F7F4FD;
  background:var(--home-canvas);
  color:#30264f;
}
body.school-public-site.school-public-home .topstripe{
  height:3px;
  background:linear-gradient(90deg,var(--home-purple),var(--home-lavender) 68%,var(--home-pale));
}
body.school-public-site.school-public-home .site-header{
  border-color:var(--home-pale);
  background:rgba(250,248,255,.96);
}
body.school-public-site.school-public-home .header-inner{
  min-height:68px;
  max-width:1100px;
}
body.school-public-site.school-public-home .brand{
  gap:.55rem;
  color:var(--home-purple)!important;
  font-family:var(--sans);
  font-size:1.08rem;
  font-weight:820;
  letter-spacing:-.045em;
}
body.school-public-site.school-public-home .public-home-brand-mark{
  display:grid;
  flex:0 0 36px;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--home-canvas);
}
body.school-public-site.school-public-home .public-home-brand-mark svg{
  width:25px;
  height:25px;
  fill:var(--home-purple);
  stroke:var(--home-purple);
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.8;
}
body.school-public-site.school-public-home .public-home-brand-mark svg path+path{
  fill:none;
  stroke:#fff;
  stroke-width:1.6;
}
body.school-public-site.school-public-home .public-home-brand-copy{
  display:grid;
  line-height:1.1;
}
body.school-public-site.school-public-home .public-home-brand-copy small{
  margin-top:.2rem;
  color:#776a9a;
  font-size:.61rem;
  font-weight:600;
  letter-spacing:0;
}
body.school-public-site.school-public-home .nav-toggle{
  width:38px;
  height:38px;
  padding:0;
  border-color:#e3dcf4;
  border-radius:11px;
  background:#fff;
  color:var(--home-purple);
  font-size:1.25rem;
}
body.school-public-site.school-public-home .main-nav a{
  color:#554b70;
}
body.school-public-site.school-public-home .main-nav a:hover,
body.school-public-site.school-public-home .main-nav a.active{
  background:var(--home-canvas);
  color:var(--home-purple);
}
body.school-public-site.school-public-home .main-nav .main-nav-action{
  border-color:var(--home-purple);
  background:var(--home-purple);
  color:#fff;
}
body.school-public-site.school-public-home .school-main{
  width:min(100% - 2rem,1080px);
  max-width:1080px;
  min-height:0;
  padding:clamp(1rem,3vw,2rem) 0 2.5rem;
}
.public-home-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(260px,.85fr);
  align-items:center;
  min-height:380px;
  margin:.3rem 0 1rem;
  padding:clamp(1.5rem,4vw,3rem);
  overflow:hidden;
  border:1px solid #e6e0f6;
  border-radius:26px;
  background:linear-gradient(135deg,#fff 0%,#faf8ff 56%,var(--home-pale) 100%);
  box-shadow:0 16px 42px rgba(73,49,141,.08);
}
.public-home-copy{position:relative;z-index:2;max-width:570px}
.public-home-kicker{
  display:inline-flex;
  align-items:center;
  margin-bottom:.55rem;
  color:var(--home-purple);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.1em;
}
.public-home-copy h1{
  max-width:16ch;
  margin:0 0 .65rem;
  color:#302255;
  font-family:var(--sans);
  font-size:clamp(2rem,4.2vw,3.25rem);
  font-weight:820;
  line-height:1.06;
  letter-spacing:-.055em;
}
.public-home-copy>p:not(.flash){
  max-width:45ch;
  margin:0;
  color:#5e547a;
  font-size:clamp(.92rem,1.4vw,1.03rem);
  line-height:1.65;
}
.public-home-primary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  width:fit-content;
  min-height:48px;
  margin-top:1.25rem;
  padding:.72rem 1.15rem;
  border:1px solid var(--home-purple);
  border-radius:999px;
  background:linear-gradient(100deg,var(--home-lavender),var(--home-purple));
  box-shadow:0 5px 12px rgba(86,52,183,.2);
  color:#fff;
  font-size:.9rem;
  font-weight:780;
  text-align:center;
  text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease;
}
.public-home-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(86,52,183,.25);
  color:#fff;
}
.public-home-primary svg,.public-home-path svg,.public-home-assurances svg{
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-width:1.8;
}
.public-home-primary svg{width:19px;height:19px}
.public-home-illustration{
  position:relative;
  z-index:1;
  display:grid;
  align-self:stretch;
  place-items:center;
  min-height:300px;
}
.public-home-illustration::before{
  position:absolute;
  top:11%;
  right:5%;
  width:min(90%,320px);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle at 40% 36%,#fff 0,#f1ecff 68%,#e4dbff 100%);
  content:"";
}
.public-home-illustration svg{
  position:relative;
  width:min(100%,350px);
  max-height:340px;
  filter:drop-shadow(0 12px 18px rgba(62,43,110,.1));
}
.public-home-paths{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem;
  max-width:900px;
  margin:0 auto;
}
.public-home-path{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 18px;
  align-items:center;
  gap:.7rem;
  min-height:78px;
  padding:.75rem .85rem;
  border:1px solid #e5dff4;
  border-radius:15px;
  background:rgba(255,255,255,.9);
  box-shadow:0 5px 16px rgba(66,44,123,.045);
  color:#352764;
  text-decoration:none;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.public-home-path:hover{
  transform:translateY(-2px);
  border-color:#c5b6ef;
  box-shadow:0 9px 22px rgba(66,44,123,.09);
  color:#352764;
}
.public-home-path-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--home-pale);
  color:var(--home-purple);
}
.public-home-path-icon svg{width:22px;height:22px}
.public-home-path>span:nth-child(2){display:grid;gap:.04rem}
.public-home-path strong{font-size:.83rem;font-weight:780;line-height:1.3}
.public-home-path small{color:#655b80;font-size:.73rem;line-height:1.3}
.public-home-chevron{width:17px;height:17px;color:var(--home-purple)}
.public-home-assurances{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:clamp(.8rem,4vw,2.4rem);
  max-width:900px;
  margin:1rem auto 1.8rem;
  padding:.85rem 1rem;
  border-top:1px solid #e5dff4;
  border-bottom:1px solid #e5dff4;
  color:#625782;
  list-style:none;
}
.public-home-assurances li{
  display:flex;
  align-items:center;
  gap:.4rem;
  font-size:.75rem;
  font-weight:700;
  white-space:nowrap;
}
.public-home-assurances svg{width:17px;height:17px;color:var(--home-purple)}
body.school-public-site.school-public-home .school-audience-card{
  max-width:900px;
  margin:1.8rem auto;
  border-radius:17px;
  box-shadow:0 6px 20px rgba(66,44,123,.04);
}
body.school-public-site.school-public-home .school-how{
  max-width:900px;
}
body.school-public-site.school-public-home .student-safety-note{
  max-width:900px;
}
@media(max-width:720px){
  body.school-public-site.school-public-home .header-inner{
    min-height:62px;
    gap:.5rem;
    padding:.45rem .8rem;
  }
  body.school-public-site.school-public-home .public-home-brand-mark{
    flex-basis:32px;
    width:32px;
    height:32px;
  }
  body.school-public-site.school-public-home .public-home-brand-mark svg{
    width:23px;
    height:23px;
  }
  body.school-public-site.school-public-home .brand{
    gap:.42rem;
    font-size:1rem;
  }
  body.school-public-site.school-public-home .public-home-brand-copy small{
    font-size:.56rem;
  }
  body.school-public-site.school-public-home .school-main{
    width:min(100% - 1.5rem,540px);
    padding:.8rem 0 2rem;
  }
  .public-home-hero{
    display:block;
    min-height:0;
    margin:.2rem 0 .8rem;
    padding:1.05rem 1rem .95rem;
    border-radius:20px;
  }
  .public-home-copy{min-height:278px}
  .public-home-kicker{margin-bottom:.4rem;font-size:.58rem}
  .public-home-copy h1{
    max-width:66%;
    margin-bottom:.55rem;
    font-size:clamp(1.42rem,6.4vw,1.8rem);
    line-height:1.12;
  }
  .public-home-copy>p:not(.flash){
    max-width:67%;
    font-size:.78rem;
    line-height:1.5;
  }
  .public-home-primary{
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    width:100%;
    min-height:44px;
    margin:0;
    padding:.62rem .8rem;
    font-size:.82rem;
  }
  .public-home-illustration{
    position:absolute;
    top:1.65rem;
    right:-.35rem;
    width:53%;
    height:210px;
    min-height:0;
    opacity:.98;
  }
  .public-home-illustration::before{
    top:4%;
    right:3%;
    width:94%;
  }
  .public-home-illustration svg{
    width:100%;
    max-height:210px;
  }
  .public-home-paths{
    grid-template-columns:1fr;
    gap:.45rem;
  }
  .public-home-path{
    grid-template-columns:36px minmax(0,1fr) 16px;
    gap:.65rem;
    min-height:57px;
    padding:.55rem .7rem;
    border-radius:13px;
  }
  .public-home-path-icon{width:36px;height:36px}
  .public-home-path-icon svg{width:20px;height:20px}
  .public-home-path strong{font-size:.76rem}
  .public-home-path small{font-size:.68rem}
  .public-home-assurances{
    justify-content:space-between;
    gap:.35rem;
    margin:.7rem 0 1.4rem;
    padding:.65rem .1rem;
  }
  .public-home-assurances li{gap:.25rem;font-size:.61rem}
  .public-home-assurances svg{width:14px;height:14px}
}
@media(max-width:360px){
  body.school-public-site.school-public-home .public-home-brand-copy small{display:none}
  .public-home-hero{padding-right:.8rem;padding-left:.8rem}
  .public-home-copy h1{max-width:69%;font-size:1.38rem}
  .public-home-copy>p:not(.flash){max-width:68%;font-size:.73rem}
  .public-home-illustration{right:-.55rem;width:54%}
  .public-home-assurances li{font-size:.56rem}
}

/* One compact, consistent footer across public, school and admin pages. */
.site-footer-compact,.admin-footer.site-footer-compact{
  display:block;
  margin:1rem 0 0;
  padding:.7rem clamp(1rem,4vw,2rem);
  border:0;
  border-top:1px solid #51476b;
  background:#30264f;
  color:#f2effa;
  font-size:.75rem;
}
.footer-compact-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.45rem 1.25rem;
  max-width:1120px;
  margin:0 auto;
}
.footer-compact-inner p{margin:0}
.footer-compact-brand{white-space:nowrap}
.site-footer-compact a,.admin-footer.site-footer-compact a{color:#e6d9a9}
.site-footer-compact a:hover,.admin-footer.site-footer-compact a:hover{color:#fff;text-decoration:underline}
.site-footer-compact nav,.admin-footer.site-footer-compact nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.35rem 1rem;
  flex-wrap:wrap;
}
.site-footer-compact nav a,.admin-footer.site-footer-compact nav a{
  display:inline;
  padding:0;
  color:#f2effa;
  font-size:.75rem;
  font-weight:650;
  text-decoration:none;
}
.admin-footer.site-footer-compact{grid-column:1/-1}
@media(max-width:760px){
  .footer-compact-inner{justify-content:center;flex-wrap:wrap;text-align:center}
  .site-footer-compact nav,.admin-footer.site-footer-compact nav{justify-content:center}
}
@media(max-width:420px){
  .site-footer-compact,.admin-footer.site-footer-compact{padding:.8rem 1rem}
  .footer-compact-inner{flex-direction:column;gap:.4rem}
  .footer-compact-brand{white-space:normal}
  .site-footer-compact nav,.admin-footer.site-footer-compact nav{gap:.3rem .8rem}
}

/* Shared public and student-facing experience. */
.public-site .header-inner{min-height:68px}
.public-site .brand{font-family:var(--sans);font-size:1.18rem;font-weight:780;letter-spacing:-.04em}
.public-site .brand span{color:inherit}
.public-site .main-nav{gap:.25rem}
.public-site .main-nav a{padding:.55rem .75rem;font-size:.84rem}
.public-site .main-nav .main-nav-action{margin-left:.3rem;border:1px solid #514481;background:#514481;color:#fff}
.public-site .main-nav .main-nav-action:hover,
.public-site .main-nav .main-nav-action.active{background:#40366b;color:#fff}
.school-public-site.school-portal{background:#fbfaff;color:#29263a}
.school-public-site .school-main{width:min(100% - 2rem,1100px);max-width:1100px;min-height:calc(100vh - 190px);padding:clamp(1.25rem,3.5vw,2.6rem) 0 3rem}
.school-public-site .school-page-heading{max-width:760px;margin:0 auto 1.35rem}
.school-public-site .school-page-heading .home-section-kicker{display:inline-block;margin-bottom:.3rem;color:#6554a4;font-size:.72rem;font-weight:850;letter-spacing:.09em}
.school-public-site .school-page-heading h1{font-family:var(--sans);font-size:clamp(1.8rem,4vw,2.45rem);font-weight:760;line-height:1.13;letter-spacing:-.045em}
.school-public-site .school-page-heading p{margin:.45rem 0 0;font-size:.98rem;line-height:1.65}
.school-public-site .school-form-card{max-width:760px;margin:.9rem auto 1rem;padding:clamp(1.1rem,3vw,1.8rem);border-color:#e5e1ee;border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(48,38,79,.055)}
.school-public-site .school-form{gap:1.1rem}
.school-public-site .school-form label{gap:.45rem;font-size:.9rem;font-weight:700;line-height:1.45}
.school-public-site .school-form input,.school-public-site .school-form select,.school-public-site .school-form textarea{min-height:48px;padding:.72rem .82rem;border-radius:10px;font-size:1rem;line-height:1.45}
.school-public-site .school-form textarea{min-height:155px}
.school-public-site .school-form label small,.school-public-site .school-form>small{font-size:.8rem;line-height:1.55}
.school-public-site .school-form .btn,.school-public-site .school-actions .btn,.school-public-site .school-confirmation .btn{min-height:46px;padding:.7rem 1rem;border-radius:10px;font-size:.9rem;font-weight:750}
.school-form-intro{margin:0 0 1.1rem;padding:.85rem 1rem;border:1px solid #e6e1f1;border-radius:12px;background:#fbfaff;color:#514b68}
.school-form-intro strong{color:#30264f}
.school-form-intro p{margin:.2rem 0 0;font-size:.84rem;line-height:1.55}
.school-form-reassurance{display:flex;align-items:flex-start;gap:.75rem;max-width:760px;margin:0 auto 1rem;padding:.9rem 1rem;border:1px solid #e3def5;border-radius:13px;background:#f7f5fc;color:#514b68}
.school-reassurance-mark{display:grid;place-items:center;flex:0 0 1.4rem;height:1.4rem;border-radius:50%;background:#e8e2f7;color:#514481;font-size:.85rem;font-weight:850}
.school-form-reassurance p{margin:0;font-size:.85rem;line-height:1.6}
.school-form-reassurance strong{color:#30264f}
.school-wizard-progress{gap:.5rem;margin-bottom:.35rem;padding:.85rem 1rem;border:1px solid #e7e2f0;border-radius:12px;background:#fbfaff}
.school-wizard-progress-labels{display:flex;justify-content:space-between;align-items:center;gap:.7rem;color:#514b68;font-size:.82rem}
.school-wizard-progress-labels strong{color:#30264f}
.school-public-site .school-wizard-progress progress{height:.55rem;border:0;border-radius:999px;overflow:hidden;background:#e9e5f1;accent-color:#6554a4}
.school-public-site .school-wizard-progress progress::-webkit-progress-bar{border-radius:999px;background:#e9e5f1}
.school-public-site .school-wizard-progress progress::-webkit-progress-value{border-radius:999px;background:#6554a4}
.school-public-site .school-wizard-progress progress::-moz-progress-bar{border-radius:999px;background:#6554a4}
.school-wizard-step[hidden]{display:none}
.school-wizard-step{display:grid;gap:1rem}
.school-public-site .school-wizard-step h2{margin:0;color:#30264f;font-family:var(--sans);font-size:1.2rem;font-weight:740;letter-spacing:-.025em}
.school-public-site .school-choice-group{gap:.6rem;margin:0;padding:.9rem;border-color:#e3def0;border-radius:12px}
.school-public-site .school-choice-group legend{padding:0 .3rem;color:#30264f;font-size:.87rem}
.school-public-site .school-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}
.school-public-site .school-check{align-items:flex-start;min-height:48px;padding:.7rem;border-color:#e3def0;border-radius:10px;background:#fff;color:#3e3a50;font-size:.83rem;line-height:1.45}
.school-public-site .school-check input{width:1.05rem;min-height:1.05rem;height:1.05rem;margin:.12rem 0 0;accent-color:#6554a4}
.school-public-site .school-check span{color:inherit}
.school-public-site .school-check:has(input:checked){border-color:#8f82c3;background:#f6f3fc;box-shadow:0 0 0 2px rgba(101,84,164,.1)}
.school-public-site .school-form>.school-wizard-step>small{margin-top:-.7rem;color:#625f71;font-size:.82rem;line-height:1.55}
.school-public-site .school-identity-fields{gap:.8rem;border-color:#e5e1ee;border-radius:12px;background:#fbfaff}
.school-public-site .school-identity-fields>p{line-height:1.55}
.school-public-site .school-wizard-actions{gap:.75rem;margin-top:.15rem;padding-top:1rem;border-top:1px solid #ece9f3}
.school-public-site .school-wizard-actions .btn{min-width:130px;min-height:46px}
.school-public-site .school-wizard-actions .btn-outline{border:1px solid #d8d2e8;background:#fff;color:#493b80!important;box-shadow:none}
.school-public-site .school-wizard-actions .btn-outline:hover{background:#f6f3fc}
.school-public-site .school-form.has-school-chat>.school-wizard-step,
.school-public-site .school-form.has-school-chat>.school-wizard-progress,
.school-public-site .school-form.has-school-chat>[data-wizard-navigation]{display:none!important}
.school-public-site .school-report-chat[hidden]{display:none!important}
.school-public-site .school-report-chat{display:grid;gap:1rem;min-width:0}
.school-public-site .school-chat-header{display:flex;align-items:center;gap:.8rem}
.school-public-site .school-chat-avatar{display:grid;place-items:center;flex:0 0 2.8rem;height:2.8rem;border-radius:50%;background:#eeeaf8;color:#514481;font-size:1.15rem;font-weight:850}
.school-public-site .school-chat-header h2{margin:0;color:#30264f;font-family:var(--sans);font-size:1.1rem;font-weight:780}
.school-public-site .school-chat-header p{margin:.15rem 0 0;color:#625f71;font-size:.78rem;line-height:1.45}
.school-public-site .school-chat-emergency{display:grid;gap:.2rem;padding:.8rem .9rem;border:1px solid #efdbad;border-radius:12px;background:#fff9e9;color:#554a32;font-size:.82rem;line-height:1.55}
.school-public-site .school-chat-emergency strong{color:#493e29}
.school-public-site .school-chat-emergency a{color:#493b80;font-weight:800}
.school-public-site .school-chat-progress{display:grid;gap:.35rem;color:#514b68;font-size:.78rem;font-weight:750}
.school-public-site .school-chat-progress progress{width:100%;height:.55rem;border:0;border-radius:999px;overflow:hidden;background:#e9e5f1;accent-color:#6554a4}
.school-public-site .school-chat-progress progress::-webkit-progress-bar{border-radius:999px;background:#e9e5f1}
.school-public-site .school-chat-progress progress::-webkit-progress-value{border-radius:999px;background:#6554a4}
.school-public-site .school-chat-progress progress::-moz-progress-bar{border-radius:999px;background:#6554a4}
.school-public-site .school-chat-messages{display:grid;gap:.7rem;max-height:min(48vh,440px);min-height:220px;overflow-y:auto;overscroll-behavior:contain;padding:.9rem;border:1px solid #ebe8f2;border-radius:14px;background:#fbfaff}
.school-public-site .school-chat-bubble{width:fit-content;max-width:min(100%,570px);margin:0;padding:.72rem .9rem;border:1px solid #e5e1ee;border-radius:15px;background:#fff;color:#373347;font-size:.91rem;line-height:1.6;overflow-wrap:anywhere}
.school-public-site .school-chat-bubble.is-student{justify-self:end;border-color:#ddd7f1;border-bottom-right-radius:5px;background:#efedfa}
.school-public-site .school-chat-bubble.is-assistant{border-bottom-left-radius:5px}
.school-public-site .school-chat-note{margin:0;color:#625f71;font-size:.79rem;line-height:1.55}
.school-public-site .school-chat-urgent-match{padding:.8rem .9rem;border:1px solid #e6b5b5;border-radius:12px;background:#fff1f1;color:#742d2d;font-size:.83rem;line-height:1.55}
.school-public-site .school-chat-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.school-public-site .school-chat-choice,
.school-public-site .school-chat-send,
.school-public-site .school-chat-back{min-height:46px;padding:.68rem .85rem;border:1px solid #d8d2e8;border-radius:10px;background:#fff;color:#493b80;font:inherit;font-size:.86rem;font-weight:750;text-align:left;cursor:pointer}
.school-public-site .school-chat-choice:hover,
.school-public-site .school-chat-back:hover{border-color:#a89bcf;background:#f6f3fc}
.school-public-site .school-chat-choice.is-skip{grid-column:1/-1;color:#625f71;font-weight:650}
.school-public-site .school-chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.55rem}
.school-public-site .school-chat-compose input,
.school-public-site .school-chat-compose textarea{width:100%;min-width:0;min-height:48px;margin:0}
.school-public-site .school-chat-compose textarea{min-height:94px}
.school-public-site .school-chat-send,
.school-public-site .school-chat-confirm-send{border-color:#514481;background:#514481;color:#fff;text-align:center}
.school-public-site .school-chat-send:hover,
.school-public-site .school-chat-confirm-send:hover{background:#40366b}
.school-public-site .school-chat-back{text-align:center}
.school-public-site .school-chat-keyboard{display:grid;gap:.55rem}
.school-public-site .school-chat-summary{display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem;margin:0;padding:.9rem;border:1px solid #e5e1ee;border-radius:12px;background:#fff}
.school-public-site .school-chat-summary dt{margin-top:.5rem;color:#625f71;font-size:.76rem;font-weight:700}
.school-public-site .school-chat-summary dd{margin:0;color:#30264f;font-size:.88rem;line-height:1.5;overflow-wrap:anywhere}
.school-public-site .school-chat-privacy{margin:0;color:#625f71;font-size:.76rem;line-height:1.55}
.school-public-site .school-form.has-school-chat>[data-draft-status]{margin:0;padding:.6rem .75rem;border-radius:9px;background:#f7f5fc;color:#625f71;font-size:.76rem;line-height:1.5}
.school-public-site .school-support-resources{max-width:760px;margin:1.15rem auto;padding:1rem 1.1rem;border-color:#eadfc5;border-radius:14px;background:#fbf7ea}
.school-public-site .school-support-resources h2{margin:0 0 .35rem;color:#493e29;font-family:var(--sans);font-size:1rem;font-weight:750}
.school-public-site .school-support-resources p,.school-public-site .school-support-resources li{color:#554a32;font-size:.84rem;line-height:1.6}
.school-public-site .school-support-resources a{color:#493b80;font-weight:750;text-underline-offset:2px}
.school-public-site .school-support-resources ul{margin:.6rem 0 0;padding-left:1.2rem}
.school-public-site .school-empty-help{max-width:760px;margin:0 auto;border-color:#e5e1ee;border-radius:16px;background:#fff}
.school-public-site .school-empty-help h2{margin:0 0 .45rem;color:#30264f;font-family:var(--sans);font-size:1.1rem}
.school-public-site .school-empty-help p{color:#625f71;line-height:1.6}
.school-public-site .school-confirmation{max-width:760px;padding:clamp(1.25rem,4vw,2rem);border-top:4px solid #6554a4;border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(48,38,79,.055)}
.school-public-site .school-confirmation h1{font-family:var(--sans);font-size:clamp(1.55rem,4vw,2rem);font-weight:760;letter-spacing:-.035em}
.school-confirmation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.9rem}
.school-secondary-link{color:#493b80;font-size:.88rem;font-weight:700;text-underline-offset:3px}
.school-public-site .flash{max-width:760px;margin:0 auto 1rem;border-radius:12px;line-height:1.55}
.school-public-site .school-login-links{display:flex;justify-content:space-between;gap:.6rem 1rem;max-width:760px;margin:1rem auto;flex-wrap:wrap}
.school-public-site .school-login-links a{color:#493b80;font-size:.86rem;font-weight:700;text-underline-offset:3px}
.school-public-site .school-code-instructions{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.8rem 1rem;border-radius:12px;background:#f7f5fc;color:#514b68}
.school-public-site .school-code-instructions p{margin:0;font-size:.88rem;line-height:1.55}
.school-public-site .school-code-step-number{display:grid;place-items:center;width:1.8rem;height:1.8rem;flex:none;border-radius:50%;background:#e8e2f7;color:#514481;font-weight:800}
.school-public-site .school-code-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.school-public-site .school-code-actions .btn-outline{border-color:#d8d2e8;color:#493b80!important}
.school-public-site .school-code-support{margin:.9rem 0 0;color:#625f71;font-size:.82rem;line-height:1.55}
.school-public-site .school-code-support a{color:#493b80;font-weight:750;text-underline-offset:2px}
.school-public-site .school-form button:disabled{cursor:wait;opacity:.72;transform:none}
.school-public-site .student-bottom-nav{border-color:#e3def0;background:rgba(255,255,255,.97)}
.school-public-site .student-bottom-nav a,.school-public-site .student-bottom-nav button{color:#514b68}
.school-public-site .student-bottom-nav a.active{color:#514481}
.school-public-site .school-case-card{border-radius:13px;background:#fff}
.school-public-site .school-case-card:hover{border-color:#bdb2dc;box-shadow:0 6px 20px rgba(48,38,79,.07)}
@media(max-width:760px){
  .school-public-site .school-main{width:min(100% - 1.25rem,1100px);padding:1.25rem 0 2.5rem}
  .school-public-site .school-choice-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .public-site .header-inner{min-height:60px}
  .public-site .main-nav{padding:.6rem .85rem .85rem;border-bottom:1px solid #e5e1ee;box-shadow:0 12px 20px rgba(48,38,79,.08)}
  .public-site .main-nav a{min-height:42px;padding:.6rem .75rem}
  .public-site .main-nav .main-nav-action{margin:.2rem 0 0;text-align:center}
  .school-public-site .school-page-heading{margin-bottom:1rem}
  .school-public-site .school-form-card{padding:1rem;border-radius:15px}
  .school-public-site .school-chat-messages{max-height:44vh;min-height:190px;padding:.7rem}
  .school-public-site .school-chat-choices{grid-template-columns:1fr}
  .school-public-site .school-chat-compose{grid-template-columns:1fr}
  .school-public-site .school-chat-compose .school-chat-send{width:100%}
  .school-public-site .school-wizard-actions .btn{flex:1;min-width:0}
  .school-public-site .school-login-links{display:grid;gap:.8rem}
  .school-public-site .school-code-actions{align-items:flex-start;flex-direction:column}
  .school-public-site .school-code-actions form,.school-public-site .school-code-actions .btn{width:100%}
  .school-confirmation-actions{align-items:stretch;flex-direction:column}
  .school-confirmation-actions .btn{text-align:center}
}
.school-public-site .school-draft-notice{margin:0;padding:.7rem .85rem;border:1px solid #e3def0;border-radius:10px;background:#fbfaff;color:#625f71;font-size:.78rem;line-height:1.5}
.school-public-site .school-check span{display:grid;gap:.2rem}
.school-public-site .school-check span strong{color:#30264f;font-size:.86rem}
.school-public-site .school-check span small{color:#625f71;font-size:.75rem;font-weight:450;line-height:1.45}
.school-public-site .school-review-card{max-width:820px}
.school-public-site .school-review-summary{grid-template-columns:minmax(9rem,.35fr) minmax(0,1fr);gap:.5rem 1rem}
.school-public-site .school-review-summary dt{color:#514b68}
.school-public-site .school-review-summary dd{overflow-wrap:anywhere}
.school-public-site .school-review-recipient{padding:1rem;border:1px solid #e3def0;border-radius:12px;background:#f7f5fc;color:#514b68}
.school-public-site .school-review-recipient strong{color:#30264f}
.school-public-site .school-review-recipient p{margin:.3rem 0 0;font-size:.87rem;line-height:1.55}
.school-public-site .student-case-guidance,.school-public-site .school-status-guidance{color:#514b68;font-size:.8rem;line-height:1.5}
.school-public-site .school-status-guidance{max-width:70ch;padding:.65rem .8rem;border-left:3px solid #8f82c3;border-radius:0 8px 8px 0;background:#f7f5fc}
.school-queue-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0 1.25rem}
.school-queue-summary article{display:grid;gap:.15rem;padding:1rem;border:1px solid #e5e1ee;border-radius:14px;background:#fff}
.school-queue-summary strong{color:#493b80;font-size:1.35rem}
.school-queue-summary span{color:#625f71;font-size:.8rem}
.school-public-site .school-case-card .student-case-guidance{max-width:58ch}
.school-public-site .school-case-card .tag{flex-shrink:0}
@media(max-width:560px){
  .school-public-site .school-review-summary{grid-template-columns:1fr;gap:.15rem}
  .school-public-site .school-review-summary dd{margin-bottom:.5rem}
  .school-queue-summary{grid-template-columns:1fr}
  .school-public-site .school-case-card{align-items:flex-start}
}
.accessibility-controls{position:relative;z-index:1000;display:flex;justify-content:flex-end;margin:0 auto;padding:.35rem clamp(1rem,calc((100vw - 1200px)/2),3rem);color:#30264f;font-size:.8rem}
.accessibility-controls summary{padding:.5rem .7rem;border:1px solid #ded8eb;border-radius:10px;background:#fff;box-shadow:0 3px 12px rgba(48,38,79,.12);font-weight:700;cursor:pointer;list-style:none}
.accessibility-controls summary::-webkit-details-marker{display:none}
.accessibility-controls summary::before{content:"Aa";display:inline-block;margin-right:.45rem;color:#6554a4;font-weight:850}
.accessibility-controls[open] summary{border-radius:10px 10px 0 0}
.accessibility-controls-panel{display:grid;gap:.55rem;width:min(18rem,calc(100vw - 2rem));padding:.8rem;border:1px solid #ded8eb;border-top:0;border-radius:0 0 10px 10px;background:#fff;box-shadow:0 8px 20px rgba(48,38,79,.14)}
.accessibility-controls-panel>label:first-child{font-weight:700}
.accessibility-controls-panel select{min-height:40px;padding:.4rem .55rem;border:1px solid #cfc8dd;border-radius:8px;background:#fff;color:#30264f;font:inherit}
.accessibility-motion-option{display:flex;align-items:center;gap:.5rem}
.accessibility-motion-option input{width:1rem;height:1rem;accent-color:#6554a4}
.accessibility-controls-panel p{margin:0;color:#625f71;font-size:.72rem;line-height:1.4}
html.accessibility-text-large{font-size:112.5%}
html.accessibility-text-larger{font-size:125%}
html.accessibility-reduced-motion *,html.accessibility-reduced-motion *::before,html.accessibility-reduced-motion *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
@media(max-width:700px){
  .accessibility-controls{font-size:.74rem}
  .accessibility-controls summary{padding:.45rem .55rem}
}
.school-case-filters{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap;margin:1rem 0;padding:1rem;border:1px solid #e5e1ee;border-radius:14px;background:#fff}
.school-case-filters label{display:grid;gap:.35rem;min-width:min(10rem,100%);color:#514b68;font-size:.8rem;font-weight:700}
.school-case-filters select,.school-case-filters input{min-height:42px;padding:.45rem .6rem;border:1px solid #d8d2e8;border-radius:8px;background:#fff;color:#30264f;font:inherit}
.school-case-filter-actions{display:flex;align-items:center;gap:.8rem}
.school-case-filter-actions a{color:#493b80;font-size:.82rem;font-weight:700}
.school-public-site .school-review-edit{margin-left:.35rem;color:#493b80;font-size:.72rem;font-weight:750;text-decoration:underline;text-underline-offset:2px}
.school-public-site .school-confirmation-reference{padding:.8rem 1rem;border:1px solid #e3def0;border-radius:12px;background:#f7f5fc;color:#30264f}
.school-config-guide{max-width:900px;margin:0 auto 1rem;padding:.9rem 1rem;border:1px solid #e3def0;border-radius:12px;background:#f7f5fc;color:#514b68;font-size:.85rem;line-height:1.55}
.school-config-guide strong{color:#30264f}
.school-config-guide p{margin:.25rem 0 0}
.school-form label small{font-weight:450}
.school-public-site .school-form .wizard-invalid{border-color:#b44b55!important;box-shadow:0 0 0 3px rgba(180,75,85,.13)!important}
.school-notification-center,.school-readiness-alert{margin:1rem 0;padding:1rem 1.1rem;border:1px solid #e5e1ee;border-radius:16px;background:#fff}
.school-notification-center .school-workspace-section-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.school-notification-center h2,.school-readiness-alert h2{margin:.2rem 0;font-size:1.1rem;color:#30264f}
.school-notification-count{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#eeeafb;color:#493b80;font-weight:800}
.school-notification-list{display:grid;gap:.5rem;margin-top:.6rem}
.school-notification-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .7rem;border:1px solid #ece9f3;border-radius:10px;color:#30264f;text-decoration:none}
.school-notification-item:hover{border-color:#bdb2dc;background:#fbfaff}
.school-notification-item>span:nth-child(2){display:grid;gap:.12rem;flex:1}
.school-notification-item small,.school-notification-empty{color:#625f71;font-size:.8rem;line-height:1.5}
.school-notification-icon{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:8px;background:#f0edf8;color:#6554a4;font-weight:800}
.school-notification-empty{margin:.5rem 0 0}
.school-readiness-alert{border-color:#eadfc5;background:#fffdf7}
.school-readiness-alert p{margin:.4rem 0;color:#625f71;font-size:.85rem}
.school-readiness-alert ul{display:grid;gap:.35rem;margin:.5rem 0 0;padding-left:1.2rem}
.school-readiness-alert a{color:#493b80;font-size:.84rem;font-weight:700}
.school-readiness-success{padding:.7rem .9rem;border:1px solid #cfe4d7;border-radius:10px;background:#f2faf5;color:#315b42;font-size:.82rem;line-height:1.5}
.admin-priority-note,.admin-readiness-note{color:#625f71;font-size:.84rem;line-height:1.55}
.admin-readiness-list{margin:.2rem 0 0;padding-left:1.1rem;color:#625f71;font-size:.8rem;line-height:1.5}
.privacy-admin-priority{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0;padding:1rem;border:1px solid #e5e1ee;border-radius:14px;background:#fbfaff}
.privacy-admin-priority>a{display:grid;gap:.2rem;padding:.75rem;border:1px solid #e5e1ee;border-radius:10px;background:#fff;text-decoration:none}
.privacy-admin-priority>a strong{color:#493b80;font-size:1.4rem}
.privacy-admin-priority>a span,.privacy-admin-priority>p{color:#625f71;font-size:.8rem}
.privacy-admin-priority>p{grid-column:1/-1;margin:.1rem 0}
@media(max-width:560px){
  .accessibility-controls{padding:.35rem .75rem}
  .school-case-filters{align-items:stretch;flex-direction:column}
  .school-case-filters label,.school-case-filter-actions{width:100%}
  .school-case-filters .btn{flex:1}
  .privacy-admin-priority{grid-template-columns:1fr}
}
.school-quick-exit{display:inline-flex;align-items:center;min-height:42px;margin:.5rem 0;padding:.45rem .85rem;border:1px solid #c9c1df;border-radius:9px;background:#fff;color:#493b80;font-weight:750;text-decoration:none}
.school-quick-exit:hover{background:#f0edfa}
.school-writing-prompts{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.4rem 0}
.school-writing-prompts>span{width:100%;color:var(--muted);font-size:.82rem}
.school-writing-prompts .btn{font-size:.78rem}
.school-security-reminder{padding:.75rem .9rem;border-left:4px solid #c5a85a;background:#fffaf0;color:#514b68;font-size:.85rem}
.school-survey-question,.school-survey-question-builder{display:grid;gap:.65rem;margin:.5rem 0;padding:1rem;border:1px solid #e5e1ee;border-radius:12px;background:#fff}
.school-survey-question legend,.school-survey-question-builder legend{padding:0 .3rem;color:#30264f;font-weight:750}
.school-survey-question small{color:#625f71;font-size:.8rem}
.school-survey-options{display:flex;gap:.45rem;flex-wrap:wrap}
.school-survey-options .school-check{align-items:center;min-width:3rem}
.school-survey-builder-heading,.school-survey-card-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}
.school-survey-builder-heading h3,.school-survey-card h3{margin:0;color:#30264f}
.school-survey-question-builder{position:relative;margin:.7rem 0;padding-top:1.6rem}
.school-survey-question-builder[hidden],[data-survey-options-wrap][hidden]{display:none}
.school-survey-remove{position:absolute;right:.75rem;top:.5rem;border:0;background:transparent;color:#6554a4;text-decoration:underline;cursor:pointer;font:inherit;font-size:.82rem}
.school-survey-remove:disabled,.school-survey-builder-heading button:disabled{opacity:.5;cursor:not-allowed}
.school-survey-card{display:grid;gap:.8rem}
.school-survey-card>label{display:grid;gap:.3rem;color:#30264f;font-weight:700}
.school-survey-card input[readonly],.school-survey-card textarea[readonly]{width:100%;padding:.65rem;border:1px solid #e5e1ee;border-radius:8px;background:#fbfaff;color:#514b68;font:inherit;font-size:.85rem}
.school-survey-email{padding:.75rem;border:1px solid #e5e1ee;border-radius:10px;background:#fbfaff}
.school-survey-email summary{color:#493b80;font-weight:750;cursor:pointer}
.school-survey-email p{color:#625f71;font-size:.82rem}
.school-survey-results{display:grid;gap:.7rem;padding-top:.7rem;border-top:1px solid #e5e1ee}
.school-survey-results h3,.school-survey-results h4{margin:0;color:#30264f}
.school-survey-results .card{padding:.85rem}
.school-survey-results li{overflow-wrap:anywhere}
.school-survey-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.low-bandwidth-mode{scroll-behavior:auto}
.low-bandwidth-mode *,
.low-bandwidth-mode *::before,
.low-bandwidth-mode *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
.low-bandwidth-mode img[data-decorative="true"],.low-bandwidth-mode video[data-decorative="true"]{display:none!important}
.low-bandwidth-mode .hero::before{display:none}
.low-bandwidth-mode .hero,.low-bandwidth-mode .school-landing{background:#fff}
@media(max-width:560px){
  .school-survey-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .school-survey-builder-heading{align-items:flex-start}
}

/* Compact mobile-first interface selected from the design mockups. */
.compact-interface{
  --compact-purple:#5b4b9a;
  --compact-purple-dark:#443779;
  --compact-lilac:#eeeafb;
  --compact-paper:#f8f7fc;
  --compact-line:#e6e2f0;
  background:var(--compact-paper);
  color:#29263a;
  font-family:var(--sans);
}
.compact-interface h1,.compact-interface h2,.compact-interface h3{font-family:var(--sans);letter-spacing:-.035em}
.compact-interface .card,
.compact-interface .school-form-card,
.compact-interface .school-case-card,
.compact-interface .school-staff-card,
.compact-interface .school-class-card,
.compact-interface .school-stat,
.compact-interface .student-overview-card{
  border:1px solid var(--compact-line);
  border-radius:14px;
  background:#fff;
  box-shadow:0 3px 12px rgba(48,38,79,.045);
}
.compact-interface .section-title{border-bottom:1px solid var(--compact-line)}
.compact-interface .btn{border-radius:10px;background:var(--compact-purple);border-color:var(--compact-purple)}
.compact-interface .btn:hover{background:var(--compact-purple-dark);border-color:var(--compact-purple-dark)}
.compact-interface .btn-outline{background:#fff;color:var(--compact-purple)!important}
.compact-interface .btn-danger{background:#a63e51;border-color:#a63e51}
.compact-interface :focus-visible{outline-color:#7465bb}
.compact-interface .school-page-heading h1,
.compact-interface .admin-dashboard-heading h1{font-family:var(--sans);font-weight:780;letter-spacing:-.045em}
.compact-interface .school-page-heading .home-section-kicker{color:var(--compact-purple)}
.compact-interface .school-main{width:min(100% - 2rem,1280px);max-width:1280px;padding:1.35rem 0 2.4rem}
.compact-interface.school-staff-console .school-app,
.compact-interface .student-app{background:var(--compact-paper)}
.compact-interface .school-sidebar{flex-basis:76px;width:76px;padding:.8rem .55rem;background:#21173e}
.compact-interface .school-sidebar .school-brand{justify-content:center;min-height:48px;margin:0 0 1rem;padding:.35rem}
.compact-interface .school-sidebar .school-brand-name,
.compact-interface .school-sidebar-label,
.compact-interface .school-account-role{display:none}
.compact-interface .school-sidebar .school-nav{gap:.35rem}
.compact-interface .school-sidebar .school-nav a{
  justify-content:center;
  gap:0;
  min-height:46px;
  padding:.55rem;
  border-radius:12px;
  color:#d7d1e7;
  font-size:0;
}
.compact-interface .school-sidebar .school-nav a>svg{width:1.3rem;height:1.3rem}
.compact-interface .school-sidebar .school-nav a.active{background:#392b61;color:#fff}
.compact-interface .school-sidebar-account{padding:.6rem 0 .1rem}
.compact-interface .school-sidebar-account button{justify-content:center;gap:0;padding:.55rem;font-size:0}
.compact-interface .school-sidebar-account button svg{width:1.2rem;height:1.2rem}
.compact-interface .school-topbar{min-height:54px;border-color:var(--compact-line);box-shadow:0 1px 4px rgba(48,38,79,.025)}
.compact-interface .school-topbar-title{font-size:.84rem}
.compact-interface .school-workspace>.school-footer{border-color:var(--compact-line)}
.compact-interface.admin-portal{grid-template-columns:76px minmax(0,1fr);background:var(--compact-paper)}
.compact-interface .admin-header{min-height:60px;box-shadow:0 1px 5px rgba(48,38,79,.04)}
.compact-interface .admin-nav{gap:.4rem;padding:1rem .5rem;background:#fbfaff}
.compact-interface .admin-nav-label{display:none}
.compact-interface .admin-nav>a{
  position:relative;
  justify-content:center;
  gap:0;
  min-height:46px;
  padding:.45rem;
  border-radius:12px;
  font-size:0;
}
.compact-interface .admin-nav-icon{flex:0 0 30px;width:30px;height:30px}
.compact-interface .admin-nav-badge{position:absolute;top:2px;right:2px;min-width:18px;padding:.1rem .25rem;font-size:.65rem}
.compact-interface .admin-main{width:min(100% - 2rem,1280px);max-width:1280px;padding:1.35rem 0 2rem}
.compact-interface .admin-footer{font-size:.78rem}
.compact-interface.school-staff-console .school-dashboard-grid,
.compact-interface.school-staff-console .school-workspace-grid{gap:.75rem}
.compact-interface.school-staff-console .school-stat,
.compact-interface .admin-stat-card,
.compact-interface .admin-work-card{border-radius:14px}
.compact-interface .student-dashboard-overview{gap:.75rem}
.compact-interface .student-overview-stats{gap:.65rem}
.compact-interface .student-request-card{display:flex;align-items:flex-start;gap:.8rem;padding:.9rem}
.compact-interface .student-request-main{min-width:0;flex:1}
.compact-interface .student-request-side{display:grid;justify-items:end;gap:.55rem;flex:0 0 auto}
.compact-interface .student-request-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.35rem}
.compact-interface .student-request-actions form{margin:0}
.compact-interface .student-request-actions button{min-height:36px;padding:.4rem .6rem;border:1px solid var(--compact-line);border-radius:9px;background:#fff;color:var(--compact-purple);font:700 .75rem var(--sans);cursor:pointer}
.compact-interface .student-request-actions .student-request-delete{color:#a63e51}
.compact-interface .student-paused-note{display:block;padding:.7rem .85rem;border:1px solid #e4dcf4;border-radius:11px;background:#f6f3fc;color:#493b80;font-size:.85rem;line-height:1.55}
.compact-interface .student-request-controls{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin:0 0 1rem}
.compact-interface .student-request-controls form{margin:0}
.compact-interface .student-request-controls .btn{min-height:42px}
.compact-interface .school-survey-result-card{padding:1rem}
.compact-interface .school-survey-chart{display:grid;gap:.8rem;margin-top:.75rem}
.compact-interface .school-survey-chart-row{display:grid;gap:.25rem}
.compact-interface .school-survey-chart-label{display:flex;justify-content:space-between;gap:.8rem;color:#514b68;font-size:.85rem;line-height:1.4}
.compact-interface .school-survey-chart-label strong{flex-shrink:0;color:var(--compact-purple);font-variant-numeric:tabular-nums}
.compact-interface .school-survey-chart-bar{display:block;width:100%;height:.65rem;border:0;border-radius:999px;overflow:hidden;background:#ece9f4;accent-color:var(--compact-purple)}
.compact-interface .school-survey-chart-bar::-webkit-progress-bar{border-radius:999px;background:#ece9f4}
.compact-interface .school-survey-chart-bar::-webkit-progress-value{border-radius:999px;background:var(--compact-purple)}
.compact-interface .school-survey-chart-bar::-moz-progress-bar{border-radius:999px;background:var(--compact-purple)}
.compact-interface .school-survey-chart-caption{margin:.4rem 0;color:#706b80;font-size:.78rem}
@media(max-width:900px){
  .compact-interface.admin-portal{grid-template-columns:64px minmax(0,1fr)}
  .compact-interface .admin-nav{padding:.8rem .35rem}
  .compact-interface .admin-main{width:min(100% - 1.5rem,1280px)}
}
@media(max-width:720px){
  .compact-interface .school-app{display:block}
  .compact-interface.school-student-console .student-sidebar{display:none}
  .compact-interface.school-staff-console .school-sidebar{
    position:sticky;
    z-index:20;
    top:0;
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:.35rem;
    width:100%;
    height:54px;
    min-height:54px;
    padding:.35rem .55rem;
    overflow:hidden;
  }
  .compact-interface.school-staff-console .school-sidebar .school-brand{
    display:flex;
    flex:0 0 auto;
    justify-content:flex-start;
    min-height:40px;
    margin:0;
    padding:.2rem .35rem;
  }
  .compact-interface.school-staff-console .school-sidebar .school-brand-name{
    display:block;
    font-size:.73rem;
    line-height:1.15;
    white-space:nowrap;
  }
  .compact-interface.school-staff-console .school-sidebar .school-brand-name small{display:none}
  .compact-interface.school-staff-console .school-sidebar .school-nav{
    display:flex;
    flex:1;
    flex-direction:row;
    flex-wrap:nowrap;
    gap:.2rem;
    min-width:0;
    margin:0;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .compact-interface.school-staff-console .school-sidebar .school-nav a{
    flex:0 0 auto;
    justify-content:flex-start;
    gap:.35rem;
    min-height:38px;
    padding:.35rem .45rem;
    font-size:.67rem;
    white-space:nowrap;
  }
  .compact-interface.school-staff-console .school-sidebar .school-nav a>svg{width:1rem;height:1rem}
  .compact-interface.school-staff-console .school-sidebar-account{display:block;flex:0 0 auto;margin:0;padding:0;border:0}
  .compact-interface.school-staff-console .school-sidebar-account button{width:38px;min-height:38px;padding:.4rem;border-radius:10px}
  .compact-interface .school-main{width:min(100% - 1.25rem,1280px);padding:1rem 0 6rem}
  .compact-interface .school-topbar{min-height:50px;padding:0 .8rem}
  .compact-interface .student-request-card{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem}
  .compact-interface .student-request-side{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .compact-interface .student-request-actions{justify-content:flex-start}
  .compact-interface .student-request-controls{display:grid;grid-template-columns:1fr}
  .compact-interface .student-request-controls form,.compact-interface .student-request-controls .btn{width:100%}
  .compact-interface.admin-portal{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto}
  .compact-interface .admin-header{grid-column:1;min-height:56px;padding:.55rem .8rem}
  .compact-interface .admin-nav{
    position:fixed;
    z-index:30;
    right:0;
    bottom:0;
    left:0;
    display:flex;
    grid-column:1;
    grid-row:auto;
    flex-direction:row;
    align-items:stretch;
    gap:.2rem;
    min-height:60px;
    overflow-x:auto;
    padding:.35rem max(.35rem,env(safe-area-inset-left)) calc(.35rem + env(safe-area-inset-bottom));
    border-top:1px solid var(--compact-line);
    box-shadow:0 -5px 18px rgba(48,38,79,.08);
    scrollbar-width:thin;
  }
  .compact-interface .admin-nav>a{display:flex;flex:0 0 58px;flex-direction:column;min-height:52px;padding:.25rem .2rem;font-size:.58rem;text-align:center}
  .compact-interface .admin-nav-icon{flex:0 0 25px;width:25px;height:25px;font-size:.9rem}
  .compact-interface .admin-nav-badge{top:0;right:2px}
  .compact-interface .admin-main{grid-column:1;grid-row:2;width:min(100% - 1.25rem,1280px);padding:1rem 0 2rem}
  .compact-interface .admin-footer{grid-column:1;grid-row:3;margin-bottom:4.2rem}
  .compact-interface .student-bottom-nav{padding-bottom:calc(.45rem + env(safe-area-inset-bottom))}
}
@media(max-width:440px){
  .compact-interface .school-queue-summary{grid-template-columns:1fr}
  .compact-interface .student-overview-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .compact-interface .student-overview-stats .student-overview-card{min-width:0;padding:.7rem .5rem}
  .compact-interface .student-overview-card>span{font-size:.72rem}
  .compact-interface .student-overview-stats strong{font-size:1.2rem}
  .compact-interface .admin-nav>a{flex-basis:54px}
}

/* Keep connected navigation legible on desktop and usable as a drawer on mobile. */
.compact-interface.school-staff-console .school-sidebar{
  flex:0 0 264px;
  width:264px;
}
.compact-interface.school-staff-console .school-sidebar .school-nav a,
.compact-interface.school-student-console .student-sidebar .school-nav a{
  justify-content:flex-start;
  gap:.7rem;
  min-height:44px;
  padding:.65rem .75rem;
  font-size:.86rem;
  line-height:1.35;
}
.compact-interface.school-staff-console .school-sidebar .school-nav a>svg,
.compact-interface.school-student-console .student-sidebar .school-nav a>svg{width:1.2rem;height:1.2rem}
.compact-interface.school-staff-console .school-sidebar-label{display:block}
.compact-interface.school-staff-console .school-account-role,
.compact-interface.school-student-console .school-account-role{display:block}
.compact-interface.school-staff-console .school-sidebar-account button,
.compact-interface.school-student-console .school-sidebar-account button{
  justify-content:flex-start;
  gap:.7rem;
  padding:.55rem .65rem;
  font-size:.84rem;
}
.compact-interface.school-student-console .student-sidebar{flex:0 0 250px;width:250px}
.compact-interface.school-student-console .student-request-card{
  align-items:stretch;
  gap:1rem;
  padding:1rem 1.1rem;
}
.compact-interface.school-student-console .student-request-link{
  display:grid;
  gap:.35rem;
  min-width:0;
  color:var(--student-muted);
  font-size:.86rem;
  line-height:1.5;
  text-decoration:none;
}
.compact-interface.school-student-console .student-request-link:hover{text-decoration:none}
.compact-interface.school-student-console .student-request-link>strong{
  color:var(--student-ink);
  font-size:.98rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.compact-interface.school-student-console .student-request-link>span:not(.student-request-open):not(.student-paused-note){
  color:var(--student-muted);
}
.compact-interface.school-student-console .student-request-link .student-case-guidance{
  display:block;
  color:var(--student-muted);
  font-size:.82rem;
}
.compact-interface.school-student-console .student-request-open{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  margin-top:.15rem;
  color:var(--student-purple)!important;
  font-size:.82rem;
  font-weight:750;
  text-decoration:none;
}
.compact-interface.school-student-console .student-request-link:hover .student-request-open{text-decoration:underline}
.compact-interface.school-student-console .student-request-side{align-content:start}
.compact-interface.school-student-console .student-bottom-nav{background:#fff}
.compact-interface.school-student-console .school-topbar{background:#fff}
.compact-interface.school-student-console .site-footer-compact{
  padding-bottom:calc(.8rem + 4.2rem + env(safe-area-inset-bottom));
}
.compact-interface.admin-portal{grid-template-columns:248px minmax(0,1fr)}
.compact-interface .admin-nav-label{display:block}
.compact-interface .admin-nav>a{
  justify-content:flex-start;
  gap:.65rem;
  min-height:46px;
  padding:.65rem .75rem;
  font-size:.84rem;
  line-height:1.35;
}
.compact-interface .admin-nav-icon{flex:0 0 30px}
.compact-interface .accessibility-controls{
  position:relative;
  z-index:1000;
  flex:0 0 auto;
}
.compact-interface .accessibility-controls-panel{
  position:absolute;
  top:calc(100% + .35rem);
  right:0;
  z-index:1001;
}
.compact-interface .school-topbar .accessibility-controls,
.compact-interface .admin-header .accessibility-controls,
.compact-interface .site-header .accessibility-controls{margin:0;padding:0}
.compact-interface .student-topbar .accessibility-controls{margin-left:auto}
.compact-interface .admin-header .accessibility-controls{margin-left:auto}
@media(max-width:900px){
  .compact-interface.admin-portal{grid-template-columns:220px minmax(0,1fr)}
  .compact-interface .admin-nav{padding:.8rem .55rem}
  .compact-interface .admin-main{width:min(100% - 1.5rem,1280px)}
}
@media(max-width:720px){
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar{
    position:fixed;
    z-index:52;
    top:0;
    left:0;
    display:flex;
    flex:0 0 auto;
    flex-direction:column;
    align-items:stretch;
    width:min(84vw,300px);
    height:100dvh;
    min-height:100dvh;
    padding:1rem .85rem calc(1rem + env(safe-area-inset-bottom));
    overflow-y:auto;
    transform:translateX(-102%);
    transition:transform .18s ease;
  }
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar .school-brand{
    flex:none;
    min-height:50px;
    margin:0 0 1rem;
    padding:.25rem .5rem;
  }
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar .school-brand-name{font-size:1rem}
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar .school-brand-name small{display:block}
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar .school-sidebar-label{display:block}
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar .school-nav{
    display:flex;
    flex:0 0 auto;
    flex-direction:column;
    flex-wrap:nowrap;
    gap:.25rem;
    margin:0;
    overflow:visible;
  }
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar .school-nav a{
    flex:none;
    justify-content:flex-start;
    gap:.7rem;
    min-height:46px;
    padding:.65rem .75rem;
    font-size:.88rem;
    white-space:normal;
  }
  .compact-interface.school-staff-console.school-nav-enhanced .school-sidebar-account{
    display:block;
    flex:none;
    margin-top:auto;
    padding:.85rem .25rem .2rem;
    border-top:1px solid var(--school-line);
  }
  .compact-interface.school-staff-console.school-nav-enhanced .school-nav-toggle{
    flex:none;
    margin-left:0;
  }
  .compact-interface.school-staff-console .school-topbar-title{min-width:0;flex:1}
  .compact-interface.school-staff-console .school-topbar-context{display:none}
  .compact-interface.school-staff-console .school-main{padding:1rem 0 2rem}
  .compact-interface.school-student-console .student-main{padding-bottom:6rem}
  .compact-interface.school-student-console .student-request-card{gap:.65rem;padding:.9rem}
  .compact-interface.school-student-console .student-request-side{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:.55rem;
  }
  .compact-interface.admin-portal{grid-template-columns:minmax(0,1fr)}
  .compact-interface .admin-nav-label{display:none}
  .compact-interface .admin-nav>a:last-child{margin-left:0}
  .compact-interface .admin-nav>a{
    justify-content:center;
    gap:.15rem;
    flex:0 0 58px;
    padding:.25rem .2rem;
    font-size:.58rem;
    line-height:1.15;
  }
  .compact-interface .admin-nav-icon{flex:0 0 25px}
  .compact-interface .admin-header .accessibility-controls{margin-left:0}
}
@media(max-width:560px){
  .compact-interface .school-topbar .accessibility-controls summary,
  .compact-interface .admin-header .accessibility-controls summary,
  .compact-interface .site-header .accessibility-controls summary{
    width:2.4rem;
    overflow:hidden;
    padding:.45rem .55rem;
    font-size:0;
    text-align:center;
    white-space:nowrap;
  }
  .compact-interface .school-topbar .accessibility-controls summary::before,
  .compact-interface .admin-header .accessibility-controls summary::before,
  .compact-interface .site-header .accessibility-controls summary::before{
    margin:0;
    font-size:1rem;
  }
}
@media(prefers-reduced-motion:reduce){
  .compact-interface.school-staff-console .school-sidebar{transition:none}
}

/* Keep public pages and every connected workspace on one calm mauve palette. */
.compact-interface{
  --brand-forest:#30264f;
  --brand-leaf:#6554a4;
  --brand-mint:#eeeafb;
  --brand-paper:#fbfaff;
  --brand-ink:#29263a;
  --brand-muted:#625f71;
  --brand-line:#e5e1ee;
  --school-accent:#6554a4;
  --school-accent-dark:#493b80;
  --school-accent-soft:#eeeafb;
  --school-line:#e5e1ee;
  --school-bg:#f7f6fb;
  --student-accent:#6554a4;
  --student-accent-dark:#493b80;
  --student-accent-soft:#eeeafb;
  --student-bg:#f7f6fb;
}
.compact-interface .school-main,
.compact-interface .student-main,
.compact-interface .admin-main{color:#29263a}
.compact-interface .school-landing{
  border-color:#e5e1ee;
  background:linear-gradient(135deg,#fbfaff 0%,#f0edfa 100%);
  box-shadow:0 12px 32px rgba(48,38,79,.07);
}
.compact-interface .school-landing h1,
.compact-interface .school-landing h2{color:#30264f}
.compact-interface .school-landing .eyebrow,
.compact-interface .school-landing .school-kicker{color:#6554a4}
.compact-interface .school-landing p{color:#625f71}
.compact-interface .school-landing .btn-primary,
.compact-interface .school-landing a.btn-primary,
.compact-interface .student-main .btn-primary,
.compact-interface .school-main .btn-primary{
  border-color:#6554a4;
  background:#6554a4;
  color:#fff;
  box-shadow:0 3px 8px rgba(73,59,128,.16);
}
.compact-interface .school-landing .btn-primary:hover,
.compact-interface .student-main .btn-primary:hover,
.compact-interface .school-main .btn-primary:hover{
  border-color:#493b80;
  background:#493b80;
}
.compact-interface .school-landing .btn-secondary,
.compact-interface .school-main .btn-secondary,
.compact-interface .student-main .btn-secondary{
  border-color:#e5e1ee;
  background:#fff;
  color:#493b80;
}
.compact-interface .school-landing-aside,
.compact-interface .school-landing-note,
.compact-interface .student-preparation-card{
  border-color:#e5e1ee;
  background:#fff;
}
.compact-interface .school-landing-aside h2,
.compact-interface .school-landing-note strong,
.compact-interface .student-preparation-card h2{color:#30264f}
.compact-interface .school-landing-aside p,
.compact-interface .school-landing-note p,
.compact-interface .student-preparation-card p{color:#625f71}
.compact-interface .student-topbar,
.compact-interface .school-topbar,
.compact-interface .admin-header{
  border-color:#ebe8f2;
  background:rgba(255,255,255,.98);
  box-shadow:0 1px 5px rgba(48,38,79,.05);
}
.compact-interface .student-bottom-nav,
.compact-interface .school-bottom-nav,
.compact-interface .admin-nav{
  border-color:#ebe8f2;
  background:#fff;
  box-shadow:0 -4px 18px rgba(48,38,79,.06);
}
.compact-interface .student-bottom-nav a.active,
.compact-interface .school-nav a.active,
.compact-interface .admin-nav>a.active{
  color:#493b80;
}
.compact-interface .student-bottom-nav a.active svg,
.compact-interface .school-nav a.active svg,
.compact-interface .admin-nav>a.active .admin-nav-icon{
  color:#6554a4;
}
.compact-interface .school-sidebar{
  border-color:#ebe8f2;
  background:#fbfaff;
}
.compact-interface .school-nav a:hover,
.compact-interface .school-nav a.active{
  border-color:#e5e1ee;
  background:#eeeafb;
  color:#493b80;
}
.compact-interface .school-dashboard-card,
.compact-interface .school-workspace-section,
.compact-interface .student-request-card,
.compact-interface .student-summary-card,
.compact-interface .school-survey-card,
.compact-interface .admin-stat-card,
.compact-interface .admin-work-card{
  border-color:#e8e4f0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 2px 8px rgba(48,38,79,.045);
}
.compact-interface .school-dashboard-card:hover,
.compact-interface .school-workspace-section:hover,
.compact-interface .student-request-card:hover,
.compact-interface .admin-stat-card:hover,
.compact-interface .admin-work-card:hover{
  border-color:#d5cdea;
  box-shadow:0 8px 22px rgba(48,38,79,.08);
}
.compact-interface .school-dashboard-card h2,
.compact-interface .school-workspace-section h2,
.compact-interface .student-request-card h2,
.compact-interface .student-summary-card h2,
.compact-interface .school-survey-card h2,
.compact-interface .admin-work-card h2{color:#30264f}
.compact-interface .school-dashboard-card p,
.compact-interface .school-workspace-section p,
.compact-interface .student-request-card p,
.compact-interface .student-summary-card p,
.compact-interface .school-survey-card p,
.compact-interface .admin-work-card p{color:#625f71}
.compact-interface .school-dashboard-icon,
.compact-interface .school-work-icon,
.compact-interface .admin-work-icon,
.compact-interface .admin-work-icon-lilac{
  border-radius:12px;
  background:#eeeafb;
  color:#6554a4;
}
.compact-interface .school-notification-center,
.compact-interface .school-readiness-alert,
.compact-interface .school-config-guide,
.compact-interface .privacy-admin-priority{
  border-color:#e5e1ee;
  border-radius:16px;
  background:#fff;
}
.compact-interface .school-readiness-alert{background:#fbfaff}
.compact-interface .school-notification-count,
.compact-interface .school-notification-icon{
  background:#eeeafb;
  color:#493b80;
}
.compact-interface .admin-portal{background:#f7f6fb}
.compact-interface .admin-nav>a.active{
  border-color:transparent;
  background:#eeeafb;
  color:#493b80;
}
.compact-interface .admin-dashboard-heading h1,
.compact-interface .admin-stat-card strong{color:#30264f}
.compact-interface .admin-work-card:hover,
.compact-interface .admin-stat-card:hover{transform:translateY(-2px)}
.compact-interface a:not(.btn):not(.student-bottom-nav a):not(.school-nav a):not(.admin-nav a){
  text-decoration-color:#aaa0cb;
}
@media(max-width:720px){
  .compact-interface .school-landing{
    border-radius:20px;
    padding:1.1rem;
  }
  .compact-interface .student-main,
  .compact-interface .school-main{padding-left:.75rem;padding-right:.75rem}
  .compact-interface .school-dashboard-card,
  .compact-interface .school-workspace-section,
  .compact-interface .student-request-card,
  .compact-interface .student-summary-card,
  .compact-interface .school-survey-card,
  .compact-interface .admin-stat-card,
  .compact-interface .admin-work-card{border-radius:14px}
}
.compact-interface .school-availability-builder{
  max-width:1100px;
  padding:clamp(1rem,2.5vw,1.5rem);
  border-color:#e5e1ee;
  border-radius:18px;
  background:#fff;
  box-shadow:0 3px 12px rgba(48,38,79,.05);
}
.compact-interface .school-availability-builder h2{margin-top:0;color:#30264f}
.compact-interface .school-availability-builder>p{color:#625f71}
.compact-interface .school-weekday-choices{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.55rem;
  margin:0;
  padding:0;
  border:0;
}
.compact-interface .school-weekday-choices legend{
  margin-bottom:.55rem;
  color:#30264f;
  font-size:.9rem;
  font-weight:750;
}
.compact-interface .school-weekday-choice{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:46px;
  padding:.55rem .7rem;
  border:1px solid #e5e1ee;
  border-radius:11px;
  background:#fbfaff;
  color:#30264f;
  cursor:pointer;
}
.compact-interface .school-weekday-choice input{
  width:1rem;
  height:1rem;
  margin:0;
  accent-color:#6554a4;
}
.compact-interface .school-weekday-choice:has(input:checked){
  border-color:#b8add8;
  background:var(--home-canvas);
  color:#493b80;
}
.compact-interface .school-availability-times{
  display:grid;
  grid-template-columns:repeat(3,minmax(120px,.6fr)) auto;
  align-items:end;
  gap:.75rem;
}
.compact-interface .school-availability-times label{
  display:grid;
  gap:.35rem;
  color:#30264f;
  font-weight:700;
}
.compact-interface .school-availability-times input{
  min-height:44px;
  padding:.55rem .7rem;
  border:1px solid #d8d2e8;
  border-radius:10px;
  background:#fff;
  color:#30264f;
  font:inherit;
}
.compact-interface .school-availability-times .btn{min-height:44px}
.compact-interface .school-availability-builder .school-form>small{
  color:#625f71;
  font-size:.8rem;
  line-height:1.5;
}
.compact-interface .school-weekly-availability-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.compact-interface .school-weekly-availability{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  min-width:0;
  padding:.85rem;
  border-color:#e8e4f0;
  border-radius:14px;
  background:#fff;
}
.compact-interface .school-weekly-availability>div{display:grid;gap:.2rem;min-width:0}
.compact-interface .school-weekly-availability strong{color:#30264f}
.compact-interface .school-weekly-availability span{color:#625f71;font-size:.78rem}
.compact-interface .school-weekly-availability form{flex:0 0 auto}
.compact-interface .school-weekly-availability .btn{min-height:38px;padding:.45rem .7rem;font-size:.78rem}
.compact-interface .school-weekly-availability.is-disabled{background:#f8f7fb}
.compact-interface .school-weekly-availability.is-disabled strong{color:#625f71}
.compact-interface .school-appointment-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem}
.compact-interface .school-appointment-actions form{margin:0}
.compact-interface .school-appointment-refusal{gap:.65rem}
.compact-interface .school-appointment-refusal label{font-size:.82rem}
.compact-interface .school-appointment-refusal select{
  min-height:42px;
  padding:.55rem .65rem;
  border:1px solid #d8d2e8;
  border-radius:10px;
  background:#fff;
  color:#30264f;
  font:inherit;
}
.compact-interface .school-appointment-card{padding:1rem;border:1px solid #e8e4f0;border-radius:16px;background:#fff}
.compact-interface .school-appointment-card h3{margin:.55rem 0;color:#30264f}
.compact-interface .school-appointment-card p{margin:.45rem 0;color:#625f71;line-height:1.5}
.compact-interface .school-access-request{padding:.85rem 1rem;border:1px solid #e8e4f0;border-radius:14px;background:#fff}
.compact-interface .school-access-request strong{color:#30264f}
.compact-interface .school-access-request span{color:#625f71}
@media(max-width:650px){
  .compact-interface .school-weekday-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compact-interface .school-availability-times{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compact-interface .school-availability-times .btn{grid-column:1/-1;width:100%}
  .compact-interface .school-weekly-availability-list{grid-template-columns:minmax(0,1fr)}
  .compact-interface .school-weekly-availability{align-items:flex-start;flex-direction:column}
  .compact-interface .school-weekly-availability form,.compact-interface .school-weekly-availability .btn{width:100%}
  .compact-interface .school-appointment-actions{grid-template-columns:minmax(0,1fr)}
  .compact-interface .school-appointment-actions .btn{width:100%;min-height:44px}
}

body.public-site .site-footer-compact{
  border-top-color:#a78bfa;
  background:#302255;
  color:#f6f2ff;
}
body.public-site .site-footer-compact a{color:#e0d4ff}
body.public-site .site-footer-compact a:hover{color:#fff}
body.public-site .legal-page{
  border-color:#e5ddf6;
  box-shadow:0 10px 30px rgba(58,37,106,.055);
}
body.public-site .legal-page section h2{color:#302255}
body.public-site .legal-toc a{border-color:#e5ddf6}
body.public-site .docs-hero{border-color:#e5ddf6}
body.public-site .docs-hero h1,
body.public-site .docs-hero-note strong,
body.public-site .docs-index strong,
body.public-site .docs-section h2,
body.public-site .docs-audience strong{color:#302255}
body.public-site .docs-hero-note,
body.public-site .docs-index,
body.public-site .docs-section,
body.public-site .docs-audience a{
  border-color:#e5ddf6;
}
body.public-site .docs-hero-note,
body.public-site .docs-index,
body.public-site .docs-page .school-support-resources{background:#fbf9ff}
body.public-site .docs-index a,
body.public-site .docs-section a,
body.public-site .docs-hero-link{color:#6846c1}
body.public-site .docs-index a:hover,
body.public-site .docs-audience a:hover{background:#f3eefc}
body.public-site .docs-audience span,
body.public-site .docs-step{color:#6846c1}
body.school-public-site .school-form .btn,
body.school-public-site .school-actions .btn,
body.school-public-site .school-confirmation .btn{
  border-color:#6846c1;
  background:#6846c1;
}
body.school-public-site .school-form .btn:hover,
body.school-public-site .school-actions .btn:hover,
body.school-public-site .school-confirmation .btn:hover{background:#51329f}
body.school-public-site .school-form input:focus,
body.school-public-site .school-form select:focus,
body.school-public-site .school-form textarea:focus{
  border-color:#6846c1;
  outline-color:rgba(104,70,193,.18);
}
@media(max-width:720px){
  body.school-public-site.school-public-home .header-inner{
    min-height:46px;
    gap:.35rem;
    padding:.3rem .65rem;
  }
  body.school-public-site.school-public-home .public-home-brand-mark{
    flex-basis:28px;
    width:28px;
    height:28px;
  }
  body.school-public-site.school-public-home .public-home-brand-mark svg{
    width:20px;
    height:20px;
  }
  body.school-public-site.school-public-home .brand{
    gap:.35rem;
    font-size:.88rem;
  }
  body.school-public-site.school-public-home .public-home-brand-copy small{font-size:.5rem}
  body.school-public-site.school-public-home .nav-toggle{
    width:31px;
    height:31px;
    min-width:31px;
    padding:0;
    border-radius:9px;
    font-size:1rem;
  }
  body.school-public-site.school-public-home .school-main{
    width:min(100% - 1rem,540px);
    padding:.4rem 0 1.5rem;
  }
  body.school-public-site.school-public-home .public-home-hero{
    display:block;
    min-height:clamp(138px,60vw,164px);
    margin:.1rem 0 .45rem;
    padding:.6rem .68rem .5rem;
    border-radius:14px;
    box-shadow:0 8px 22px rgba(73,49,141,.07);
  }
  body.school-public-site.school-public-home .public-home-copy{
    position:static;
    width:100%;
    min-height:0;
    max-width:none;
  }
  body.school-public-site.school-public-home .public-home-copy h1{
    max-width:70%;
    margin:0 0 .35rem;
    font-size:clamp(.8rem,4.6vw,1.08rem);
    line-height:1.1;
    letter-spacing:-.045em;
  }
  body.school-public-site.school-public-home .public-home-copy>p:not(.flash){
    max-width:70%;
    font-size:clamp(.56rem,2.6vw,.68rem);
    line-height:1.36;
  }
  body.school-public-site.school-public-home .public-home-primary{
    position:absolute;
    z-index:3;
    right:0;
    bottom:0;
    left:0;
    width:100%;
    min-height:clamp(27px,9.5vw,36px);
    margin:0;
    gap:.35rem;
    padding:.25rem .4rem;
    font-size:clamp(.54rem,2.4vw,.68rem);
    white-space:nowrap;
  }
  body.school-public-site.school-public-home .public-home-primary svg{width:14px;height:14px}
  body.school-public-site.school-public-home .public-home-illustration{
    position:absolute;
    top:.35rem;
    right:-.25rem;
    width:53%;
    height:calc(100% - .7rem);
    min-height:0;
    opacity:.98;
  }
  body.school-public-site.school-public-home .public-home-illustration::before{
    top:4%;
    right:3%;
    width:94%;
  }
  body.school-public-site.school-public-home .public-home-illustration svg{
    width:100%;
    max-height:100%;
  }
  body.school-public-site.school-public-home .public-home-paths{
    grid-template-columns:1fr;
    gap:.3rem;
  }
  body.school-public-site.school-public-home .public-home-path{
    grid-template-columns:clamp(26px,10vw,34px) minmax(0,1fr) 14px;
    gap:.55rem;
    min-height:clamp(34px,14vw,50px);
    padding:.3rem .55rem;
    border-radius:11px;
    box-shadow:0 3px 10px rgba(66,44,123,.04);
  }
  body.school-public-site.school-public-home .public-home-path-icon{
    width:clamp(26px,10vw,34px);
    height:clamp(26px,10vw,34px);
  }
  body.school-public-site.school-public-home .public-home-path-icon svg{width:18px;height:18px}
  body.school-public-site.school-public-home .public-home-path strong{font-size:clamp(.63rem,2.8vw,.74rem)}
  body.school-public-site.school-public-home .public-home-path small{font-size:clamp(.57rem,2.4vw,.65rem)}
  body.school-public-site.school-public-home .public-home-chevron{width:14px;height:14px}
  body.school-public-site.school-public-home .public-home-assurances{
    justify-content:space-between;
    gap:.2rem;
    margin:.45rem 0 .9rem;
    padding:.42rem .05rem;
    border-color:#e5ddf6;
  }
  body.school-public-site.school-public-home .public-home-assurances li{
    gap:.2rem;
    font-size:clamp(.49rem,2.25vw,.64rem);
  }
  body.school-public-site.school-public-home .public-home-assurances svg{width:13px;height:13px}
}

body.public-site:not(.admin-auth-site),
body.school-public-site{
  --sage-bg:#e8e5d7;
  --sage-soft:#f1eee4;
  --sage-strong:#74816a;
  --sage-deep:#39483b;
  --sand:#eee4d2;
  --paper:#f7f4eb;
  --white:#fffdf7;
  --ink:#37372f;
  --muted:#6b685d;
  --line:#e3dac8;
  --jaune:#c7a678;
  --jaune-clair:#f3eadb;
  --rouge:#b86f52;
  --rouge-fonce:#98583f;
  --encre:#37372f;
  --encre-douce:#6b685d;
  --papier:#f7f4eb;
  --blanc:#fffdf7;
  --bord:#e3dac8;
  --shadow:0 10px 26px rgba(79,66,47,.08);
  --ombre:var(--shadow);
  --brand-forest:#39483b;
  --brand-leaf:#74816a;
  --brand-mint:#e8e5d7;
  --brand-paper:#f7f4eb;
  --brand-ink:#37372f;
  --brand-muted:#6b685d;
  --brand-line:#e3dac8;
  --brand-gold:#c7a678;
  --sans:"Plus Jakarta Sans","Quicksand","Trebuchet MS","Aptos","Segoe UI",Arial,sans-serif;
  background-color:#f7f4eb;
  background-image:
    radial-gradient(ellipse at 12% 0%,rgba(195,165,125,.12),transparent 36rem),
    radial-gradient(rgba(92,79,60,.045) .5px,transparent .65px);
  background-size:auto,9px 9px;
  color:#37372f;
  font-family:var(--sans);
}
body.public-site:not(.admin-auth-site) h1,
body.public-site:not(.admin-auth-site) h2,
body.public-site:not(.admin-auth-site) h3,
body.school-public-site h1,
body.school-public-site h2,
body.school-public-site h3{
  color:#39483b;
  font-family:var(--sans);
  letter-spacing:-.035em;
}
body.public-site:not(.admin-auth-site) a,
body.school-public-site a{color:#98583f}
body.public-site:not(.admin-auth-site) a:hover,
body.school-public-site a:hover{color:#754631}
body.public-site:not(.admin-auth-site) :focus-visible,
body.school-public-site :focus-visible{
  outline-color:#74816a;
}
body.public-site:not(.admin-auth-site) .topstripe,
body.school-public-site .topstripe{
  height:4px;
  background:linear-gradient(90deg,#39483b 0 68%,#74816a 68% 86%,#c7a678 86% 100%);
}
body.public-site:not(.admin-auth-site) .site-header,
body.school-public-site .site-header{
  border-color:#e3dac8;
  background:rgba(255,253,247,.94);
  box-shadow:0 3px 14px rgba(79,66,47,.035);
}
body.public-site:not(.admin-auth-site) .brand,
body.school-public-site .brand{
  color:#39483b!important;
  font-family:var(--sans);
}
body.public-site:not(.admin-auth-site) .brand svg circle{
  fill:#eee4d2;
  stroke:#74816a;
}
body.public-site:not(.admin-auth-site) .brand svg path{
  stroke:#74816a;
}
body.public-site:not(.admin-auth-site) .brand svg path:last-child{
  stroke:#b86f52;
}
body.public-site:not(.admin-auth-site) .main-nav a,
body.school-public-site .main-nav a{color:#55584d}
body.public-site:not(.admin-auth-site) .main-nav a:hover,
body.public-site:not(.admin-auth-site) .main-nav a.active,
body.school-public-site .main-nav a:hover,
body.school-public-site .main-nav a.active{
  background:#f1eee4;
  color:#39483b;
}
body.public-site:not(.admin-auth-site) .main-nav a.active,
body.school-public-site .main-nav a.active{
  box-shadow:inset 0 -2px #74816a;
}
body.public-site:not(.admin-auth-site) .main-nav .main-nav-action,
body.school-public-site .main-nav .main-nav-action{
  border-color:#74816a;
  background:#74816a;
  color:#fff;
}
body.public-site:not(.admin-auth-site) .main-nav .main-nav-action:hover,
body.school-public-site .main-nav .main-nav-action:hover{
  background:#59664f;
  color:#fff;
}
body.public-site:not(.admin-auth-site) .nav-toggle,
body.school-public-site .nav-toggle{
  border-color:#e3dac8;
  background:#fffdf7;
  color:#53634c;
}
body.public-site:not(.admin-auth-site) .main-nav,
body.school-public-site .main-nav{
  border-color:#d7cbb7;
  background:#fffdf7;
}
body.public-site:not(.admin-auth-site) .site-footer,
body.public-site:not(.admin-auth-site) .site-footer-compact,
body.school-public-site .site-footer{
  border-color:#74816a;
  background:#39483b;
  color:#f8f4e9;
}
body.public-site:not(.admin-auth-site) .site-footer a,
body.public-site:not(.admin-auth-site) .site-footer-compact a,
body.school-public-site .site-footer a{
  color:#eee0c9;
}
body.public-site:not(.admin-auth-site) .site-footer a:hover,
body.public-site:not(.admin-auth-site) .site-footer-compact a:hover,
body.school-public-site .site-footer a:hover{color:#fff}
body.public-site:not(.admin-auth-site) .site-footer h3{color:#e5c5a6}
body.public-site:not(.admin-auth-site) .footer-bottom{border-color:#596654}
body.public-site:not(.admin-auth-site) .legal-page,
body.public-site:not(.admin-auth-site) .docs-section,
body.public-site:not(.admin-auth-site) .docs-audience a,
body.school-public-site .school-form-card,
body.school-public-site .school-confirmation,
body.school-public-site .school-case-card,
body.school-public-site .school-staff-card,
body.school-public-site .school-class-card,
body.school-public-site .school-list .card{
  border:1px solid #e3dac8;
  border-radius:19px 17px 21px 16px;
  background-color:#fffdf7;
  box-shadow:0 7px 22px rgba(79,66,47,.055);
}
body.public-site:not(.admin-auth-site) .legal-heading h1,
body.public-site:not(.admin-auth-site) .legal-page section h2,
body.public-site:not(.admin-auth-site) .docs-hero h1,
body.public-site:not(.admin-auth-site) .docs-section h2,
body.public-site:not(.admin-auth-site) .docs-audience strong,
body.public-site:not(.admin-auth-site) .docs-index strong,
body.school-public-site .school-page-heading h1,
body.school-public-site .school-how-heading h2{color:#39483b}
body.public-site:not(.admin-auth-site) .home-section-kicker,
body.public-site:not(.admin-auth-site) .docs-step,
body.public-site:not(.admin-auth-site) .docs-audience span,
body.school-public-site .school-eyebrow,
body.school-public-site .home-section-kicker{color:#74816a}
body.public-site:not(.admin-auth-site) .legal-page section h2,
body.public-site:not(.admin-auth-site) .docs-hero,
body.public-site:not(.admin-auth-site) .docs-section,
body.public-site:not(.admin-auth-site) .docs-index,
body.public-site:not(.admin-auth-site) .docs-hero-note,
body.public-site:not(.admin-auth-site) .docs-audience a,
body.school-public-site .school-form-card,
body.school-public-site .school-confirmation,
body.school-public-site .school-case-content{
  border-color:#e3dac8;
}
body.public-site:not(.admin-auth-site) .docs-index,
body.public-site:not(.admin-auth-site) .docs-hero-note,
body.public-site:not(.admin-auth-site) .docs-page .school-support-resources{
  background:#f3eee3;
}
body.public-site:not(.admin-auth-site) .docs-index a,
body.public-site:not(.admin-auth-site) .docs-section a,
body.public-site:not(.admin-auth-site) .docs-hero-link,
body.public-site:not(.admin-auth-site) .legal-toc a{
  color:#59664f;
}
body.public-site:not(.admin-auth-site) .docs-index a{
  border-color:#e3dac8;
  background:#fffdf7;
}
body.public-site:not(.admin-auth-site) .docs-index a:hover,
body.public-site:not(.admin-auth-site) .docs-audience a:hover{
  border-color:#c8b99f;
  background:#f1eee4;
}
body.public-site:not(.admin-auth-site) .docs-section code{
  background:#f1eee4;
  color:#754f3d;
}
body.public-site:not(.admin-auth-site) .legal-toc a{
  border-color:#e3dac8;
  background:#f3eee3;
}
body.public-site:not(.admin-auth-site) .legal-toc a:hover{
  border-color:#c8b99f;
  background:#e8e5d7;
}
body.public-site:not(.admin-auth-site) .legal-alert{
  border-color:#d7b997;
  border-left-color:#b86f52;
  background:#f7eee4;
  color:#634a3b;
}
body.public-site:not(.admin-auth-site) .legal-page th{
  background:#f1eee4;
}
body.public-site:not(.admin-auth-site) .legal-page th,
body.public-site:not(.admin-auth-site) .legal-page td{
  border-color:#e3dac8;
}
body.school-public-site .school-landing,
body.school-public-site.school-public-home .public-home-hero{
  border-color:#e3dac8;
  background-color:#fffdf7;
  background-image:
    radial-gradient(ellipse at 95% 5%,rgba(199,166,120,.21),transparent 48%),
    radial-gradient(rgba(92,79,60,.04) .5px,transparent .65px),
    linear-gradient(135deg,#fffdf7,#f5efe2);
  background-size:auto,9px 9px,auto;
  box-shadow:0 12px 32px rgba(79,66,47,.09);
}
body.school-public-site .school-landing-copy h1,
body.school-public-site .public-home-copy h1{color:#39483b}
body.school-public-site .school-landing-copy>p:not(.school-privacy-note),
body.school-public-site .public-home-copy>p:not(.flash){color:#68665b}
body.school-public-site .public-home-primary,
body.school-public-site .school-primary-action,
body.school-public-site .school-actions .btn,
body.school-public-site .school-form .btn,
body.school-public-site .school-confirmation .btn{
  border-color:#74816a;
  background:#74816a;
  color:#fff;
  box-shadow:0 4px 0 rgba(57,72,59,.12);
}
body.school-public-site .public-home-primary:hover,
body.school-public-site .school-primary-action:hover,
body.school-public-site .school-actions .btn:hover,
body.school-public-site .school-form .btn:hover,
body.school-public-site .school-confirmation .btn:hover{
  background:#59664f;
  color:#fff;
}
body.school-public-site .public-home-path{
  border-color:#e3dac8;
  border-radius:15px 13px 17px 14px;
  background:#fffdf7;
  box-shadow:0 6px 16px rgba(79,66,47,.06);
  color:#39483b;
}
body.school-public-site .public-home-path:nth-child(2){
  transform:translateY(8px);
  background:#f0eee3;
}
body.school-public-site .public-home-path:nth-child(2):hover{
  transform:translateY(5px);
}
body.school-public-site .public-home-path:hover{
  border-color:#c8b99f;
  box-shadow:0 10px 22px rgba(79,66,47,.1);
  color:#39483b;
}
body.school-public-site .public-home-path-icon{
  background:#e8e5d7;
  color:#59664f;
}
body.school-public-site .public-home-chevron,
body.school-public-site .public-home-assurances svg{color:#74816a}
body.school-public-site .public-home-assurances{
  border-color:#ded4c2;
  color:#68665b;
}
body.school-public-site .school-audience-card{
  border-color:#e3dac8;
  border-radius:20px 17px 22px 16px;
  background:
    radial-gradient(rgba(92,79,60,.035) .5px,transparent .65px) 0 0/9px 9px,
    #f0eee3;
  box-shadow:0 9px 24px rgba(79,66,47,.06);
}
body.school-public-site .school-audience-card h2{color:#39483b}
body.school-public-site .school-audience-actions a:first-child{
  border-color:#74816a;
  background:#74816a;
  color:#fff;
}
body.school-public-site .school-audience-actions a:first-child:hover{
  background:#59664f;
  color:#fff;
}
body.school-public-site .school-audience-actions a:not(:first-child){
  border-color:#d8cbb7;
  background:#fffdf7;
  color:#59664f;
}
body.school-public-site .school-audience-guide,
body.school-public-site .student-safety-note a{color:#98583f}
body.school-public-site .school-how li{
  border-color:#e3dac8;
  border-radius:14px 12px 16px 13px;
  background:#fffdf7;
  box-shadow:0 4px 14px rgba(79,66,47,.045);
}
body.school-public-site .school-how li::before{
  background:#e8e5d7;
  color:#59664f;
}
body.school-public-site .school-how li strong,
body.school-public-site .school-form label,
body.school-public-site .school-empty-help h2{color:#39483b}
body.school-public-site .school-form input,
body.school-public-site .school-form select,
body.school-public-site .school-form textarea{
  border-color:#d8cbb7;
  border-radius:10px;
  background:#fffdf7;
  color:#37372f;
}
body.school-public-site .school-form input:focus,
body.school-public-site .school-form select:focus,
body.school-public-site .school-form textarea:focus{
  border-color:#74816a;
  outline-color:rgba(116,129,106,.2);
}
body.school-public-site .school-confirmation-mark{
  background:#e8e5d7;
  color:#59664f;
}
body.school-public-site .school-footer{
  border-color:#74816a;
  background:#39483b;
  color:#f8f4e9;
}
body.school-public-site .school-footer a{color:#eee0c9}
body.school-public-site .student-safety-note{
  border-color:#d8cbb7;
  border-radius:16px 14px 18px 15px;
  background:#f4ede0;
  color:#5e5346;
}
body.school-public-site .student-safety-note strong{color:#39483b}
body.school-public-site.school-public-home{
  --home-purple:#74816a;
  --home-lavender:#b86f52;
  --home-pale:#e8e5d7;
  --home-canvas:#f7f4eb;
  color:#37372f;
}
body.public-site:not(.admin-auth-site) a.public-home-primary,
body.school-public-site a.public-home-primary{color:#fff}
body.public-site:not(.admin-auth-site) .form-stack input,
body.public-site:not(.admin-auth-site) .form-stack select,
body.public-site:not(.admin-auth-site) .form-stack textarea{
  border-color:#d8cbb7;
  border-radius:10px;
  background:#fffdf7;
  color:#37372f;
}
body.public-site:not(.admin-auth-site) .form-stack input:focus,
body.public-site:not(.admin-auth-site) .form-stack select:focus,
body.public-site:not(.admin-auth-site) .form-stack textarea:focus{
  border-color:#74816a;
  outline-color:rgba(116,129,106,.2);
}
@media(min-width:721px){
  body.school-public-site.school-public-home .public-home-paths{
    grid-template-columns:1.08fr .92fr 1fr;
    align-items:start;
    gap:.85rem;
  }
  body.school-public-site.school-public-home .public-home-path:nth-child(2){
    margin-top:.5rem;
  }
}
@media(max-width:720px){
  body.school-public-site.school-public-home .public-home-path:nth-child(2){
    transform:none;
  }
  body.school-public-site.school-public-home .public-home-path:nth-child(2):hover{
    transform:translateY(-2px);
  }
}
