:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f8fbff;background:#10172f;--card:rgba(255,255,255,.11);--line:rgba(255,255,255,.16);--gold:#ffcf5a;--blue:#dbe7ff;--muted:#aeb8d8}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#314575,#10172f 58%);min-height:100vh}.app{max-width:720px;margin:auto;padding:env(safe-area-inset-top) 16px 32px}header{display:flex;align-items:center;justify-content:space-between;padding:18px 0 10px}h1{font-size:34px;margin:0;line-height:1}h2{margin:0 0 12px;font-size:24px}h3{margin:18px 0 8px;font-size:17px}.eyebrow{margin:0 0 4px;color:#a9c2ff;text-transform:uppercase;letter-spacing:.12em;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:18px;margin:14px 0;box-shadow:0 18px 60px rgba(0,0,0,.22);backdrop-filter:blur(16px)}.hero{background:linear-gradient(135deg,#253b80,#6a4cff)}.compact-hero{padding:16px}.login{margin-top:12vh}button,input,textarea,select{font:inherit;border-radius:16px;border:0}button{padding:12px 14px;font-weight:800}button.primary{background:var(--gold);color:#1d2442}button.secondary{background:var(--blue);color:#18234b}.ghost{background:rgba(255,255,255,.15);color:white}button:disabled{opacity:.45}label,.menu-label{display:block;margin:10px 0 6px;color:#dce6ff;font-weight:700}input,textarea,select{width:100%;padding:14px;margin:7px 0;background:#f8fbff;color:#10172f}textarea{min-height:92px}.section-select{position:sticky;top:0;z-index:4;border:2px solid #ffcf5a;box-shadow:0 12px 36px rgba(0,0,0,.28)}.panel{display:none}.panel.active{display:block}.row{display:flex;gap:8px}.row>*{flex:1}.result{color:#ffdf7e}.result.error,.error{color:#ffb4b4;font-weight:800}.hint{color:var(--muted);font-size:.95rem;margin:.2rem 0 .7rem}.empty{color:var(--muted);font-style:italic}.list{display:flex;flex-direction:column;gap:8px}.list-item,.msg,details.chapter,details{padding:11px 12px;border-radius:16px;background:rgba(255,255,255,.12);margin:8px 0}.list-item small,summary small{color:var(--muted)}.composer{display:flex;gap:8px;margin-top:10px}.composer input{flex:1}.composer button{background:#80ffcf;color:#102033}#messages{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto}.msg.user{align-self:flex-end;background:var(--gold);color:#14203f}.hidden{display:none!important}.quick-actions{display:grid;grid-template-columns:1fr;gap:8px}.quick{background:rgba(255,255,255,.18);color:white;text-align:left}.photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.photoBtn{background:#dbe7ff;color:#18234b;padding:9px 10px}.course-photo{width:100%;border-radius:18px;margin-top:12px;border:1px solid var(--line)}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.metric{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:.9rem}.metric strong{display:block;font-size:1.5rem}.metric span{display:block;opacity:.9}.metric small{display:block;opacity:.7;margin-top:.25rem}.link{text-decoration:none;color:inherit}.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));gap:8px;overflow-x:auto;padding-bottom:10px}.week-day{min-width:112px;background:rgba(255,255,255,.08);border:1px solid var(--line);border-radius:18px;overflow:hidden}.day-head{position:sticky;top:0;background:rgba(16,23,47,.95);text-align:center;font-weight:900;padding:8px;border-bottom:1px solid var(--line);z-index:1}.day-body{position:relative;height:780px;background:linear-gradient(to bottom,rgba(255,255,255,.08) 0 1px,transparent 1px 60px)}.hour{height:60px;font-size:11px;color:var(--muted);padding:2px 4px;border-bottom:1px solid rgba(255,255,255,.06)}.slot{position:absolute;left:4px;right:4px;display:block;text-align:left;overflow:hidden;border-radius:12px;padding:5px 6px;border:1px solid rgba(255,255,255,.25);box-shadow:0 6px 16px rgba(0,0,0,.25);cursor:grab;font-size:12px;color:#10172f;background:#ffcf5a}.slot strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot small{display:block;font-size:10px;opacity:.8}.slot.sport{background:#80ffcf}.slot.loisir{background:#d6c2ff}.slot.transport{background:#c9d1dc}.slot.etude,.slot.devoirs-du-soir,.slot.travail-perso{background:#ffb4b4}.slot.cours{background:#ffcf5a}@media(min-width:540px){.quick-actions{grid-template-columns:repeat(3,1fr)}}.day-agenda{display:flex;flex-direction:column;gap:12px}.agenda-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.10)}.agenda-status span{color:#ffdf7e;font-weight:800;white-space:nowrap}.day-progress{position:relative;height:14px;border-radius:999px;background:rgba(255,255,255,.18);overflow:visible;border:1px solid rgba(255,255,255,.18)}.day-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ffcf5a,#73f0ff)}.day-progress-cursor{position:absolute;top:50%;width:24px;height:24px;border-radius:50%;background:#fff;border:4px solid #ffcf5a;box-shadow:0 4px 16px rgba(0,0,0,.35);transform:translate(-50%,-50%)}.agenda-list{display:flex;flex-direction:column;gap:8px}.agenda-item{display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:center;padding:11px 12px;border-radius:16px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.10)}.agenda-item.current{background:rgba(255,207,90,.22);border-color:#ffcf5a}.agenda-item time{font-weight:900;color:#ffdf7e}.agenda-item small{display:block;color:#aeb8d8;margin-top:2px}

