/* MG_V2_READABILITY_CONTRAST_004_LAST_MILE
   Chargé après v2-shell.css afin de rester la dernière couche de cascade. */
#play-page .practice-hero>div:nth-child(2)>small,
#play-page .practice-hero>aside>span,
#play-page .session-chart span,
#play-page .work-rows span,
#play-page .work-rows em,
.solo-workshop-heading small,
.solo-workshop-feature header small{font-size:11.5px!important}
.solo-workshop-footer button{font-size:11.5px!important}

body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) #play-page .player-tools button{background:#fffaf4!important;color:#1d191b!important;border-color:rgba(45,36,41,.22)!important}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) #play-page .player-tools button{background:#202531!important;color:#f7f2ef!important;border-color:rgba(255,255,255,.18)!important}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) #play-page .screen-tabs button.active{background:rgba(255,251,246,.94)!important;color:#a80d32!important}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) #play-page .screen-tabs button.active{background:rgba(18,20,28,.94)!important;color:#ff8da0!important}

@media(min-width:761px){
  #app-view[data-v2-shell-ready="1"] #open-my-profile{width:auto!important;min-width:106px!important;padding:0 12px!important}
}

@media(max-width:760px){
  #app-view[data-v2-shell-ready="1"] #v2-universe-bar-wrap{display:none!important}
  #play-page .screen-header{grid-template-columns:1fr!important}
  #play-page .screen-header>button{grid-column:1;width:100%!important;min-width:0!important;font-size:11px!important}
  #play-page .screen-header>button::after{content:none!important}
  #play-page .screen-grid,#play-page .screen-side{grid-template-columns:1fr!important}
  .solo-workshop-status button,.solo-workshop-mobile-tabs button{font-size:11.5px!important}
}

