/* Shared Dream Pastry workspace language, aligned with the advisers app.
   Scoped to the team workspace and its dialogs; booking/login retain their layouts. */
:root {
  --workspace-violet: #7b2d8e;
  --workspace-violet-hover: #5b1a6e;
  --workspace-prune: #3b0f4a;
  --workspace-lavender: #f8f0fb;
  --workspace-border: #e6dceb;
  --workspace-border-strong: #d3c2dc;
  --workspace-text: #1f1a2b;
  --workspace-muted: #5e5670;
  --workspace-warning: #80500b;
  --workspace-warning-bg: #fff5df;
  --workspace-shadow: 0 1px 2px #1f1a2b08, 0 3px 10px #1f1a2b08;
}
#workspace, .workspace-dialog, #mobile-menu {
  --ink: var(--workspace-text);
  --plum: var(--workspace-violet);
  --muted: var(--workspace-muted);
  --line: var(--workspace-border);
  --lilac: var(--workspace-lavender);
  color: var(--ink);
  font-size: 14px;
}
#workspace ::selection { background: var(--workspace-border); color: var(--ink); }
#workspace input, #workspace textarea { caret-color: var(--plum); }
#workspace button, #workspace select, .workspace-dialog button, #mobile-menu button { min-height: 44px; }
#workspace button, .workspace-dialog button { border-radius: 8px; }
#workspace button:focus-visible, #workspace a:focus-visible, #workspace summary:focus-visible,
.workspace-dialog :focus-visible, #mobile-menu :focus-visible {
  outline: 2px solid var(--workspace-violet); outline-offset: 3px;
}
#workspace .primary, .workspace-dialog .primary { background: var(--plum); color: white; }
#workspace .primary:hover, .workspace-dialog .primary:hover { background: var(--workspace-violet-hover); }
#workspace .sidebar {
  width: 240px; padding: 12px; background: var(--lilac); color: var(--ink);
  border-right: 1px solid var(--line); scrollbar-color: var(--workspace-border-strong) transparent;
}
#workspace .sidebar .brand {
  width: 106px; min-height: 48px; padding: 9px 18px; margin: 0 auto 20px;
  background: linear-gradient(110deg, var(--workspace-violet), var(--workspace-prune));
  border-radius: 8px; box-shadow: 0 4px 12px #3b0f4a20;
}
#workspace .sidebar .brand img { filter: none; }
#workspace .side-caption { margin: 10px 10px 14px; color: var(--plum); font-size: 10px; letter-spacing: .12em; }
#workspace .sidebar nav { gap: 4px; }
#workspace .nav, #mobile-menu .nav {
  color: var(--muted); display: flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 400; padding: 8px; white-space: normal; line-height: 1.45;
}
#workspace .nav svg, #mobile-menu .nav svg { flex-shrink: 0; width: 20px; height: 20px; }
#workspace .nav > svg, #mobile-menu .nav > svg {
  box-sizing: content-box; padding: 7px; border: 1px solid var(--line); border-radius: 8px; background: white; color: var(--plum);
}
#workspace .nav.active, #mobile-menu .nav.active { background: #7b2d8e12; color: var(--workspace-prune); font-weight: 600; }
#workspace .nav.active > svg, #mobile-menu .nav.active > svg { background: var(--plum); color: white; border-color: var(--plum); }
#workspace .nav:hover, #mobile-menu .nav:hover { background: #7b2d8e0c; }
#workspace .nav i { display: none; }
#workspace .sidebar .nav span { font-size: inherit; width: auto; }
#workspace .sidebar-bottom { padding: 20px 8px 4px; margin-top: auto; }
#workspace .sidebar-bottom p, #workspace .sidebar-bottom button, #workspace .source-label { color: var(--muted); }
#workspace .sidebar-bottom a { color: var(--plum); margin-bottom: 12px; }
#workspace .sidebar-bottom button { text-align: left; padding: 8px 0; }
#workspace .sidebar-bottom .dot { background: var(--plum); }
#workspace main { margin-left: 240px; padding: 0 32px; max-width: none; min-width: 0; }
#workspace .topbar { height: 70px; font-size: 12px; margin-bottom: 24px; }
.topbar-actions { display: flex; gap: 16px; align-items: center; }
#workspace #refresh { display: flex; align-items: center; gap: 8px; background: white; padding: 8px 12px; font-size: 12px; }
#workspace .private { border: 0; max-width: none; font-size: 12px; }
#workspace .page-heading {
  padding: 22px 26px; gap: 20px; color: white; border-radius: 12px;
  background: var(--workspace-prune);
  background: linear-gradient(110deg, var(--workspace-violet), var(--workspace-prune));
  box-shadow: 0 4px 12px #3b0f4a16;
}
#workspace .page-heading:after { content: none; }
#workspace .page-heading h1 { font-size: 32px; letter-spacing: -.015em; line-height: 1.2; text-wrap: balance; }
#workspace .page-heading p { color: #f5eafa; font-size: 13px; margin: 8px 0 0; max-width: 65ch; }
#workspace .page-heading #new-meeting { margin: 0; padding: 10px 16px; background: white; color: var(--workspace-prune); font-size: 13px; flex-shrink: 0; }
#workspace .page-heading #new-meeting:hover { background: var(--lilac); }
#workspace .syncbar { margin: 12px 0 16px; font-size: 11px; align-items: baseline; }
#workspace .metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 20px; border: 0; padding: 0; }
#workspace .metric-action {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 5px 16px;
  text-align: left; background: white; border: 1px solid var(--line); border-radius: 12px;
  padding: 14px 18px; box-shadow: var(--workspace-shadow);
}
#workspace .metric-action span { text-transform: none; font-size: 13px; letter-spacing: 0; }
#workspace .metric-action strong { grid-column: 2; grid-row: 1 / 3; font: 600 28px/1.2 DM, sans-serif; margin: 0; font-variant-numeric: tabular-nums; color: var(--ink); }
#workspace .metric-action small { color: var(--muted); font-size: 11px; }
#workspace .metric-action:hover { border-color: var(--workspace-border-strong); background: var(--lilac); }
#workspace .metric-action.needs-attention { background: var(--workspace-warning-bg); border-color: #e6d0a9; }
#workspace .metric-action.needs-attention small, #workspace .metric-action.needs-attention strong { color: var(--workspace-warning); }
#workspace .metric-action[aria-pressed=true] { outline: 2px solid var(--plum); outline-offset: 1px; }
#workspace .calendar-toolbar { align-items: center; margin: 0 0 14px; gap: 12px; }
#workspace .date-control h2 { font-size: 15px; min-width: 0; padding: 0 8px; }
#workspace .date-control button { min-width: 44px; font-size: 13px; padding: 8px 10px; background: white; }
#workspace .filters { gap: 12px; }
#workspace .filters select { max-width: 230px; min-height: 44px; font-size: 13px; background: white; padding: 8px 12px; }
#workspace .segmented { padding: 2px; background: white; }
#workspace .segmented button { min-height: 40px; padding: 8px 12px; font-size: 12px; }
#workspace .calendar { min-height: 360px; background: white; box-shadow: var(--workspace-shadow); }
#workspace .day-heading { padding: 10px 4px; font-size: 11px; background: #fdfbfe; }
#workspace .day-heading strong { font: 600 24px/1.5 DM, sans-serif; font-variant-numeric: tabular-nums; }
#workspace .day.today .day-heading { background: var(--lilac); }
#workspace .event { border: 1px solid var(--line); background: var(--lilac); padding: 12px 9px; border-radius: 8px; }
#workspace .event.meeting { background: var(--workspace-warning-bg); border-color: #e6d0a9; }
#workspace .event:hover { transform: none; border-color: var(--plum); }
#workspace .event strong { font-size: 12px; }
#workspace .event time { color: var(--muted); font-size: 11px; }
#workspace .event .staff { font-size: 11px; margin-top: 8px; }
#workspace .unassigned-badge { display: inline-block; color: var(--workspace-warning); background: var(--workspace-warning-bg); padding: 3px 6px; border-radius: 4px; font-size: 11px; font-weight: 600; }
#workspace .event .unassigned-badge { color: var(--workspace-warning); }
#workspace .empty-day { color: var(--muted); font-size: 11px; }
#workspace .calendar-footer { font-size: 11px; }
#workspace #meeting-feedback:empty { display: none; }
#workspace #meeting-feedback:not(:empty) { margin-bottom: 16px; }
#workspace .filter-notice { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--lilac); border-radius: 8px; padding: 8px 14px; margin-bottom: 14px; }
#workspace .filter-notice button { font-size: 12px; }
#workspace #planning-empty { max-width: none; margin: 12px 0; }
#workspace .workspace-panel { border: 1px solid var(--line); border-radius: 10px; background: white; margin: 12px 0 0; padding: 0; max-width: none; }
#workspace .workspace-panel > summary { cursor: pointer; padding: 16px 18px; font-size: 13px; font-weight: 600; min-height: 52px; }
#workspace .workspace-panel > summary span { float: right; color: var(--muted); font-weight: 400; font-size: 12px; }
#workspace .workspace-panel > :not(summary) { margin-left: 18px; margin-right: 18px; }
#workspace .workspace-panel > :last-child { margin-bottom: 18px; }
#workspace .workspace-panel p { margin-top: 12px; font-size: 13px; color: var(--muted); }
#workspace .workspace-panel #schedule-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px 24px; }
#workspace #schedule-summary > h3, #workspace #schedule-summary > p { grid-column: 1/-1; }
#workspace .weekly-person { padding: 12px 0; }
#workspace .schedule-warning { color: var(--workspace-warning); }
#workspace .planning-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
#workspace #calendar-subscription { margin-bottom: 0; }
#workspace .pdf-export { padding-bottom: 4px; }
#workspace .coaching-shortcut { display: flex; align-items: center; gap: 14px; margin-top: 20px; font-size: 13px; color: var(--muted); }
#workspace .coaching-shortcut button { font-size: 12px; }
#workspace .agenda-group { margin: 0 0 12px; border-radius: 12px; box-shadow: var(--workspace-shadow); }
#workspace .agenda-group h3 { font-size: 14px; text-transform: capitalize; }
#workspace .agenda-item { font-size: 13px; }
#workspace .agenda-item span:last-child { font-size: 12px; }
#workspace .skip-link { position: fixed; top: -100px; left: 260px; z-index: 50; padding: 12px 20px; background: white; color: var(--plum); border: 2px solid var(--plum); }
#workspace .skip-link:focus { top: 10px; }
.mobile-navigation { display: none; }
#mobile-menu { max-height: 85svh; overflow: auto; background: var(--cream); }
#mobile-menu-items { display: grid; overflow: visible; margin: 20px 0; }
#mobile-menu .nav span { width: auto; font-size: inherit; }
#mobile-menu .nav i { display: none; }
.workspace-dialog[open] { display: flex; flex-direction: column; }
#event-dialog.workspace-dialog, #meeting-dialog.workspace-dialog {
  max-height: 90svh; width: min(660px,calc(100vw - 32px)); max-width: 660px; overflow: hidden; padding: 0; background: white; border-radius: 12px;
}
.workspace-dialog .dialog-scroll { overflow-y: auto; padding: 24px 28px; min-height: 0; scrollbar-color: var(--workspace-border-strong) transparent; }
.workspace-dialog .close { position: sticky; top: 0; margin: -12px -12px 0 auto; display: block; width: 44px; background: white; z-index: 1; }
.workspace-dialog h2 { margin: 0 0 16px; font-size: 28px; letter-spacing: -.015em; }
.workspace-dialog .eyebrow { font-size: 11px; letter-spacing: 0; margin-bottom: 10px; color: var(--muted); }
.workspace-dialog #detail-body { display: grid; grid-template-columns: 150px 1fr; align-items: baseline; gap: 12px 18px; margin: 24px 0; }
.workspace-dialog #detail-body dt, .workspace-dialog #detail-body dd { margin: 0; font-size: 13px; }
.workspace-dialog #assignment-form { margin: 24px 0 0; }
.workspace-dialog #assignment-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.workspace-dialog .assignment-choice { margin: 0; padding: 10px; border-color: var(--line); border-radius: 8px; }
.workspace-dialog .assignment-choice input { accent-color: var(--plum); }
.workspace-dialog .dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; padding: 16px 24px; border-top: 1px solid var(--line); background: white; flex-shrink: 0; }
.workspace-dialog #assignment-save { width: auto; }
.workspace-dialog #meeting-form { margin-top: 20px; gap: 10px; }
.workspace-dialog #meeting-form input:not([type=checkbox]), .workspace-dialog #meeting-form select, .workspace-dialog #meeting-form textarea {
  width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid var(--workspace-border-strong); border-radius: 8px; font: inherit; color: var(--ink); background: white;
}
.workspace-dialog #meeting-form fieldset { border: 0; padding: 12px 0; }
.workspace-dialog #meeting-cancel { color: #b42318; }
#workspace footer { margin-top: 28px; font-size: 11px; }
@media(max-width:1100px) and (min-width:761px) {
  #workspace .sidebar { width: 220px; }
  #workspace main { margin-left: 220px; padding-inline: 24px; }
  #workspace .metric-action { grid-template-columns: 1fr; padding: 12px; }
  #workspace .metric-action strong { grid-column: 1; grid-row: 2; }
  #workspace .page-heading { align-items: flex-start; }
  #workspace .page-heading #new-meeting { white-space: normal; max-width: 180px; }
}
@media(max-width:760px) {
  #workspace .sidebar { display: none; }
  #workspace main { margin: 0; padding: 0 16px 86px; }
  #workspace .topbar { height: 60px; margin-bottom: 16px; gap: 8px; }
  #workspace .topbar > span { font-size: 11px; }
  #workspace .topbar b { margin: 0 5px; }
  .topbar-actions { gap: 0; }
  #workspace .private, #workspace #refresh span { display: none; }
  #workspace #refresh { padding: 10px; }
  #workspace .page-heading { padding: 18px; flex-wrap: wrap; gap: 16px; }
  #workspace .page-heading h1 { font-size: 28px; }
  #workspace .page-heading p { max-width: none; font-size: 12px; }
  #workspace .page-heading #new-meeting { font-size: 13px; padding: 10px 14px; }
  #workspace .page-heading button:first-letter { font-size: inherit; }
  #workspace .syncbar { font-size: 11px; margin: 10px 0 14px; }
  #workspace .metrics { gap: 6px; margin-bottom: 16px; }
  #workspace .metric-action { padding: 10px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
  #workspace .metric-action span { font-size: 11px; line-height: 1.4; min-height: 31px; }
  #workspace .metric-action strong { font-size: 24px; }
  #workspace .metric-action small { display: none; }
  #workspace .calendar-toolbar { gap: 10px; }
  #workspace .date-control { gap: 4px; flex-wrap: wrap; }
  #workspace .date-control h2 { font-size: 12px; padding: 0; flex: 1; }
  #workspace .date-control #today { font-size: 11px; padding: 8px; }
  #workspace .filters { gap: 8px; }
  #workspace .filters select { min-width: 0; max-width: 58%; font-size: 12px; flex: 1; }
  #workspace .segmented { flex-shrink: 0; }
  #workspace .segmented button { padding: 8px 10px; }
  #workspace .calendar { background: none; box-shadow: none; }
  #workspace .day-heading { font-size: 10px; }
  #workspace .agenda-item { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; }
  #workspace .agenda-item span:last-child { grid-column: 1; }
  #workspace .agenda-item > span:first-child { font-size: 12px; color: var(--muted); }
  #workspace .filter-notice { align-items: flex-start; flex-direction: column; font-size: 12px; }
  #workspace .planning-tools { grid-template-columns: 1fr; gap: 0; }
  #workspace .workspace-panel > summary { padding: 14px; font-size: 12px; }
  #workspace .workspace-panel > summary span { float: none; display: block; margin: 6px 0 0 16px; font-size: 11px; }
  #workspace .coaching-shortcut { flex-wrap: wrap; }
  #workspace .mobile-navigation {
    display: grid; grid-template-columns: repeat(4,1fr); gap: 0; position: fixed; z-index: 30; inset: auto 0 0;
    background: white; border-top: 1px solid var(--line); padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); margin: 0;
  }
  #workspace .mobile-navigation button { display: flex; flex-direction: column; gap: 4px; align-items: center; justify-content: center; background: none; border: 0; min-height: 52px; padding: 6px; font-size: 11px; color: var(--muted); }
  #workspace .mobile-navigation button.active { color: var(--plum); background: var(--lilac); font-weight: 600; }
  #workspace .skip-link { left: 16px; }
  #mobile-menu { padding: 24px 16px; width: calc(100vw - 24px); border-radius: 12px; }
  #mobile-menu h2 { font-size: 24px; padding-right: 30px; }
  #mobile-menu .nav { font-size: 14px; }
  .workspace-dialog .dialog-scroll { padding: 18px; }
  .workspace-dialog h2 { font-size: 24px; }
  .workspace-dialog #detail-body { grid-template-columns: 1fr; gap: 4px; }
  .workspace-dialog #detail-body dt { margin-top: 10px; }
  .workspace-dialog #assignment-options { grid-template-columns: 1fr; }
  .workspace-dialog .dialog-actions { padding: 12px; gap: 8px; }
  .workspace-dialog .dialog-actions button { font-size: 12px; }
  .workspace-dialog .meeting-actions button { width: auto; }
}
@media(prefers-reduced-motion:no-preference) {
  #workspace button { transition: background-color .15s ease-out, border-color .15s ease-out; }
}