.screen{display:none}.screen.active{display:block}.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.subject-card{min-height:112px;text-align:left;background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.08));color:white;border:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;justify-content:space-between}.subject-card span{font-size:26px}.subject-card strong{font-size:20px}.subject-card small{color:#dbe7ff}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.action-grid button{min-height:50px}.action-area{margin-top:14px;padding-top:4px}.back-btn,.back-tool{margin:8px 0 4px}.subject-hero{background:linear-gradient(135deg,#334b92,#8a5cf6)}.focus-box,.method-card{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);border-radius:18px;padding:14px}.focus-box strong{display:block;font-size:20px}.focus-box small{display:block;color:#b9c8ef;margin-top:6px}.method-card p{margin:.5rem 0 0;color:#e9efff}.messages{max-height:310px;overflow:auto;margin:10px 0}.tools-card{opacity:.95}.day-agenda{display:flex;flex-direction:column;gap:10px}.agenda-status{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fff}.agenda-status span{font-size:.9rem;color:#dbe7ff}.day-progress{position:relative;height:12px;background:rgba(255,255,255,.16);border-radius:999px;margin:4px 8px 8px}.day-progress-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#ffcf5a,#76ffd0);border-radius:999px}.day-progress-cursor{position:absolute;top:50%;width:22px;height:22px;border-radius:50%;background:#fff;border:4px solid #ffcf5a;transform:translate(-50%,-50%);box-shadow:0 5px 18px rgba(0,0,0,.35)}.agenda-list{display:flex;flex-direction:column;gap:8px}.agenda-item{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:start;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.10)}.agenda-item.current{outline:2px solid #ffcf5a;background:rgba(255,207,90,.18)}.agenda-item time{font-weight:900;color:#ffdf7e}.agenda-item small{display:block;color:#bcc9e8;margin-top:3px}@media(max-width:520px){.subject-grid,.action-grid{grid-template-columns:1fr}.app{padding-left:12px;padding-right:12px}.agenda-item{grid-template-columns:72px 1fr}}

/* v16 Maxence home flow */
.top-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0 14px}.top-tabs .tab,.subject-tab{background:rgba(255,255,255,.16);color:white;border:1px solid rgba(255,255,255,.20)}.top-tabs .active,.subject-tab.active{background:#ffcf5a;color:#1d2442}.subject-subpanel{display:none}.subject-subpanel.active{display:block}.sequence-btn{width:100%;margin:7px 0;text-align:left;background:rgba(255,255,255,.12);color:white;border:1px solid rgba(255,255,255,.18);display:flex;justify-content:space-between;align-items:center;gap:8px}.sequence-btn.active{outline:2px solid #ffcf5a;background:rgba(255,207,90,.18)}.flip-card{min-height:220px;border-radius:24px;background:linear-gradient(135deg,#fff,#dbe7ff);color:#14204a;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;margin:12px 0;box-shadow:0 18px 40px rgba(0,0,0,.25)}.flip-card strong{font-size:22px}.flip-card small{margin-top:14px;color:#4b5b86}.qcm-choices{display:flex;flex-direction:column;gap:10px}.choice{text-align:left;background:#f8fbff;color:#10172f;border:3px solid transparent}.choice.good{border-color:#37d67a;background:#dcffe9}.choice.bad{border-color:#ff6464;background:#ffe2e2}.score{font-size:28px;font-weight:900;color:#ffdf7e}.exercise-area{margin-top:12px}.current-sequence .secondary{margin-top:10px}

/* v17 calendar + evaluation subject */
.month-calendar{margin:12px 0;padding:12px;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16)}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekdays span{text-align:center;font-size:12px;color:#dbe7ff;font-weight:800}.calendar-day{min-height:56px;border-radius:12px;background:rgba(255,255,255,.10);padding:5px;overflow:hidden}.calendar-day.today{outline:2px solid #ffcf5a;background:rgba(255,207,90,.20)}.calendar-day strong{display:block;font-size:13px}.calendar-day small{display:block;font-size:9px;line-height:1.1;background:rgba(16,23,47,.42);border-radius:6px;padding:2px 3px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty-day{visibility:hidden}.evaluation-subject{display:flex;flex-direction:column;gap:8px}.eval-ex{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);border-radius:16px;padding:10px}.correction{margin-top:8px;padding:10px;border-radius:12px;background:rgba(255,207,90,.18)}
