:root{color-scheme:light;--bg:#f5f6f8;--surface:#fff;--ink:#1c2932;--muted:#77818b;--line:#e6e9ed;--accent:#247865;--accent-soft:#e9f3ef;--weekend:#f8f9fb;--shadow:0 3px 16px #172c3e04}*{box-sizing:border-box}html[data-theme=dark]{color-scheme:dark;--bg:#121a20;--surface:#19232b;--ink:#e7edf0;--muted:#9aa8b2;--line:#2b3943;--accent:#8ccbb3;--accent-soft:#243f36;--weekend:#162028;--shadow:none}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.55}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;border:1px solid transparent;border-radius:8px;background:var(--accent);color:var(--surface);padding:11px 17px;font-weight:600;cursor:pointer;white-space:nowrap;transition:filter .15s}button:hover,.button:hover{filter:brightness(.94)}button:focus-visible,a:focus-visible,summary:focus-visible,.shift:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.secondary,.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}button.ghost{color:var(--muted);background:transparent;border-color:transparent;padding:8px}label{display:block;font-weight:550;margin-top:20px}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);padding:12px 13px;margin-top:8px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input:disabled{background:var(--bg);color:var(--muted)}form>button{margin-top:24px}textarea{resize:vertical}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1.2px;font-weight:600;line-height:1.3}h2{font-size:18px;letter-spacing:-.35px;font-weight:600}h3{font-size:14px;font-weight:600}p{margin-top:8px}small{font-size:12px;color:var(--muted)}form>small{display:block;margin-top:10px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:650;color:var(--muted)}.brand{display:flex;align-items:center;gap:9px;font-size:27px;font-weight:650;letter-spacing:-1px}.brand-dot{font-weight:300;color:var(--accent);margin-left:-5px}.logo{background:var(--accent);color:var(--surface);border-radius:10px;width:37px;height:37px;text-align:center;line-height:34px;font-size:28px}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:#193c33;color:#f1f5f1;padding:50px 64px;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:relative;overflow:hidden}.auth-story:after{content:'';width:440px;height:440px;border:1px solid #ffffff10;border-radius:50%;position:absolute;bottom:-275px;right:-150px;box-shadow:0 0 0 65px #ffffff04,0 0 0 130px #ffffff03;pointer-events:none}.auth-story .logo{background:#b8d4bd;color:#193c33}.auth-story .brand-dot{color:#b8d4bd}.auth-story .eyebrow{color:#9dbbad}.auth-story h1{font-size:clamp(40px,4.2vw,64px);font-weight:450;line-height:1.15;letter-spacing:-2.5px;margin:22px 0}.auth-story h1 em{font-style:normal;color:#b8d4bd}.auth-story p{color:#bfd0c8;font-size:16px;line-height:1.8}.story-footer{font-size:12px;color:#96b2a5}.auth-form{background:var(--surface);position:relative;display:flex;align-items:center;justify-content:center;padding:70px 40px}.auth-form>.theme{position:absolute;right:30px;top:25px}.auth-inner{width:100%;max-width:375px}.auth-inner h2{font-size:27px;line-height:1.3;letter-spacing:-.8px;margin-top:14px}.auth-inner form>button{width:100%;justify-content:space-between}.auth-note{font-size:11px;text-align:center;color:var(--muted);margin-top:35px}.auth-form footer{position:absolute;bottom:25px;color:var(--muted);font-size:10px;letter-spacing:1.5px}details{margin-top:22px;font-size:12px;color:var(--muted)}summary{cursor:pointer}.notice{padding:14px 18px;border-radius:8px;background:var(--accent-soft);border:1px solid var(--accent);margin:18px 0;color:var(--ink)}.notice.error{border-color:#b66868;background:#b6686812}.sidebar{position:fixed;left:0;top:0;bottom:0;width:246px;background:var(--surface);border-right:1px solid var(--line);padding:32px 23px;display:flex;flex-direction:column}.workspace{margin:40px 0 27px;padding:0 12px;display:flex;flex-direction:column;gap:5px}.workspace strong{font-size:14px}.workspace .muted{font-size:12px}nav{display:flex;flex-direction:column;gap:7px}nav>a{padding:12px;border-radius:8px;color:var(--muted);display:flex;align-items:center;gap:12px;font-size:13px;font-weight:550}nav>a>span{font-size:19px;width:22px}nav>a.selected{color:var(--accent);background:var(--accent-soft)}nav>a:hover{background:var(--bg)}.sidebar-bottom{margin-top:auto}.identity{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:22px;margin-top:18px}.identity strong,.identity small{display:block;font-size:12px}.avatar{display:inline-flex;width:36px;height:36px;border-radius:50%;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-weight:650;flex-shrink:0}.avatar.small{width:27px;height:27px;font-size:11px;margin-right:9px}.logout{font-size:11px}.main{margin-left:246px}.topbar{height:76px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px}.topbar .muted{margin-left:0}.private{font-size:11px;color:var(--accent)}.content{max-width:1600px;margin:auto;padding:38px 40px 0}.page-heading{margin-bottom:30px}.page-heading h1{margin-top:10px}.page-heading p{font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.stats article{padding:22px 25px;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);display:flex;flex-direction:column}.stats article>.muted{font-size:12px}.stats strong{font-size:37px;font-weight:550;letter-spacing:-1px;margin:9px 0 4px;line-height:1.3}.stats strong small{font-size:12px;letter-spacing:0;margin-left:10px;font-weight:400}.stats strong.smaller{font-size:30px;margin-top:15px}.stats article>span:last-child{color:var(--muted);font-size:11px}.card{background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow);margin-bottom:22px}.card-heading{padding:24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.card-heading p{font-size:11px;margin-top:4px}.month-nav{display:flex;align-items:center;gap:12px}.month-nav>a{padding:6px 10px;border:1px solid var(--line);border-radius:6px}.month-nav form{display:flex;gap:5px;align-items:center}.month-nav input{width:145px;margin:0;font-size:12px;padding:7px;border:none}.month-nav button{font-size:11px}.table-scroll{overflow:auto;min-height:150px}.planning{width:100%;border-collapse:separate;border-spacing:0;text-align:center;font-size:11px}.planning th,.planning td{height:59px;min-width:33px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:5px 2px}.planning thead th{height:60px;font-size:12px;font-weight:550}.planning thead small{display:block;font-size:10px;line-height:1.8;font-weight:400}.planning .person{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;min-width:185px;max-width:220px;padding:12px 18px;white-space:nowrap;font-size:12px;font-weight:500;box-shadow:2px 0 5px #00000003}.person>small{margin-left:5px;font-size:9px;color:var(--accent)}.planning th:last-child,.planning td:last-child{border-right:none;min-width:48px}.planning .weekend{background:var(--weekend)}.planning .today{color:var(--accent);background:var(--accent-soft)}.empty{color:var(--line);font-size:19px}.shift{display:inline-flex;align-items:center;justify-content:center;width:23px;height:29px;background:#e8edf5;border-radius:5px;color:#7b94b2;cursor:help;position:relative}.shift.mine{background:var(--accent-soft);color:var(--accent)}html[data-theme=dark] .shift:not(.mine){background:#293b4e;color:#92b0d0}.shift-dot{font-size:9px}.tooltip{display:none;position:absolute;top:28px;left:50%;transform:translateX(-50%);padding:8px 12px;background:var(--ink);color:var(--surface);border-radius:6px;white-space:nowrap;z-index:5;font-size:11px}.shift:hover .tooltip,.shift:focus .tooltip{display:block}.legend{display:flex;gap:22px;font-size:10px;color:var(--muted);padding:19px 24px;border-top:1px solid var(--line);flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:7px}.legend i{display:inline-block;width:8px;height:8px;border-radius:3px;background:#7b94b2}.legend i.mine-dot{background:var(--accent)}.legend span:last-child{margin-left:auto}.empty-state{padding:25px 0;text-align:center;color:var(--muted);font-size:12px}.callout{padding:22px 25px;border:1px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.callout p{font-size:12px}.callout .button{font-size:12px}.padded{padding:25px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.two-col>.card{margin-bottom:0}.admin-forms{margin-bottom:22px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px}.actions form>button{margin-top:0}.actions button,.actions .button{font-size:12px}.request{padding:20px 0;border-bottom:1px solid var(--line)}.request:last-child{border-bottom:0}.request h3{margin-top:9px}.request p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.status,.badge{font-size:10px;border-radius:5px;padding:4px 7px;background:var(--accent-soft);color:var(--accent);font-weight:550}.status.pending{background:#c59a2420;color:#ae861e}.status.rejected{background:#b6686815;color:#b66868}nav .badge{margin-left:auto}.review{display:flex;align-items:center;justify-content:space-between;gap:20px}.review .actions{margin-top:0}.profile{max-width:560px}.divider{height:1px;background:var(--line);margin:30px 0}.member-list>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}.member-list small{margin-left:10px}.member-list form>button{margin-top:0;font-size:12px}.page-footer{padding:35px 0 24px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}@media(min-width:1600px){.planning th,.planning td{min-width:38px}}@media(max-width:1100px){.sidebar{width:210px;padding:28px 16px}.main{margin-left:210px}.content{padding:30px 24px 0}.topbar{padding:0 24px}.stats article{padding:18px}.stats strong small{display:block;margin:0}.auth-story{padding:40px}.review{align-items:start;flex-direction:column}.legend span:last-child{margin-left:0}}@media(max-width:760px){.auth{display:block}.auth-story{min-height:auto;padding:25px}.auth-story>div{padding:38px 0}.auth-story h1{font-size:38px}.story-footer{display:none}.auth-form{min-height:580px;padding:65px 25px}.sidebar{position:relative;width:100%;padding:18px 20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:23px}.sidebar .logo{height:31px;width:31px;line-height:29px;font-size:24px}.workspace,.identity,.logout{display:none}nav{margin-top:18px;flex-direction:row;overflow:auto;gap:4px}nav>a{padding:8px;font-size:11px;white-space:nowrap}nav>a>span{display:none}.sidebar-bottom{position:absolute;right:14px;top:16px}.sidebar-bottom>.theme{font-size:11px}.main{margin:0}.topbar{height:52px;padding:0 20px}.topbar .private{display:none}.content{padding:26px 18px 0}h1{font-size:25px}.stats{gap:8px}.stats article{padding:14px 11px}.stats article>.muted{font-size:10px}.stats strong{font-size:27px}.stats strong.smaller{font-size:23px}.stats strong small{font-size:10px}.stats article>span:last-child{font-size:9px}.card-heading{align-items:start;flex-direction:column;padding:18px}.two-col{grid-template-columns:1fr}.two-col>.card{margin-bottom:0}.padded{padding:20px}.callout{align-items:start;flex-direction:column}.legend{padding:15px;gap:12px}.page-footer{gap:20px}.page-footer span{white-space:nowrap}}

/* Interface compacte et calendrier personnel. */
.main,.content,.card,.two-col>*,.fields>*,.auth-form{min-width:0}
.sidebar{overflow-y:auto}.brand{flex-shrink:0}.workspace{margin:28px 0 20px}
.topbar{height:58px}.content{padding-top:28px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.page-heading h1{margin:0;font-size:27px}.page-heading .button{font-size:12px}
.auth-story{justify-content:flex-start;gap:clamp(80px,20vh,220px)}.auth-story h1{font-size:clamp(36px,4vw,56px)}.auth-inner h2{margin-top:0}.auth-note{margin-top:24px}
.personal-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:0 24px 16px}.weekday{text-align:center;color:var(--muted);font-size:11px;padding:8px 0}.calendar-day{min-height:88px;display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--weekend)}.calendar-day strong{font-size:17px;font-weight:550}.calendar-day small{font-size:11px}.calendar-day.is-work{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.calendar-day.is-work small{color:var(--accent)}.calendar-day.is-off{background:#b6686812;border-color:#b6686860;color:#b66868}.calendar-day.is-off small{color:#b66868}.calendar-day.is-waiting{background:#c59a2412;border-color:#c59a24;color:#9e7814}.calendar-day.is-waiting small{color:#9e7814}.calendar-day.is-today strong{text-decoration:underline;text-underline-offset:4px}.calendar-note{font-size:11px;color:var(--muted);padding:0 24px 15px;margin:0}.my-services{padding:16px 24px;margin:0;border-top:1px solid var(--line);font-size:13px}.my-services summary{min-height:30px;color:var(--ink);font-weight:550}.agenda-row{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--line);font-size:12px}.agenda-row>span:last-child{margin-left:auto;white-space:nowrap}.agenda-row>span{overflow-wrap:anywhere}.collective-agenda{display:none}.off-marker{display:inline-flex;align-items:center;justify-content:center;width:23px;height:29px;border-radius:5px;background:#b6686815;color:#b66868;font-size:18px}.legend .off-dot{background:#b66868}.legend span:last-child{margin-left:0}
@media(max-width:900px){.two-col{grid-template-columns:minmax(0,1fr)}.two-col>.card{margin-bottom:0}.two-col{margin-bottom:22px}.page-heading h1{font-size:25px}}
@media(max-width:760px){
 body{font-size:14px}.auth{min-height:100svh;background:var(--surface)}.auth-story{padding:20px 24px;min-height:0;gap:0;background:var(--surface);color:var(--ink)}.auth-story>div,.auth-story:after{display:none}.auth-story .logo{background:var(--accent);color:var(--surface)}.auth-story .brand-dot{color:var(--accent)}.auth-form{min-height:0;padding:32px 24px 40px;align-items:flex-start}.auth-form>.theme{top:-57px;right:16px}.auth-inner{max-width:440px}.auth-inner h2{font-size:25px}
 input,select,textarea{font-size:16px;min-width:0;max-width:100%;min-height:46px}button,.button,button.ghost{min-height:44px}button,.button{white-space:normal;text-align:center}summary{min-height:44px;align-content:center}
 .sidebar{padding:16px 16px 12px;overflow:visible}.sidebar-bottom{top:10px;right:10px;display:flex;align-items:center;gap:4px}.sidebar-bottom>.theme span{display:none}.sidebar-bottom>.theme{width:44px;font-size:20px}.sidebar-bottom .logout{display:inline-flex;font-size:10px;margin:0;padding:7px}.sidebar-bottom .identity{display:none}.sidebar-bottom form{margin:0}
 nav{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;margin-top:16px;overflow:visible}nav>a{justify-content:center;padding:8px 2px;min-height:44px;font-size:11px;gap:3px;white-space:normal;text-align:center}nav .badge{margin:0;font-size:9px;padding:1px 4px}
 .topbar{display:none}.content{padding:23px 14px 0}.page-heading{gap:10px;margin-bottom:18px;flex-wrap:wrap}.page-heading h1{font-size:23px}.page-heading .button{font-size:11px;padding:9px 12px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.stats article{padding:15px}.stats article:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px}.stats article:last-child>strong{grid-column:2;grid-row:1/3;margin:0;font-size:26px}.stats article:last-child>span:last-child{grid-column:1;grid-row:2}.stats article>.muted{font-size:12px}.stats strong small{display:inline;margin-left:7px;font-size:11px}.stats article>span:last-child{font-size:11px}
 .card-heading{padding:18px 16px;gap:12px}.card-heading h2{font-size:18px}.month-nav{width:100%;gap:8px}.month-nav>a{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.month-nav form{flex:1;min-width:0;justify-content:center}.month-nav input{width:100%;min-width:0;max-width:180px;font-size:16px;min-height:44px;padding:6px}.month-nav button{min-width:40px;padding:5px}
 .personal-calendar{padding:0 12px 14px;gap:4px}.weekday{font-size:10px}.calendar-day{min-height:70px;padding:7px 3px;text-align:center;gap:4px;border-radius:6px}.calendar-day strong{font-size:15px}.calendar-day small{font-size:9px;line-height:1.25;overflow-wrap:anywhere}.calendar-note{padding:0 16px 14px}.my-services{padding:12px 16px}
 .table-scroll{display:none}.collective-agenda{display:block;padding:0 16px 12px}.agenda-member{margin:0;border-top:1px solid var(--line);padding:8px 0;color:var(--ink)}.agenda-member summary{font-size:13px;font-weight:550;overflow-wrap:anywhere}.agenda-member summary small{display:block;font-size:10px;margin-left:16px;font-weight:400}.agenda-row{gap:10px}.agenda-row.is-off{color:#b66868}.agenda-row.is-work{color:var(--accent)}
 .padded{padding:18px 16px}.fields{gap:10px}.actions{gap:8px}.actions>button,.actions>.button,.actions>form{flex:1;min-width:0}.actions>form>button{width:100%}.review{align-items:stretch}.review .actions{margin-top:10px}.request p{font-size:13px}.member-list>div{gap:12px}.member-list>div>span{min-width:0;overflow-wrap:anywhere}.member-list small{display:block;margin:0}.page-footer{padding:24px 2px;font-size:10px}
}
@media(max-width:360px){.fields{grid-template-columns:minmax(0,1fr)}.page-heading{align-items:stretch}.page-heading .button{width:100%}.calendar-day small{font-size:8px}.sidebar .brand{font-size:21px}.sidebar-bottom .logout{font-size:9px}}
@media(max-width:760px){.padded form>button{width:100%}}
.calendar-edit{display:flex;align-items:center;justify-content:center;min-width:30px;min-height:44px;border-radius:6px;color:var(--muted);font-size:17px}.calendar-edit:hover{background:var(--accent-soft);color:var(--accent)}.calendar-edit.is-work{color:var(--accent);background:var(--accent-soft)}.calendar-edit.is-off{color:#b66868;background:#b6686815}.notification-status{margin:0 0 18px;color:var(--muted);font-size:12px}
#shoot-dialog{width:min(480px,calc(100% - 28px));max-height:calc(100svh - 40px);padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);overflow:auto}#shoot-dialog::backdrop{background:#07130fb3}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-heading form>button{margin:0;font-size:24px;min-width:44px}.dialog-person{color:var(--muted);font-size:13px}.dialog-warning[hidden]{display:none}button:disabled{opacity:.45;cursor:not-allowed}.dialog-body .actions button{flex:1}
@media(max-width:760px){.table-scroll.admin-calendar{display:block;min-height:0}.admin-agenda{display:none}.admin-calendar .person{min-width:125px;max-width:145px;padding:8px;white-space:normal;overflow-wrap:anywhere}.admin-calendar .avatar{display:none}.admin-calendar td,.admin-calendar th{min-width:44px}.calendar-edit{min-width:40px}#shoot-dialog{padding:18px}.dialog-body .actions{display:flex}.dialog-body input,.dialog-body select{font-size:16px}.notification-status{font-size:11px}}
/* Aujourd’hui et dimanches : repères indépendants des indisponibilités. */
.calendar-day.is-sunday:not(.is-work):not(.is-off):not(.is-waiting){background:var(--line);color:var(--muted)}
.calendar-day.is-sunday:not(.is-work):not(.is-off):not(.is-waiting)>small{font-size:20px;line-height:1}
.planning td.sunday{background:var(--line)}
.planning td.sunday .empty{color:var(--muted)}
.calendar-day.is-today{outline:3px solid #000;outline-offset:-3px}
.calendar-day.is-today strong{text-decoration:none}
.planning th.today{box-shadow:inset 0 0 0 3px #000}
html[data-theme=dark] .calendar-day.is-today,html[data-theme=dark] .planning th.today{border-color:#a8b2ba}

/* Cadre réel et numéro contrasté : visible aussi sur fond sombre. */
.calendar-day.is-today{border:3px solid #000;outline:none;padding:8px;box-shadow:0 0 0 1px #fff}
.calendar-day.is-today strong{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:30px;background:#fff;color:#000;border:2px solid #000;border-radius:5px}
.planning th.today .day-number{display:inline-flex;align-items:center;justify-content:center;min-width:27px;min-height:29px;border:2px solid #000;border-radius:5px;background:#fff;color:#000;font-weight:700}
.planning td.today-cell{box-shadow:inset 2px 0 #000,inset -2px 0 #000}
html[data-theme=dark] .calendar-day.is-today{border-color:#000;box-shadow:0 0 0 1px #b7c1c8}
@media(max-width:760px){.calendar-day.is-today{padding:5px 1px}.calendar-day.is-today strong{align-self:center;min-width:25px;min-height:25px}}
/* Plusieurs prestations : chaque partie porte son propre code couleur. */
.day-parts{display:flex;flex-direction:column;flex:1;gap:2px;min-width:0;width:100%}.day-part{display:flex;align-items:center;justify-content:center;flex:1;padding:5px 2px;border-radius:4px;font-size:10px;text-align:center;overflow-wrap:anywhere;line-height:1.25}
.matinale,.day-part.matinale{background:#e0f0e9;color:#226b54}.podcast,.day-part.podcast{background:#eee5fa;color:#7341a3}
.calendar-day.is-work:not(.is-today){background:var(--surface);border-color:var(--line)}.calendar-day.is-work.is-today{background:var(--surface)}
.cell-parts{display:flex;flex-direction:column;gap:2px;align-items:stretch;min-height:44px}.cell-parts>.shift,.cell-parts>.calendar-edit{width:100%;min-width:0;flex:1;min-height:26px}.cell-parts>.add-presta{min-height:20px;font-size:13px;background:transparent}.calendar-edit.matinale:hover{background:#cae9dc}.calendar-edit.podcast:hover{background:#dfcef1}.legend .podcast-dot{background:#9461c4}
html[data-theme=dark] .matinale,html[data-theme=dark] .day-part.matinale,html[data-theme=dark] .shift.matinale{background:#244a3e;color:#a4ddc4}
html[data-theme=dark] .podcast,html[data-theme=dark] .day-part.podcast,html[data-theme=dark] .shift.podcast{background:#48325f;color:#dcc1f6}
html[data-theme=dark] .planning td.sunday,html[data-theme=dark] .planning th.weekend{background:#3c4655;color:#d2d8e0}
html[data-theme=dark] .planning td.sunday .add-presta{color:#d2d8e0}
@media(max-width:760px){.day-part{font-size:9px;padding:4px 1px}.admin-calendar .cell-parts>.calendar-edit{min-height:44px}.admin-calendar .cell-parts>.add-presta{min-height:28px}}

/* Palette commune : priorité sur les anciens styles de services et de survol. */
:root{--matinale-bg:#e0f0e9;--matinale-ink:#226b54;--podcast-bg:#eee5fa;--podcast-ink:#7341a3}
html[data-theme=dark]{--matinale-bg:#244a3e;--matinale-ink:#a4ddc4;--podcast-bg:#48325f;--podcast-ink:#dcc1f6}
html .day-part.matinale,html .shift.matinale,html .calendar-edit.matinale,html .agenda-row.matinale,
html[data-theme=dark] .day-part.matinale,html[data-theme=dark] .shift.matinale,html[data-theme=dark] .calendar-edit.matinale,html[data-theme=dark] .agenda-row.matinale{background:var(--matinale-bg);color:var(--matinale-ink)}
html .day-part.podcast,html .shift.podcast,html .calendar-edit.podcast,html .agenda-row.podcast,
html[data-theme=dark] .day-part.podcast,html[data-theme=dark] .shift.podcast,html[data-theme=dark] .calendar-edit.podcast,html[data-theme=dark] .agenda-row.podcast{background:var(--podcast-bg);color:var(--podcast-ink)}
html .calendar-edit.matinale:hover,html[data-theme=dark] .calendar-edit.matinale:hover{background:var(--matinale-bg);color:var(--matinale-ink);box-shadow:inset 0 0 0 1px var(--matinale-ink)}
html .calendar-edit.podcast:hover,html[data-theme=dark] .calendar-edit.podcast:hover{background:var(--podcast-bg);color:var(--podcast-ink);box-shadow:inset 0 0 0 1px var(--podcast-ink)}
.legend i.mine-dot{background:var(--matinale-bg);border:1px solid var(--matinale-ink);width:11px;height:11px}
.legend i.podcast-dot{background:var(--podcast-bg);border:1px solid var(--podcast-ink);width:11px;height:11px}
.emission-breakdown{display:flex;flex-direction:column;gap:5px;margin-top:8px;font-size:12px;color:var(--muted)}.emission-breakdown>span{display:flex;justify-content:space-between;gap:12px}.emission-breakdown b{font-weight:600;color:var(--ink)}

/* Une seule émission remplit toute la case personnelle. */
.personal-calendar .calendar-day.single-matinale{background:var(--matinale-bg);color:var(--matinale-ink)}
.personal-calendar .calendar-day.single-podcast{background:var(--podcast-bg);color:var(--podcast-ink)}
.personal-calendar .calendar-day.single-matinale .day-part,
.personal-calendar .calendar-day.single-podcast .day-part{background:transparent;border-radius:0;color:inherit}
/* Libellés centrés et plus lisibles dans les cases personnelles. */
.personal-calendar .calendar-day{min-height:110px;text-align:center;align-items:center}
.personal-calendar .calendar-day strong{align-self:center}
.personal-calendar .day-part{font-size:14px;font-weight:600;line-height:1.3;justify-content:center;align-items:center;padding:8px 3px}
.personal-calendar .calendar-day>small{font-size:12px}
/* Collectif : un repère fin sur le numéro, sans cadre noir sur la colonne. */
.planning th.today{box-shadow:none}
.planning th.today .day-number{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);border-radius:6px}
.planning td.today-cell{box-shadow:none}
@media(max-width:760px){.personal-calendar .calendar-day{min-height:96px}.personal-calendar .day-part{font-size:11px;padding:6px 1px}.personal-calendar .calendar-day>small{font-size:10px}}
@media(max-width:360px){.personal-calendar .day-part{font-size:10px}}
/* Le mois entier tient sur les écrans de bureau, sans élargir la page. */
@media(min-width:1024px){
 .view-planning .sidebar,.view-admin .sidebar{width:190px;padding:26px 12px}
 .view-planning .main,.view-admin .main{margin-left:190px}
 .view-planning .content,.view-admin .content{max-width:none;padding-left:20px;padding-right:20px}
 .planning{table-layout:fixed;width:100%}
 .planning col.person-column{width:130px}.planning col.total-column{width:38px}
 .planning th,.planning td,.planning th:last-child,.planning td:last-child{min-width:0;padding:5px 1px}
 .planning .person{min-width:0;max-width:none;white-space:normal;overflow-wrap:anywhere;padding:10px 8px;font-size:11px}
 .planning .person .avatar{display:none}
 .planning th.today .day-number{min-width:0;width:100%;max-width:27px}
 .planning .off-marker{width:100%;max-width:23px}
 .planning .calendar-edit{min-width:0}
 .planning .cell-parts{min-width:0}
 .planning thead th{font-size:11px}
}
@media(min-width:1024px) and (max-width:1279px){
 .view-planning .sidebar,.view-admin .sidebar{width:160px;padding-left:8px;padding-right:8px}
 .view-planning .main,.view-admin .main{margin-left:160px}
 .view-planning nav>a,.view-admin nav>a{gap:8px;font-size:12px;padding:10px 8px}
 .view-planning .content,.view-admin .content{padding-left:16px;padding-right:16px}
 .planning col.person-column{width:110px}.planning col.total-column{width:34px}
 .planning thead th,.planning .person{font-size:10px}
}
/* L’indisponibilité occupe toute la case, comme le dimanche, en rouge. */
.planning td.unavailable-day{position:relative;background:#f5e4e4;color:#b34d4d}
.planning td.unavailable-day .cell-parts{position:absolute;inset:0;min-height:0;gap:0}
.planning td.unavailable-day .off-marker,.planning td.unavailable-day .calendar-edit.is-off{display:flex;width:100%;max-width:none;height:100%;min-height:0;align-items:center;justify-content:center;border-radius:0;background:transparent;color:inherit;font-size:28px}
html[data-theme=dark] .planning td.unavailable-day{background:#4b3038;color:#eea0a5}
.personal-calendar .calendar-day.is-off>small{font-size:30px;flex:1;display:flex;align-items:center;justify-content:center;width:100%;color:#b66868}

.todo-space-link{display:block;padding:10px 8px;color:var(--accent);font-size:12px;margin-bottom:8px}.mobile-todo-link{display:none}@media(max-width:760px){.todo-space-link{display:none}.mobile-todo-link{display:block;align-self:flex-end;color:var(--accent);font-size:11px;padding:7px 6px;margin-top:4px}}