body[data-appearance="solar"][data-solar-tone="light"] #play-page :is(.metric-card,.ai-card,.private-card){background:#fffaf4!important;color:#1d191b!important}
body[data-appearance="solar"][data-solar-tone="light"] #play-page :is(.metric-card small,.metric-card p,.ai-card h3,.ai-card p,.ai-card button,.private-card p){color:#554e53!important}
body[data-appearance="solar"][data-solar-tone="dark"] #play-page :is(.metric-card,.ai-card,.private-card){background:#171a23!important;color:#f7f2ef!important}
body[data-appearance="solar"][data-solar-tone="dark"] #play-page :is(.metric-card small,.metric-card p,.ai-card h3,.ai-card p,.ai-card button,.private-card p){color:#c8c0c4!important}
body[data-appearance="solar"][data-solar-tone="light"] .solo-workshop-header{background:#f5efeb!important;color:#201b1e!important}
body[data-appearance="solar"][data-solar-tone="light"] .solo-workshop-heading :is(h2,p){color:#201b1e!important}
body[data-appearance="solar"][data-solar-tone="dark"] .solo-workshop-header{background:#181d27!important;color:#f7f2ef!important}
body[data-appearance="solar"][data-solar-tone="dark"] .solo-workshop-heading :is(h2,p){color:#f7f2ef!important}

/* MG_V2_VIDEO_RESOURCE_GROUPS_009 */
.solo-resource-group{position:relative;display:flex;align-items:center;gap:6px;flex:none}
.solo-resource-group>button small{margin-left:2px;padding:3px 6px;border-radius:999px;background:var(--color-accent-soft);color:var(--workshop-text);font-size:10px;line-height:1;white-space:nowrap}
.solo-resource-sources{position:relative}
.solo-resource-sources>summary{display:grid;place-items:center;min-width:34px;min-height:34px;border:1px solid var(--line);border-radius:9px;background:var(--workshop-panel);color:var(--workshop-text);cursor:pointer;font-size:0;list-style:none}
.solo-resource-sources>summary::-webkit-details-marker{display:none}
.solo-resource-sources>summary::after{content:"⋯";font-size:18px;line-height:1}
.solo-resource-sources[open]>summary{border-color:var(--brand);color:var(--brand)}
.solo-resource-sources ul{position:fixed;z-index:30;display:grid;gap:7px;width:min(440px,calc(100vw - 24px));max-height:min(420px,60vh);margin:6px 0 0;padding:10px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--workshop-panel-alt);box-shadow:0 18px 48px rgba(0,0,0,.32);list-style:none}
.solo-resource-sources li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 10px;border-radius:9px;background:var(--workshop-panel)}
.solo-resource-sources li div{display:grid;gap:3px;min-width:0}
.solo-resource-sources li strong{overflow:hidden;color:var(--workshop-text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.solo-resource-sources li small{color:var(--muted);font-size:10px}
.solo-resource-sources li a{flex:none;color:var(--brand);font-size:11px;font-weight:var(--weight-medium)}
@media(max-width:760px){.solo-resource-group>button small{font-size:9px}.solo-resource-sources ul{left:12px;right:12px;width:auto}}

/* MG_WEB_RC002_VISUAL_HARMONIZATION
   Derniere couche commune aux fenetres et aux cartes Media. */
.event-dialog{
  width:min(760px,calc(100vw - 24px))!important;
  max-width:760px!important;
  max-height:calc(100dvh - 24px)!important;
  margin:auto!important;
  padding:clamp(18px,3vw,28px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
.event-dialog .panel-heading{
  align-items:flex-start!important;
  min-width:0;
}
.event-dialog .panel-heading>div,
.event-dialog .form-grid>*{
  min-width:0;
}
.event-dialog :is(h2,h3,p,label,small,strong),
.reference-form :is(label,p,small,strong){
  overflow-wrap:anywhere;
}
.event-dialog .icon-action{
  flex:0 0 44px;
  min-width:44px;
  min-height:44px;
  margin:-8px -8px 0 0;
}
.event-dialog .dialog-actions,
.event-dialog .group-actions{
  flex-wrap:wrap;
}

body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) :is(.event-dialog,.reference-form){
  background:#fffaf6!important;
  color:#211c1f!important;
  border-color:#c8beb7!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) :is(.event-dialog,.reference-form) :is(label,h2,h3,strong){
  color:#211c1f!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) :is(.event-dialog,.reference-form) :is(.muted,small){
  color:#62585e!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) :is(.event-dialog,.reference-form) :is(input,select,textarea){
  background:#fffdf9!important;
  color:#211c1f!important;
  border-color:#aaa0a5!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) :is(.event-dialog,.reference-form) :is(input,textarea)::placeholder{
  color:#70666b!important;
  opacity:1;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) .event-dialog .secondary{
  background:#fffdf9!important;
  color:#211c1f!important;
  border-color:#aaa0a5!important;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) :is(.event-dialog,.reference-form){
  background:#171a23!important;
  color:#f7f2ef!important;
  border-color:rgba(255,255,255,.18)!important;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) :is(.event-dialog,.reference-form) :is(label,h2,h3,strong){
  color:#f7f2ef!important;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) :is(.event-dialog,.reference-form) :is(.muted,small){
  color:#c8c0c4!important;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) :is(.event-dialog,.reference-form) :is(input,select,textarea){
  background:#0d1020!important;
  color:#f7f2ef!important;
  border-color:rgba(255,255,255,.22)!important;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) :is(.event-dialog,.reference-form) :is(input,textarea)::placeholder{
  color:#aaa1a7!important;
  opacity:1;
}

/* Les ressources restent volontairement sombres dans tous les modes. */
#reference-list .resource-card{
  background:#151923!important;
  border-color:rgba(255,255,255,.20)!important;
  color:#f7f2ef!important;
}
#reference-list .resource-card:hover{
  background:#1c2130!important;
}
#reference-list .resource-card :is(.resource-title,.resource-title strong){
  color:#fff!important;
}
#reference-list .resource-card :is(.resource-copy small,small){
  color:#d4ccd1!important;
}
#reference-list .resource-card .resource-kind{
  background:#2b2140!important;
  color:#8de8ff!important;
  border-color:rgba(255,255,255,.18)!important;
}
#reference-list .resource-card :is(.resource-type,.resource-purpose,.resource-primary){
  color:#ffd39a!important;
}
#reference-list .resource-card :is(a,.resource-open){
  color:#79dcff!important;
}