#workspace .topbar b { color: var(--muted); }
#workspace .side-caption { font-size: 11px; }

#workspace .workload-alert { display: block; width: 100%; text-align: left; background: var(--workspace-warning-bg); color: var(--workspace-warning); border: 1px solid #e6d0a9; padding: 12px 16px; margin: 0 0 14px; font-size: 13px; }
#workspace #workload-panel { scroll-margin-top: 20px; }
/* Daily work and opt-in notification controls inherit the workspace palette. */
.day-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 0 28px}.day-intro h2{margin:0;text-transform:capitalize}.day-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px}.day-layout h2{font-size:20px}.day-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding:20px 0;border:0;border-bottom:1px solid #e3dce8;border-radius:0;background:transparent;text-align:left;color:#33263e;text-decoration:none}.day-row:hover{background:#f2edf7}.day-row time,.day-row small{color:#6a5a75}.day-row>span:last-child{font-size:13px;color:#694181}.date-jump{display:flex;align-items:center;gap:8px;font-size:12px}.date-jump input{padding:8px;border:1px solid #d8cce2;border-radius:8px;background:#fff;font:inherit}.check-line{display:flex!important;align-items:center;gap:10px;margin:10px 0!important;font-weight:400!important}.check-line input{width:18px!important;height:18px;flex:none;accent-color:#694181}.ped-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:20px 0}.ped-class-summary>button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;border:1px solid #ded3e7;border-radius:12px;background:#fff;text-align:left}.ped-class-summary>button strong{font-size:28px}.ped-class-summary>button[aria-pressed=true]{border-color:#694181;background:#f2edf7}.ped-class-summary>button:hover{background:#f2edf7}.coach-card>button{margin-top:14px}#bulk-open{margin:0 0 16px}#notifications-status{padding:12px 0;line-height:1.6}#notifications-dialog .ped-actions{flex-wrap:wrap}#notifications-dialog .ped-actions button{white-space:normal}#ped-settings{margin-bottom:20px}#day-status:empty{display:none}#availability-weekdays{display:grid;grid-template-columns:1fr 1fr}.topbar-actions{flex-wrap:wrap}
@media(max-width:760px){.day-layout{grid-template-columns:1fr;gap:24px}.day-intro{align-items:flex-start;flex-direction:column;gap:12px}.date-jump{width:100%;justify-content:flex-start}.ped-pagination{gap:10px;flex-wrap:wrap}.ped-pagination button{font-size:12px}.ped-table-wrap{overflow:visible}.ped-table{min-width:0!important}.ped-table thead{display:none}.ped-table tbody,.ped-table tr,.ped-table th,.ped-table td{display:block;width:100%}.ped-table tr{padding:16px 0;border-bottom:1px solid #d8cce2}.ped-table th,.ped-table td{border:0;padding:8px 0!important}.ped-table td:nth-child(2):before{content:'Progression : ';font-weight:600}.ped-table td:nth-child(3):before{content:'Dernier coaching : ';font-weight:600}.ped-table td:nth-child(4):before{content:'Dernière évaluation : ';font-weight:600}.ped-table td:nth-child(5):before{content:'Prochaine action';display:block;font-weight:600;margin-bottom:6px}.ped-table td:last-child button{width:100%}.topbar-actions #notifications-open span{display:none}.day-row{padding:18px 0}.ped-class-summary>button{padding:12px}}
@media(max-width:760px){.topbar>span{min-width:0;flex:1}.topbar-actions{flex:none;flex-wrap:nowrap}.topbar-actions>button{flex:none}.topbar{align-items:center}.day-row small{font-size:13px}}
.event.pro{background:#f3eafa;border-color:#b28cc8}.legend.pro{background:#b28cc8}

/* Même taille pour chaque carte du calendrier, même avec des titres longs. */
#workspace #calendar .day { min-width: 0; }
#workspace #calendar .event { box-sizing: border-box; width: 100%; min-width: 0; min-height: var(--event-height, 0px); overflow-wrap: anywhere; }
@media (min-width: 761px) { #workspace #calendar { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
@media (max-width: 760px) { #workspace #calendar .day-events { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; } #workspace #calendar .event { margin-bottom: 0; } }

#student-contacts{margin:24px 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#student-contacts[hidden]{display:none}#student-contacts h3{font-size:20px;margin:0 0 8px}#student-contacts>p{font-size:13px;line-height:1.6;margin:8px 0 14px}#student-contact-list{list-style:none;margin:0;padding:0}#student-contact-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--line);font-size:13px}#student-contact-list li>div{min-width:0;overflow-wrap:anywhere}#student-contact-list small{display:block;color:var(--muted);line-height:1.6;margin-top:4px}#student-contact-list a{font-size:12px;flex-shrink:0;min-height:44px;display:inline-flex;align-items:center}#student-contact-status:empty{display:none}@media(max-width:600px){#student-contact-list li{align-items:flex-start;flex-direction:column;gap:10px}#student-contact-list a{max-width:100%;overflow-wrap:anywhere}}
