:root{--canvas:#000;--sidebar:#04070d;--surface:#080e19;--surface-raised:#101b2d;--field:#030813;--ink:#edf3ff;--secondary:#93a5bf;--line:#1d2c45;--brand:#88aeff;--action:#194bd8;--action-hover:#2b60ed;--blue-soft:#0a2049;--hero-start:#061127;--hero-end:#102e68;--success:#68dfbc;--success-bg:#092c26;--warning:#f3b68b;--warning-bg:#322218;--scrim:#000b;--toast-bg:#d9e6ff;--toast-ink:#10244b;--panel:var(--surface);--border:var(--line);--muted:var(--secondary);--accent:var(--brand);color-scheme:dark}
:root[data-theme=light]{--canvas:#f2f5fa;--sidebar:#fff;--surface:#fff;--surface-raised:#eaf0fa;--field:#f7f9fc;--ink:#13223c;--secondary:#52647d;--line:#d2dcea;--brand:#164ac4;--action:#194bd8;--action-hover:#123eae;--blue-soft:#e5eeff;--hero-start:#e5edff;--hero-end:#cddcff;--success:#08745a;--success-bg:#dff5ec;--warning:#8a4914;--warning-bg:#fff0df;--scrim:#0e1c3e80;--toast-bg:#112b5a;--toast-ink:#fff;color-scheme:light}
body{background:var(--canvas);color:var(--ink)}
[hidden]{display:none!important}
.brand .logo{background:var(--action);color:white}.logo{font-size:27px}.version{color:var(--brand);border-color:var(--line)}
.primary,.checked{background:var(--action);color:#fff}.primary:hover,.checked:hover{background:var(--action-hover)}
button:hover,.button:hover{background:var(--surface-raised)}.primary:hover{background:var(--action-hover)}
#nav button.active{background:var(--blue-soft);color:var(--brand)}#nav b{background:var(--surface-raised);color:var(--brand)}
.hero{background:radial-gradient(ellipse at 80% 110%,var(--hero-end),transparent 65%),linear-gradient(115deg,var(--hero-start),var(--surface));border-color:var(--line)}
.hero p,.tag{color:var(--secondary)}.hero h2{color:var(--ink)}.light{background:var(--action);color:#fff}.light:hover{background:var(--action-hover)}
.orbit,.orbit:after{border-color:var(--brand);opacity:.7}.orbit-inner{color:var(--brand);text-shadow:0 0 40px var(--action)}.orbit-dot{background:var(--brand)}
.purple,.avatar,.subject-mark,.badge{background:var(--blue-soft);color:var(--brand)}.green{background:var(--success-bg);color:var(--success)}
.day.today>span{background:var(--action);color:white}.day small{background:var(--blue-soft);color:var(--brand)}.day.selected{box-shadow:inset 0 0 0 2px var(--brand)}
.progress-ring{border-color:var(--blue-soft);box-shadow:inset 0 0 0 1px var(--line)}.progress-ring strong{color:var(--brand)}
.notes-peek{width:100%;display:flex;align-items:center;gap:18px;text-align:left;margin:-6px 0 22px;padding:12px 16px;background:var(--surface);font-size:12px}
.notes-peek>span:first-child{white-space:nowrap;font-weight:600}.notes-peek b{margin-left:6px;color:var(--brand)}.notes-peek small{color:var(--secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.notes-peek>span:last-child{margin-left:auto;color:var(--brand)}
.personal-note{border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px;background:var(--field)}.personal-note p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px}.personal-note small{color:var(--secondary)}.personal-note>div{display:flex;gap:8px;margin-top:12px}.personal-note button{font-size:11px;padding:7px 11px}
#personal-notes-list{max-height:40vh;overflow:auto;margin-bottom:20px}#note-form{border-top:1px solid var(--line);padding-top:20px}
.theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:650px}.theme-picker button{text-align:left;background:var(--field);padding:16px}.theme-picker button[aria-pressed=true]{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.theme-swatch{height:85px;display:block;border-radius:8px;margin-bottom:15px;border:1px solid #28436e}.theme-swatch.dark{background:linear-gradient(140deg,#000 55%,#123c93)}.theme-swatch.light{background:linear-gradient(140deg,#fff 55%,#d7e4ff)}.theme-picker strong,.theme-picker small{display:block}.theme-picker small{margin-top:7px;color:var(--secondary)}
.school-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(200px,1fr);gap:35px}.subject-directory{border-top:1px solid var(--line)}.subject-entry{border:0;border-bottom:1px solid var(--line);border-radius:0;width:100%;padding:27px 15px;display:flex;align-items:center;gap:23px;text-align:left;background:transparent}.subject-number{color:var(--brand);font-size:12px;font-variant-numeric:tabular-nums}.subject-entry-name{flex:1;min-width:0}.subject-entry-name strong{font-size:21px;letter-spacing:-.5px;display:block;overflow-wrap:anywhere}.subject-entry-name small{font-size:11px;display:block;color:var(--secondary);margin-top:8px}.subject-entry-arrow{font-size:24px;color:var(--brand)}.school-aside{padding:30px;border-radius:15px;background:linear-gradient(145deg,var(--blue-soft),var(--surface));align-self:start}.school-aside h2{font-size:30px;line-height:1.3;margin-top:24px}.school-aside p{font-size:12px;color:var(--secondary)}.school-connection{margin-top:60px;border-top:1px solid var(--line);padding-top:22px}.back-button{margin-bottom:20px;font-size:12px}.subject-overview{display:flex;align-items:center;gap:35px;border:1px solid var(--line);border-radius:14px;padding:25px;background:var(--surface);margin-bottom:25px}.subject-overview>div:not(:first-child){display:flex;flex-direction:column;gap:7px}.subject-overview strong{font-size:28px;font-weight:500}.subject-overview span{font-size:11px;color:var(--secondary)}.subject-initial{width:65px;height:65px;border-radius:18px;background:var(--blue-soft);color:var(--brand);font-size:23px;display:grid;place-items:center;margin-right:auto}
.calendar-connect{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:18px;border-radius:12px;margin-bottom:22px;background:var(--surface)}.calendar-connect>div{flex:1}.calendar-connect strong{font-size:12px}.calendar-connect p{font-size:11px;color:var(--secondary);margin:5px 0 0}.calendar-connect button{white-space:nowrap;font-size:11px}
.music-banner{display:flex;gap:18px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:13px;background:var(--surface);margin-bottom:26px}.music-symbol{background:var(--blue-soft);color:var(--brand);font-size:25px;display:grid;place-items:center;width:48px;height:48px;border-radius:14px;flex-shrink:0}.music-banner strong{font-size:14px}.music-banner p{color:var(--secondary);margin:6px 0 0;font-size:12px}.music-banner .button{margin-left:auto;font-size:12px;white-space:nowrap}
.program-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.program-card h2{font-size:23px;overflow-wrap:anywhere;margin-top:25px}.program-kind{font-size:10px;letter-spacing:1.3px;color:var(--brand)}.program-card .section-head>.muted{font-size:12px}.program-objective{font-size:13px;color:var(--secondary);min-height:42px;overflow-wrap:anywhere}.program-spec{font-size:12px;color:var(--brand);padding:12px 0;border-bottom:1px solid var(--line)}.subtask-list{padding:12px 0}.subtask{display:flex;align-items:flex-start;gap:10px;padding:9px 0;font-size:12px;line-height:1.6}.subtask input{width:18px;height:18px;flex-shrink:0;margin:1px 0 0;accent-color:var(--action)}.subtask span{overflow-wrap:anywhere;min-width:0}.subtask.complete span{text-decoration:line-through;color:var(--secondary)}.subtask-list>p{font-size:12px;margin-bottom:0}.program-actions{display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);padding-top:18px;flex-wrap:wrap}.program-actions button{font-size:12px}.program-actions .text-button{margin-left:auto;font-size:10px}.empty-programs{padding:55px 25px;text-align:center;border:1px dashed var(--line);border-radius:16px;background:var(--surface)}.empty-programs>span{font-size:50px;color:var(--brand)}.empty-programs h2{font-size:24px;margin-top:20px}.empty-programs p{color:var(--secondary);font-size:13px;max-width:420px;margin:0 auto 25px}.active-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px;border:1px solid var(--action);background:var(--blue-soft);border-radius:13px;margin-bottom:25px}.active-summary.break{background:var(--success-bg);border-color:var(--success)}.active-summary h2{margin:0 0 10px}.active-summary>strong{font-size:42px;font-weight:400;font-variant-numeric:tabular-nums}.active-summary p{width:100%;margin:0;color:var(--secondary);font-size:12px}.js-phase-label{font-size:12px}.program-help{font-size:11px;margin-top:15px}#program-form>label,#program-form>.form-grid{margin:18px 0}
@media(max-width:900px){.school-layout{grid-template-columns:1fr}.school-aside{display:none}.calendar-connect{flex-wrap:wrap}.calendar-connect>div{flex-basis:100%}.music-banner{flex-wrap:wrap}.music-banner .button{margin-left:66px}.theme-picker{gap:12px}}
@media(max-width:760px){.notes-peek{gap:10px;flex-wrap:wrap;padding:12px}.notes-peek small{order:3;flex-basis:100%;font-size:11px}.notes-peek>span:first-child{font-size:11px}.theme-picker{grid-template-columns:1fr 1fr}.theme-picker button{padding:12px}.theme-picker strong{font-size:12px}.theme-picker small{font-size:10px}.subject-entry{padding:23px 5px;gap:16px}.subject-entry-name strong{font-size:19px}.subject-entry-name small{font-size:10px}.subject-overview{gap:16px;padding:17px}.subject-initial{width:45px;height:45px;font-size:18px;flex-shrink:0}.subject-overview strong{font-size:23px}.subject-overview span{font-size:9px}.program-grid{grid-template-columns:1fr}.program-card .section-head{flex-wrap:wrap}.music-banner{padding:18px;gap:12px}.music-banner>div{flex:1;min-width:0}.music-banner strong{font-size:13px}.music-banner p{font-size:10px}.music-banner .button{margin-left:0;width:100%;text-align:center}.active-summary>strong{font-size:33px}.task-group>.section-head{flex-wrap:wrap}.task-group>.section-head .muted{font-size:11px}.program-card h2{font-size:21px}}

.nav-label,.eyebrow,.weekday{color:var(--secondary)}

main:focus{outline:none}

/* Le minuteur flotte au-dessus du contenu : aucune place réservée dans la grille. */
.focus-widget{position:fixed;z-index:45;top:84px;right:20px;width:106px;pointer-events:none}.timer-pill{pointer-events:auto;width:100%;display:grid;gap:3px;padding:9px 14px;text-align:center;background:var(--surface);border:1px solid var(--brand);border-radius:14px;box-shadow:0 8px 28px #0004;color:var(--brand)}.timer-pill:hover{background:var(--blue-soft);transform:translateY(-1px)}.timer-pill-label{font-size:9px;display:flex;align-items:center;justify-content:center;gap:6px}.phase-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.timer-pill strong{font-size:22px;line-height:1.05;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.focus-widget.break .timer-pill{color:var(--success);border-color:var(--success)}.focus-widget.break .timer-pill:hover{background:var(--success-bg)}.focus-widget.finished .timer-pill{color:var(--secondary);border-color:var(--line)}.active-focus-panel{border-color:var(--brand);margin-bottom:24px}.active-focus-panel.break{border-color:var(--success)}.active-focus-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.active-focus-heading h2{margin:8px 0}.active-focus-clock{font-size:48px;font-variant-numeric:tabular-nums;color:var(--brand)}.break .active-focus-clock{color:var(--success)}.active-focus-controls{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.active-focus-panel .subtask-list{max-width:650px}.active-focus-panel .js-phase-hint{color:var(--secondary)}@media(max-width:760px){.focus-widget{top:68px;right:12px;width:94px}.timer-pill{padding:7px 12px;border-radius:12px}.timer-pill strong{font-size:20px}.active-focus-heading{flex-wrap:wrap}.active-focus-clock{font-size:38px}}