@media(max-width:760px){
  .event-dialog{
    width:calc(100vw - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
    padding:16px!important;
  }
  .event-dialog .form-grid,
  .reference-form{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .event-dialog .form-grid>.wide,
  .reference-form>.wide{
    grid-column:1!important;
  }
  .event-dialog .dialog-actions,
  .event-dialog .group-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  .event-dialog .dialog-actions>*:not(.hidden),
  .event-dialog .group-actions>*:not(.hidden){
    width:100%!important;
    min-height:44px!important;
    margin:0!important;
  }
  #reference-list .resource-card{
    padding:12px!important;
    overflow:hidden!important;
  }
  #reference-list .resource-card.resource-clickable::after{
    position:static!important;
    grid-column:2!important;
    width:auto!important;
    margin-top:6px!important;
    transform:none!important;
    text-align:left!important;
  }
}

/* MG_WEB_THEME_SEMANTIC_TOKENS_024
   Couche semantique unique pour les surfaces metier Web. */
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]){
  --ui-background:#f2ece5;
  --ui-surface:#fffaf6;
  --ui-surface-muted:#f2ebe5;
  --ui-panel:#fffdf9;
  --ui-card:#fffaf6;
  --ui-card-hover:#f7eee8;
  --ui-text-primary:#211c1f;
  --ui-text-secondary:#51484d;
  --ui-text-muted:#675d62;
  --ui-border:#b9adb3;
  --ui-border-strong:#91858b;
  --ui-accent:#981334;
  --ui-accent-soft:#f7dfe5;
  --ui-on-accent:var(--accent-on,#fff);
  --ui-danger:#a20f35;
  --ui-success:#176344;
  --ui-warning:#7c4a00;
  --ui-focus:#981334;
  --ui-strong-surface:#171923;
  --ui-strong-hover:#202431;
  --ui-strong-text:#f8f3f0;
  --ui-strong-muted:#d2c9ce;
  --ui-strong-border:#4b5363;
  --ui-strong-accent:#ffd28a;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]){
  --ui-background:#090a0f;
  --ui-surface:#12151d;
  --ui-surface-muted:#181c26;
  --ui-panel:#171a23;
  --ui-card:#202531;
  --ui-card-hover:#282e3b;
  --ui-text-primary:#f8f3f0;
  --ui-text-secondary:#d5cdd1;
  --ui-text-muted:#bcb2b7;
  --ui-border:#4b5363;
  --ui-border-strong:#6a7282;
  --ui-accent:#ff91a3;
  --ui-accent-soft:#4a1d2a;
  --ui-on-accent:var(--accent-on,#16171c);
  --ui-danger:#ff9bb8;
  --ui-success:#79e5b8;
  --ui-warning:#ffd078;
  --ui-focus:#ff91a3;
  --ui-strong-surface:#11131b;
  --ui-strong-hover:#1c202b;
  --ui-strong-text:#f8f3f0;
  --ui-strong-muted:#cec5ca;
  --ui-strong-border:#4b5363;
  --ui-strong-accent:#ffd28a;
}

/* Pont vers les tokens historiques utilises par Mon materiel et les fiches. */
body[data-appearance]{
  --text:var(--ui-text-primary);
  --muted:var(--ui-text-muted);
  --line:var(--ui-border);
  --surface:var(--ui-surface);
  --surface-2:var(--ui-surface-muted);
  --surface2:var(--ui-surface-muted);
  --surface-elevated:var(--ui-panel);
  --surface-interactive:var(--ui-surface-muted);
  --color-background:var(--ui-background);
  --color-surface:var(--ui-surface);
  --color-surface-interactive:var(--ui-surface-muted);
  --color-text:var(--ui-text-primary);
  --color-text-muted:var(--ui-text-muted);
  --color-line:var(--ui-border);
  --danger:var(--ui-danger);
  --green:var(--ui-success);
  --ok:var(--ui-success);
}

/* Active roster cards are ordinary readable surfaces, never disabled overlays. */
body[data-appearance] .member-card:not(.former){
  background:var(--ui-card);
  color:var(--ui-text-primary);
  border-color:var(--ui-border);
  opacity:1;
}
body[data-appearance] .member-card:not(.former) :is(h3,strong){color:var(--ui-text-primary)}
body[data-appearance] .member-card:not(.former) :is(p,small){color:var(--ui-text-secondary)}
body[data-appearance] .member-card.current-member{
  background:color-mix(in srgb,var(--ui-card) 88%,var(--ui-accent) 12%);
  border-color:var(--ui-accent);
}
@media(max-width:440px){
  .member-grid{grid-template-columns:minmax(0,1fr)}
  .members-panel{padding:16px}
  .member-card{grid-template-columns:48px minmax(0,1fr);gap:12px;padding:15px}
  .member-avatar{width:48px;height:48px;border-radius:15px}
  .member-title{flex-direction:column;gap:2px}
  .member-title span{white-space:normal}
}

/* Base canonique des fenetres, panneaux, fiches et historiques. */
#app-view[data-v2-shell-ready="1"] :is(
  .panel,.song-detail-shell,.song-functional-panel,.personal-work-editor,
  .personal-work,.work-items article,.private-note-trash,.private-note-archives,
  .song-history-list details,.reference-form,.event-dialog,.material-dialog,
  .material-card,.board-card,.configuration-list article,.material-history details,
  .empty,.empty-selection
){
  border-color:var(--ui-border)!important;
  color:var(--ui-text-primary)!important;
}
#app-view[data-v2-shell-ready="1"] :is(
  .panel,.song-functional-panel,.personal-work-editor,.personal-work,
  .work-items article,.private-note-trash,.private-note-archives,
  .song-history-list details,.reference-form,.event-dialog,.material-dialog,
  .material-card,.board-card,.configuration-list article,.material-history details
){
  background-color:var(--ui-panel)!important;
}
#app-view[data-v2-shell-ready="1"] :is(
  .panel,.song-detail-shell,.song-functional-panel,.personal-work-editor,
  .personal-work,.work-items article,.private-note-trash,.private-note-archives,
  .song-history-list details,.reference-form,.event-dialog,.material-dialog,
  .material-card,.board-card,.configuration-list article,.material-history details
) :is(h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary){
  color:var(--ui-text-primary)!important;
}
#app-view[data-v2-shell-ready="1"] :is(
  .panel,.song-detail-shell,.song-functional-panel,.personal-work-editor,
  .personal-work,.work-items article,.private-note-trash,.private-note-archives,
  .song-history-list details,.reference-form,.event-dialog,.material-dialog,
  .material-card,.board-card,.configuration-list article,.material-history details,
  .empty,.empty-selection
) :is(p,small,time,.muted,.personal-work-dates){
  color:var(--ui-text-muted)!important;
}

/* Champs et boutons secondaires partagent le meme contrat de theme. */
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) :is(input,select,textarea){
  background:var(--ui-surface)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border-strong)!important;
}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) :is(input,textarea)::placeholder{
  color:var(--ui-text-muted)!important;
  opacity:1!important;
}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) select option{
  background:var(--ui-surface)!important;
  color:var(--ui-text-primary)!important;
}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) .secondary,
.material-workspace :is(button,.material-tabs button){
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) .secondary:hover,
.material-workspace button:hover{
  background:var(--ui-card-hover)!important;
  border-color:var(--ui-border-strong)!important;
}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) :is(button,a,input,select,textarea):focus-visible,
.material-workspace :is(button,a,input,select,textarea):focus-visible{
  outline:3px solid var(--ui-focus)!important;
  outline-offset:2px!important;
}
#app-view[data-v2-shell-ready="1"] :is(button,input,select,textarea):disabled,
.material-workspace :is(button,input,select,textarea):disabled{
  opacity:1!important;
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-muted)!important;
  border-color:var(--ui-border)!important;
}

/* Onglets canoniques : fond et texte changent ensemble. */
#app-view[data-v2-shell-ready="1"] :is(.screen-tabs,.song-detail-tabs,.group-tabs,.solo-tabs,.material-tabs) button{
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-secondary)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] :is(.screen-tabs,.song-detail-tabs,.group-tabs,.solo-tabs,.material-tabs) button:is(.active,[aria-selected="true"]){
  background:var(--ui-panel)!important;
  color:var(--ui-accent)!important;
  border-color:var(--ui-accent)!important;
}

/* Accents textuels accessibles sur les surfaces normales. */
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) :is(.eyebrow,.bpm-pill),
.material-workspace :is(.material-hero small,.material-section>header small,.material-dialog header small,.material-card small,.configuration-list small,.material-history summary span){
  color:var(--ui-accent)!important;
}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) :is(.error,.danger,.danger-action){color:var(--ui-danger)!important}
#app-view[data-v2-shell-ready="1"] :is(.page,.event-dialog,.material-dialog) :is(.success,.ready){color:var(--ui-success)!important}

/* Les ressources sont un ilot sombre invariant : aucun heritage clair n'y entre. */
#app-view[data-v2-shell-ready="1"] #reference-list .resource-card{
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-text)!important;
  border-color:var(--ui-strong-border)!important;
}
#app-view[data-v2-shell-ready="1"] #reference-list .resource-card:hover{background:var(--ui-strong-hover)!important}
#app-view[data-v2-shell-ready="1"] #reference-list .resource-card :is(.resource-copy,.resource-title,.resource-title strong,strong){color:var(--ui-strong-text)!important}
#app-view[data-v2-shell-ready="1"] #reference-list .resource-card :is(.resource-copy small,small){color:var(--ui-strong-muted)!important}
#app-view[data-v2-shell-ready="1"] #reference-list .resource-card :is(.resource-type,.resource-purpose,.resource-primary,a,.resource-open){color:var(--ui-strong-accent)!important}
#app-view[data-v2-shell-ready="1"] #reference-list .resource-card .resource-kind{
  background:#29213c!important;
  color:#92e8ff!important;
  border-color:var(--ui-strong-border)!important;
}

/* Badges poses sur des visuels sombres. */
#app-view[data-v2-shell-ready="1"] :is(.event-type,.scope.personal){
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-accent)!important;
  border-color:var(--ui-strong-border)!important;
}
#app-view[data-v2-shell-ready="1"] .event-dialog .eyebrow,
#app-view[data-v2-shell-ready="1"] .page .eyebrow,
#app-view[data-v2-shell-ready="1"] .material-workspace :is(.material-hero small,.material-section>header small,.material-dashboard small){
  color:var(--ui-accent)!important;
}
#app-view[data-v2-shell-ready="1"] .page :is(.event-type,.scope.personal){
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-accent)!important;
  border-color:var(--ui-strong-border)!important;
}
#app-view[data-v2-shell-ready="1"] #home-attention-count{
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-text)!important;
  border-color:var(--ui-strong-border)!important;
}

/* Les dialogs HTML vivent hors de #app-view dans le DOM. */
:is(.event-dialog,.material-dialog){
  background:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
:is(.event-dialog,.material-dialog) :is(h1,h2,h3,h4,strong,b,label,legend,summary){color:var(--ui-text-primary)!important}
:is(.event-dialog,.material-dialog) :is(p,small,time,.muted){color:var(--ui-text-muted)!important}
:is(.event-dialog,.material-dialog) .eyebrow,
.material-dialog header small{color:var(--ui-accent)!important}
:is(.event-dialog,.material-dialog) :is(input,select,textarea){
  background:var(--ui-surface)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border-strong)!important;
}
:is(.event-dialog,.material-dialog) :is(input,textarea)::placeholder{color:var(--ui-text-muted)!important;opacity:1!important}
:is(.event-dialog,.material-dialog) select option{background:var(--ui-surface)!important;color:var(--ui-text-primary)!important}
:is(.event-dialog,.material-dialog) .secondary{background:var(--ui-surface-muted)!important;color:var(--ui-text-primary)!important;border-color:var(--ui-border)!important}
:is(.event-dialog,.material-dialog) :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--ui-focus)!important;outline-offset:2px!important}

#play-page :is(#solo-see-all-work,#solo-play-position,#solo-hero-metric-label),
#play-page :is(.ai-card,.private-card,.metric-card) button{
  color:var(--ui-text-secondary)!important;
}
#app-view[data-v2-shell-ready="1"] .personal-work .work-items article{
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] .personal-work .work-items article strong{color:var(--ui-text-primary)!important}
#app-view[data-v2-shell-ready="1"] .personal-work .work-items article :is(p,small,.personal-work-dates){color:var(--ui-text-muted)!important}
#app-view[data-v2-shell-ready="1"] .personal-work :is(.private-note-archives,.private-note-trash){
  background:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] .personal-work :is(.private-note-archives,.private-note-trash) :is(p,small,.muted){color:var(--ui-text-muted)!important}

/* Neutralise l'ancien panneau sombre force en modes clair/solaire clair.
   La qualification par mode est volontaire : elle gagne la cascade legacy
   sans modifier le rendu sombre ni le contrat fonctionnel des notes. */
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work{
  background-color:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work :is(h1,h2,h3,h4,h5,h6,strong,b,label,legend,summary){
  color:var(--ui-text-primary)!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work .eyebrow{
  color:var(--ui-accent)!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work .work-items article{
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work .work-items article strong{
  color:var(--ui-text-primary)!important;
}
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work .work-items article :is(p,small,.personal-work-dates),
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"])
#app-view[data-v2-shell-ready="1"] .personal-work :is(.private-note-archives,.private-note-trash) :is(p,small,.muted){
  color:var(--ui-text-muted)!important;
}

/* MG_UX_LIFECYCLE_001 — actions Setlist vers l'atelier. */
#app-view[data-v2-shell-ready="1"] .open-workshop-inline{
  background:var(--ui-accent)!important;
  color:var(--ui-on-accent)!important;
  border-color:var(--ui-accent)!important;
}
#app-view[data-v2-shell-ready="1"] .open-workshop-inline:hover,
#app-view[data-v2-shell-ready="1"] .open-workshop-inline:focus-visible{
  filter:brightness(1.08);
  box-shadow:0 0 0 3px var(--ui-focus);
}
#app-view[data-v2-shell-ready="1"] .media-external{
  color:var(--ui-strong-accent)!important;
}
#app-view[data-v2-shell-ready="1"] .rehearsal-launch:disabled{
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-muted)!important;
  border-color:var(--ui-border)!important;
  opacity:1!important;
}

/* La carte de morceau de setlist est une surface canonique, pas un ilot sombre.
   Ces regles neutralisent les anciens packs visuels qui imposaient encore des
   fonds translucides, des rayons circulaires et des textes blancs en mode clair. */
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song{
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  border-radius:18px!important;
  background:var(--ui-card)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
  overflow:hidden!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song:hover{
  background:var(--ui-card-hover)!important;
  border-color:var(--ui-border-strong)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song :is(h3,strong){color:var(--ui-text-primary)!important}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song :is(p,small,.muted){color:var(--ui-text-muted)!important}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-position{
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-drag-handle{
  background:var(--ui-accent-soft)!important;
  color:var(--ui-accent)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-media-row :is(.media-chip,.media-external){
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-text)!important;
  border-color:var(--ui-strong-border)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-media-row .media-external{color:var(--ui-strong-accent)!important}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song .remove{
  color:var(--ui-danger)!important;
  background:var(--ui-surface-muted)!important;
  border-color:var(--ui-border)!important;
}

@media(max-width:700px){
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song{
    grid-template-columns:36px 46px minmax(0,1fr) 34px!important;
    min-height:72px!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-artist-art{display:none!important}
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-song-content{min-width:0!important;padding:10px!important}
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-song-heading{align-items:flex-start!important;flex-direction:column!important;gap:6px!important}
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-media-row{justify-content:flex-start!important}
}

/* CONSOLIDATION UX & REPETITIONS #001
   Cartouches agenda, retours contextuels et choix directs de versions. */
#app-view[data-v2-shell-ready="1"] :is(.event-card,.agenda-event){
  min-height:132px!important;
  border-color:var(--ui-border)!important;
  color:var(--ui-text-primary)!important;
}
#app-view[data-v2-shell-ready="1"] .agenda-event{
  grid-template-columns:minmax(96px,118px) minmax(0,1fr)!important;
  gap:clamp(16px,2.5vw,28px)!important;
  padding:clamp(18px,2.5vw,28px)!important;
  background:var(--ui-panel)!important;
}
#app-view[data-v2-shell-ready="1"] .agenda-date{
  min-height:104px;
  border:1px solid var(--ui-border)!important;
  border-radius:16px;
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
}
#app-view[data-v2-shell-ready="1"] .agenda-date strong{font-size:clamp(2rem,4vw,3rem)!important;color:var(--ui-text-primary)!important}
#app-view[data-v2-shell-ready="1"] .agenda-date :is(span,small){color:var(--ui-text-secondary)!important}
#app-view[data-v2-shell-ready="1"] .agenda-event-body :is(h3,strong){color:var(--ui-text-primary)!important}
#app-view[data-v2-shell-ready="1"] .agenda-event-body :is(p,span,small){color:var(--ui-text-muted)!important}
#app-view[data-v2-shell-ready="1"] .agenda-event-body h3{font-size:clamp(1.2rem,2.2vw,1.65rem)!important;line-height:1.25}
#app-view[data-v2-shell-ready="1"] .agenda-event :is(.secondary.compact,.place-actions a){
  min-height:42px;
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border-strong)!important;
}
#app-view[data-v2-shell-ready="1"] .agenda-event.cancelled{opacity:.78}

.context-return-actions{display:flex;align-items:center;gap:8px}
.context-return{
  min-height:42px!important;
  white-space:nowrap;
}
.song-context-return{grid-column:1/-1;justify-self:start}
.reference-preference{grid-template-columns:auto minmax(0,1fr)!important;align-items:start!important}
.reference-preference>span{display:grid;gap:3px}
.reference-preference small{font-weight:500;line-height:1.4;color:var(--ui-text-muted)!important}

.solo-workshop-resources[role="tablist"]{
  align-items:stretch;
  gap:8px!important;
}
.solo-workshop-resources [role="tab"]{
  min-height:46px;
  border:1px solid var(--ui-border)!important;
  border-radius:12px!important;
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
}
.solo-workshop-resources [role="tab"][aria-selected="true"]{
  border-color:var(--ui-accent)!important;
  background:var(--ui-accent-soft)!important;
  color:var(--ui-accent)!important;
  box-shadow:inset 0 0 0 1px var(--ui-accent);
}

@media(max-width:700px){
  #app-view[data-v2-shell-ready="1"] .agenda-event{
    grid-template-columns:minmax(78px,92px) minmax(0,1fr)!important;
    gap:12px!important;
    padding:14px!important;
  }
  #app-view[data-v2-shell-ready="1"] .agenda-date{min-height:92px}
  #app-view[data-v2-shell-ready="1"] .agenda-event-top,
  #app-view[data-v2-shell-ready="1"] .agenda-meta,
  #app-view[data-v2-shell-ready="1"] .place-actions{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
  #app-view[data-v2-shell-ready="1"] .agenda-event :is(button,a){width:100%!important;white-space:normal!important}
  .solo-workshop-status{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}
  .solo-workshop-status .context-return{grid-column:1/-1;width:100%}
  .solo-workshop-resources[role="tablist"]{display:flex!important;overflow-x:auto!important;padding-bottom:6px;scroll-snap-type:x proximity}
  .solo-workshop-resources [role="tab"]{min-width:min(76vw,280px);scroll-snap-align:start}
  .context-return-actions{width:100%;justify-content:space-between}
}

/* CONSOLIDATION FONCTIONNELLE #001 — une action Atelier, un panneau Ressources
   lisible et un retrait explicite qui ne concerne que la setlist. */
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song{
  grid-template-columns:44px 58px 76px minmax(0,1fr)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page :is(.setlist-resources-toggle,.setlist-remove-action){
  min-height:34px;
  border:1px solid var(--ui-border)!important;
  border-radius:10px!important;
  padding:7px 11px!important;
  background:var(--ui-surface-muted)!important;
  color:var(--ui-text-primary)!important;
  font-weight:var(--weight-medium);
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-remove-action{
  width:auto!important;
  color:var(--ui-danger)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-panel{
  display:grid;
  gap:8px;
  margin:2px 16px 14px;
  border:1px solid var(--ui-border)!important;
  border-radius:14px;
  background:var(--ui-surface-muted)!important;
  padding:12px;
  color:var(--ui-text-primary)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-panel.hidden{display:none!important}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-panel>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-panel>header small{color:var(--ui-text-muted)!important}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-top:1px solid var(--ui-border)!important;
  padding-top:8px;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-item>div:first-child{display:grid;gap:2px;min-width:0}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-item small{color:var(--ui-text-muted)!important}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
#app-view[data-v2-shell-ready="1"] #setlists-page :is(.setlist-resource-actions .media-chip,.add-media-inline){
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-text)!important;
  border-color:var(--ui-strong-border)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-actions .media-external{
  background:var(--ui-strong-surface)!important;
  color:var(--ui-strong-accent)!important;
  border-color:var(--ui-strong-border)!important;
}
#app-view[data-v2-shell-ready="1"] #setlists-page :is(.setlist-resource-actions .media-chip,.setlist-resource-actions .media-external,.add-media-inline):is(:hover,:focus-visible){
  background:var(--ui-strong-hover)!important;
  outline:2px solid var(--ui-focus);
  outline-offset:2px;
}

@media(max-width:700px){
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song{
    grid-template-columns:36px 46px minmax(0,1fr)!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-panel{margin:2px 10px 12px}
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-panel>header,
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-item{align-items:stretch;flex-direction:column}
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-actions{justify-content:flex-start}
}

/* RELEASE BLOCKERS #001 — surfaces opaques et contrastes déterministes. */
body:is([data-appearance="light"],[data-appearance="solar"][data-solar-tone="light"]) #login-view .login-card{
  background:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
body:is([data-appearance="dark"],[data-appearance="solar"][data-solar-tone="dark"]) #login-view .login-card{
  background:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
#login-view .login-card :is(h1,label){color:var(--ui-text-primary)!important}
#login-view .login-card :is(.muted,#forgot-password){color:var(--ui-text-muted)!important}
#login-view .login-card :is(input,#create-account){
  background:var(--ui-surface)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border-strong)!important;
}
#login-view .login-card :is(button,input):focus-visible{
  outline:3px solid var(--ui-focus)!important;
  outline-offset:2px!important;
}

#app-view[data-v2-shell-ready="1"] .material-workspace :is(
  .material-hero,.material-sync-compact,.material-section>header,.material-dashboard-heading
){
  border:1px solid var(--ui-border)!important;
  border-radius:16px;
  background:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  padding:clamp(14px,2vw,20px)!important;
}
#app-view[data-v2-shell-ready="1"] .material-workspace :is(
  .material-hero,.material-sync-compact,.material-section>header,.material-dashboard-heading
) :is(h1,h2,h3,strong){color:var(--ui-text-primary)!important}
#app-view[data-v2-shell-ready="1"] .material-workspace :is(
  .material-hero,.material-sync-compact,.material-section>header,.material-dashboard-heading
) :is(p,small){color:var(--ui-text-muted)!important}
#app-view[data-v2-shell-ready="1"] .material-workspace :is(
  .material-hero,.material-section>header,.material-dashboard-heading
) small{color:var(--ui-accent)!important}
#app-view[data-v2-shell-ready="1"] .material-workspace :is(.material-dashboard-panel,.material-metrics button){
  background:var(--ui-panel)!important;
  color:var(--ui-text-primary)!important;
  border-color:var(--ui-border)!important;
}
#app-view[data-v2-shell-ready="1"] .material-workspace .material-dashboard-panel :is(h2,h3,strong){color:var(--ui-text-primary)!important}
#app-view[data-v2-shell-ready="1"] .material-workspace .material-dashboard-panel :is(p,span,time){color:var(--ui-text-muted)!important}

/* La page Setlists devient un flux vertical réel sur téléphone. L'ancienne
   grille à deux colonnes masquait l'éditeur au lieu de le repositionner. */
@media(max-width:700px){
  #app-view[data-v2-shell-ready="1"] #setlists-page{
    overflow-x:hidden!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .content-grid.setlist-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page :is(.panel,#setlist-editor,.setlist-list){
    width:100%!important;
    min-width:0!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .panel{
    min-height:0!important;
    padding:12px!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-list{
    max-height:none!important;
    overflow:visible!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-rock-song{
    grid-template-columns:32px 42px minmax(0,1fr)!important;
    gap:6px!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-media-row,
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    width:100%!important;
    gap:7px!important;
  }
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-media-row :is(button,a),
  #app-view[data-v2-shell-ready="1"] #setlists-page .setlist-resource-actions :is(button,a),
  #app-view[data-v2-shell-ready="1"] #setlists-page :is(.setlist-resources-toggle,.setlist-remove-action){
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
    text-align:center;
  }
}
