/* Fase 15B: riquadri opzionali, rispettano i colori già scelti nell'app. */
@media screen {
 #v22HomeCore .f15b-row{width:100%;min-width:0;box-sizing:border-box;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0 2px;align-items:stretch}
 #v22HomeCore .f15b-row[hidden],#v22HomeCore .f15b-tile[hidden]{display:none!important}
 #v22HomeCore .f15b-tile{box-sizing:border-box;min-width:0;border:1px solid var(--v22-accent,#b64f7b);border-radius:13px;padding:9px 8px 10px;background:var(--v22-soft,#fff7fb);color:var(--v24-text,#523447);overflow-wrap:anywhere;overflow:hidden;text-align:center;box-shadow:0 1px 4px rgba(80,30,56,.07)}
 #v22HomeCore .f15b-heading{font-size:clamp(11px,2.9vw,14px);font-weight:750;line-height:1.25;margin:0 0 5px;color:var(--v22-accent,#b64f7b)}
 #v22HomeCore .f15b-value{font-size:clamp(19px,5.5vw,29px);font-weight:800;line-height:1.12;letter-spacing:-.5px;display:block;color:inherit;margin:0 0 5px;font-variant-numeric:tabular-nums}
 #v22HomeCore .f15b-value.f15b-overdue{color:#b42318!important}
 #v22HomeCore .f15b-detail,#v22HomeCore .f15b-extra{font-size:clamp(10px,2.65vw,12px);line-height:1.3;margin:4px 0 0;color:inherit;opacity:.95}
 #v22HomeCore .f15b-extra{font-size:clamp(10px,2.5vw,11px);opacity:.83;white-space:pre-line}
 @media(max-width:350px){#v22HomeCore .f15b-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}#v22HomeCore .f15b-heading{font-size:12px}#v22HomeCore .f15b-detail{font-size:11px}}
 body.v22-night #v22HomeCore .f15b-tile{background:#252934!important;border-color:#b97b9b!important;color:#f9ecf3!important}
 body.v22-night #v22HomeCore .f15b-heading{color:#f8c8e1!important}
 body.v22-night #v22HomeCore .f15b-value.f15b-overdue{color:#ff9d9a!important}
}
@media print{#v22HomeCore .f15b-row{display:none!important}}


/* Consolidamento packaging Build 82: fase15c1-fiori-calendario.css */
/* Fase 15C1: marker in riga propria, MAI sovrapposti a turni, note o festività. */
@media screen {
 #calendarPage .day.f15c1-day .f15c1-date-row {display:flex;align-items:center;justify-content:space-between;gap:1px;width:100%;min-width:0;height:12px;min-height:12px;max-height:12px;line-height:1!important;white-space:nowrap;overflow:hidden}
 #calendarPage .day.f15c1-day .f15c1-date-row>.v30-day-number {position:static!important;flex:0 0 auto;min-width:0;line-height:1!important;margin:0 0 0 1px!important}
 #calendarPage .day.f15c1-day .f15c1-marker-slot {display:flex;justify-content:flex-end;align-items:center;gap:0;min-width:0;overflow:hidden;flex:0 1 auto;line-height:1!important;padding-right:1px}
 #calendarPage .day.f15c1-day .f15c1-marker-slot .v31-calendar-mark {position:static!important;display:inline-block!important;max-width:10px!important;flex:0 1 10px;font-size:9px!important;line-height:1!important;margin:0!important;overflow:hidden}
 #calendarPage .day.f15c1-day .f15c1-marker-slot .note-indicator {position:static!important;display:inline-block!important;max-width:10px!important;flex:0 1 10px;font-size:9px!important;line-height:1!important;margin:0!important;overflow:hidden}
 #calendarPage .f15c1-flower {font-family:Georgia,'Times New Roman',serif;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;flex:0 0 12px;font-weight:bold;text-shadow:0 1px 0 rgba(255,255,255,.5)}
 #calendarPage .f15c1-flower.f15c1-confirmed {color:#b22068}
 #calendarPage .f15c1-flower.f15c1-predicted {color:#8753c0}
 #calendarPage .f15c1-legend {display:flex;justify-content:center;align-items:center;gap:clamp(6px,3vw,15px);font-size:10px;font-weight:650;line-height:1.15;min-height:16px;margin:2px 0 1px;white-space:nowrap;overflow:hidden;color:var(--v24-card-text,#593e51)}
 #calendarPage .f15c1-legend span {display:inline-flex;align-items:center;gap:3px;min-width:0}
 #calendarPage .f15c1-day-action {display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px;margin:2px 0 3px;min-width:0}
 #calendarPage .f15c1-flower-button {display:inline-flex;justify-content:center;align-items:center;gap:5px;min-height:30px;max-height:none!important;padding:4px 9px;font-size:11px;line-height:1.2;background:var(--v24-secondary,#ffe7f2)!important;border:1px solid var(--v24-primary,#bd6394);color:var(--v24-card-text,#61394f)!important;max-width:100%;white-space:normal}
 #calendarPage .f15c1-flower-button>span{font-size:18px;color:#b22068}
 #calendarPage .f15c1-future-hint {font-size:10px;line-height:1.15;color:var(--v24-card-text,#79576c)}
 .f15c1-dialog[open]{width:min(390px,calc(100vw - 22px));max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 22px)}
 .f15c1-dialog .f15c1-dialog-card{padding:16px max(12px,env(safe-area-inset-right,0px)) calc(13px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:8px}
 .f15c1-dialog .f15c1-selected{font-size:16px!important;font-weight:800;color:var(--v24-card-text,#58324d)}
 .f15c1-dialog .f15c1-edit{width:100%;min-width:0;text-align:left}
 .f15c1-dialog .f15c1-edit label{font-size:12px;font-weight:700}
 .f15c1-dialog .f15c1-edit input{font-size:16px;min-height:44px;max-width:100%;box-sizing:border-box}
 .f15c1-dialog .f15c1-status{font-size:12px!important;min-height:0;color:#176e41}
 .f15c1-dialog .f15c1-status.f15c1-warning{color:#af2039}
 .f15c1-dialog .f15c1-status:empty{display:none}
 .f15c1-dialog .f15c1-manage{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
 .f15c1-dialog .f15c1-manage[hidden]{display:none!important}
 .f15c1-dialog .f15c1-manage button{min-height:42px;padding:8px 6px}
 .f15c1-dialog .f15c1-delete,.f15c1-dialog .f15c1-danger{background:#af294e!important;color:#fff!important}
 body.v22-night #calendarPage .f15c1-legend{color:#ffe9f5}
 body.v22-night #calendarPage .f15c1-flower.f15c1-confirmed{color:#ff91be;text-shadow:none}
 body.v22-night #calendarPage .f15c1-flower.f15c1-predicted{color:#cca5ff;text-shadow:none}
 body.v22-night #calendarPage .f15c1-flower-button {background:#38243a!important;color:#fff0f8!important;border-color:#d88bb6!important}
 body.v22-night #calendarPage .f15c1-flower-button>span{color:#ff91be}
 body.v22-night .f15c1-dialog .f15c1-status.f15c1-warning{color:#ffb3c0}
 @media(max-width:360px){#calendarPage .day.f15c1-day .f15c1-date-row{height:11px;min-height:11px;max-height:11px}#calendarPage .f15c1-flower{font-size:11px;flex-basis:10px}#calendarPage .f15c1-legend{font-size:9px;gap:7px}#calendarPage .f15c1-flower-button{min-height:29px;font-size:10px;padding:4px 6px}}
}
@media print{#calendarPage .f15c1-flower,#calendarPage .f15c1-legend,#calendarPage .f15c1-day-action,.f15c1-dialog{display:none!important}}

/* Build 85: cycle action beside Altri lavori, away from the selected-day preview. */
@media screen {
 #calendarPage .v54-other-jobs-row:has(.f15c1-day-action){display:flex!important;align-items:stretch!important;justify-content:flex-start!important;flex-wrap:wrap!important;gap:6px!important}
 #calendarPage .v54-other-jobs-row .f15c1-day-action{margin:0!important;flex:1 1 165px;min-width:0;justify-content:flex-start!important}
 #calendarPage .v54-other-jobs-row .f15c1-flower-button{min-height:34px!important;font-size:11px!important;padding:5px 8px!important;width:100%;text-align:center}
 #calendarPage .v54-other-jobs-row #v52OtherJobsOpen{flex:0 0 auto}
 #calendarPage .v54-other-jobs-row .f15c1-future-hint{flex:1 1 100%;font-size:10px}
 /* Restore start/end times in calendar day cells, not just total hours. */
 body.v21-calendar-active #calendarPage .day .shift-times{display:block!important;visibility:visible!important;font-size:clamp(7px,1.9vw,9px)!important;line-height:1.12!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;overflow-wrap:normal!important;word-break:normal!important;margin:1px 0 0!important;font-weight:750!important}
 body.v21-calendar-active #calendarPage .day .day-hours{font-size:clamp(7px,1.8vw,9px)!important;line-height:1.1!important;margin-top:1px!important}
 /* A little more room for the date, indicators, shift type, and clock times. */
 body.v21-calendar-active #calendarPage .day{height:50px!important;min-height:50px!important;max-height:50px!important;overflow:hidden!important}
 body.v21-calendar-active #calendarPage .day.f15c1-day .f15c1-date-row{flex-shrink:0!important}
 /* Restore the actual shift preview with its time range and scrollable content. */
 body.v21-calendar-active #calendarPage .calendar-preview.v30-day-preview{max-height:160px!important;min-height:0!important;overflow:hidden!important}
 body.v21-calendar-active #calendarPage .v53-preview-body{min-height:0!important;overflow-y:auto!important}
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift{display:block!important}
 @media(max-width:360px){body.v21-calendar-active #calendarPage .day{height:47px!important;min-height:47px!important;max-height:47px!important}}
 @media(max-height:740px){body.v21-calendar-active #calendarPage .day{height:43px!important;min-height:43px!important;max-height:43px!important}body.v21-calendar-active #calendarPage .calendar-preview.v30-day-preview{max-height:125px!important}}
}

/* BUILD 86 — Calendario leggibile su una SOLA schermata; senza scorrimento della pagina.
   Le altezze vengono distribuite secondo lo spazio realmente disponibile dal runtime. */
@media screen and (max-width:760px){
 body.v21-calendar-active #calendarPage{overflow:clip!important}
 body.v21-calendar-active #calendarPage>.card:first-child{padding:3px 8px 0!important;margin:0!important}
 body.v21-calendar-active #calendarPage .calendar{
  gap:3px!important;margin:3px 0 3px!important;
  grid-auto-rows:auto;min-width:0
 }
 body.v21-calendar-active #calendarPage .wd{font-size:10px!important;line-height:1.2!important;padding:1px 0 3px!important}
 body.v21-calendar-active #calendarPage .day{
  height:var(--lmo86-day-h,52px)!important;min-height:var(--lmo86-day-h,52px)!important;
  max-height:var(--lmo86-day-h,52px)!important;
  padding:3px 1px 2px!important;border-radius:10px!important;
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  justify-content:flex-start!important;gap:1px!important;min-width:0;
  overflow:hidden!important;line-height:1.1!important
 }
 body.v21-calendar-active #calendarPage .day.f15c1-day .f15c1-date-row{
  height:15px!important;min-height:15px!important;max-height:15px!important;
  padding:0 2px!important;flex:0 0 15px!important
 }
 body.v21-calendar-active #calendarPage .day .v30-day-number{font-size:clamp(11px,3.5vw,14px)!important;font-weight:850!important;line-height:1.1!important}
 body.v21-calendar-active #calendarPage .day::before{height:10px!important;min-height:10px!important;line-height:10px!important;font-size:8.5px!important}
 body.v21-calendar-active #calendarPage .day .shift-times{
  display:block!important;visibility:visible!important;margin:0!important;
  padding:0 1px!important;font-size:clamp(8px,2.25vw,10px)!important;
  font-weight:750!important;line-height:1.13!important;white-space:nowrap!important;
  overflow:hidden!important;text-overflow:clip!important;letter-spacing:-.2px!important;
  overflow-wrap:normal!important;word-break:normal!important
 }
 body.v21-calendar-active #calendarPage .day .shift-times.lmo86-time-split{font-size:clamp(7.5px,2vw,9px)!important}
 body.v21-calendar-active #calendarPage .day .shift-times.lmo86-time-split span{display:block;line-height:1.12}
 body.v21-calendar-active #calendarPage .day .lmo86-more-shifts{display:block;font-size:8px;line-height:1.04;font-weight:750;white-space:nowrap}
 body.v21-calendar-active #calendarPage .day .lmo77-planned-time{display:none!important} /* Evita doppione dell'orario programmato. */
 body.v21-calendar-active #calendarPage .day .day-hours{font-size:8px!important;line-height:1.1!important;margin:1px 0 0!important;white-space:nowrap!important;overflow:hidden!important}
 body.v21-calendar-active #calendarPage .f15c1-flower{font-size:12px!important;flex-basis:12px!important}
 body.v21-calendar-active #calendarPage .calendar-preview.v30-day-preview{
  display:flex!important;flex-direction:column!important;
  height:var(--lmo86-preview-h,126px)!important;min-height:0!important;
  max-height:var(--lmo86-preview-h,126px)!important;
  margin:3px 0 4px!important;padding:9px 10px!important;
  border-radius:14px!important;border:1px solid var(--v24-primary,#b65a83)!important;
  background:var(--v24-card,#fff9fc)!important;box-shadow:0 2px 6px rgba(77,27,53,.06)!important;
  overflow:hidden!important;gap:4px!important
 }
 body.v21-calendar-active #calendarPage .calendar-preview-title{
  font-size:clamp(13px,3.6vw,16px)!important;line-height:1.2!important;
  margin:0!important;font-weight:800!important;flex:0 0 auto
 }
 body.v21-calendar-active #calendarPage .v53-preview-body{
  flex:1 1 auto!important;min-height:0!important;
  overflow-y:auto!important;overflow-x:hidden!important;touch-action:pan-y!important;
  scrollbar-width:none
 }
 body.v21-calendar-active #calendarPage .v53-preview-body::-webkit-scrollbar{display:none}
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  font-size:12px!important;padding:7px 8px!important;margin:2px 0!important;
  border-radius:9px!important;gap:6px!important
 }
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift b,
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift>div>div{
  font-size:clamp(11px,3vw,13px)!important;line-height:1.25!important;
 }
 body.v21-calendar-active #calendarPage .v30-day-preview .preview-actions.v29-day-actions{
  margin:0!important;flex:0 0 auto!important;gap:5px!important;
 }
 body.v21-calendar-active #calendarPage .v30-day-preview .preview-actions.v29-day-actions button{
  min-height:34px!important;max-height:36px!important;font-size:clamp(10px,2.8vw,12px)!important;
  padding:5px 3px!important;border-radius:9px!important;
 }
 body.v21-calendar-active #calendarPage .v54-other-jobs-row:has(.f15c1-day-action){
  flex-wrap:nowrap!important;justify-content:flex-start!important;align-items:center!important;
  gap:7px!important;margin:4px 0 3px!important;min-height:36px
 }
 body.v21-calendar-active #calendarPage .v54-other-jobs-row .f15c1-day-action{
  margin:0!important;flex:0 0 40px!important;min-width:40px!important;max-width:40px!important
 }
 body.v21-calendar-active #calendarPage .v54-other-jobs-row .f15c1-flower-button{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:40px!important;height:36px!important;min-height:36px!important;max-height:36px!important;
  padding:2px!important;border-radius:11px!important
 }
 body.v21-calendar-active #calendarPage .v54-other-jobs-row .f15c1-flower-button>span{font-size:22px!important;line-height:1!important}
 body.v21-calendar-active #calendarPage .f15c1-legend{min-height:15px!important;margin:2px 0!important;font-size:10px!important}
 body.v21-calendar-active #calendarPage .v22-smart-tools.v29-one-row-actions{margin:3px 0!important}
 body.v21-calendar-active #calendarPage .v26-quick-grid>.v26-quick-button{min-height:38px!important;max-height:43px!important}
 body.v21-calendar-active #calendarPage .day .day-hours .planned-label{white-space:nowrap}
}
@media screen and (max-width:350px){
 body.v21-calendar-active #calendarPage .day .v30-day-number{font-size:11px!important}
 body.v21-calendar-active #calendarPage .day .shift-times{font-size:8px!important}
 body.v21-calendar-active #calendarPage .f15c1-legend{font-size:9px!important}
}

/* Priorità alla fascia oraria: il totale ore resta nell'anteprima superiore. */
@media screen and (max-width:760px){
 body.v21-calendar-active #calendarPage .day:has(.shift-times) .day-hours{display:none!important}
}
/* Su display bassi il turno nell'anteprima prevale sui conteggi riepilogativi. */
@media screen and (max-width:760px) and (max-height:700px){
 body.v21-calendar-active #calendarPage .calendar-preview.v30-day-preview{padding:5px 8px!important;gap:2px!important}
 body.v21-calendar-active #calendarPage .v53-preview-body>p.muted{display:none!important}
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift{padding:3px 6px!important;margin:0!important;line-height:1.1!important}
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift b,
 body.v21-calendar-active #calendarPage .v30-day-preview .day-preview-shift>div>div{font-size:10px!important;line-height:1.12!important}
 body.v21-calendar-active #calendarPage .v30-day-preview .preview-actions.v29-day-actions button{min-height:30px!important;max-height:31px!important;font-size:9.5px!important;padding:3px 2px!important}
}
@media screen and (max-width:350px) and (max-height:720px){
 body.v21-calendar-active #calendarPage .day{padding:1px 0!important;gap:0!important}
 body.v21-calendar-active #calendarPage .day.f15c1-day .f15c1-date-row{height:12px!important;min-height:12px!important;max-height:12px!important;flex-basis:12px!important}
 body.v21-calendar-active #calendarPage .day::before{height:8px!important;min-height:8px!important;line-height:8px!important;font-size:7px!important}
 body.v21-calendar-active #calendarPage .day .shift-times{line-height:1.12!important;font-size:7.5px!important}
}

/* BUILD 87 TEST — No redundant flower legend; leaves more space to work times. */
#calendarPage .f15c1-legend{display:none!important;min-height:0!important;height:0!important;margin:0!important;padding:0!important}
@media screen and (max-width:760px){
  /* Vertical reading order: date + flower, shift, time/ROL. Do not clip the last line. */
  body.v21-calendar-active #calendarPage .day{
    padding:2px 1px 3px!important;gap:0!important;
    justify-content:flex-start!important;overflow:hidden!important;
  }
  body.v21-calendar-active #calendarPage .day.f15c1-day .f15c1-date-row{
    order:0!important;height:16px!important;min-height:16px!important;
    max-height:16px!important;flex:0 0 16px!important;overflow:visible!important;
  }
  body.v21-calendar-active #calendarPage .day>.v30-day-number{order:0!important;line-height:16px!important}
  body.v21-calendar-active #calendarPage .day::before{
    order:1!important;display:block!important;flex:0 0 auto!important;
    height:11px!important;min-height:11px!important;max-height:11px!important;
    line-height:11px!important;font-size:clamp(8.5px,2.4vw,10px)!important;
    margin:0!important;padding:0!important;overflow:hidden!important;
  }
  body.v21-calendar-active #calendarPage .day .shift-times{
    order:2!important;display:block!important;flex:0 0 auto!important;
    font-size:clamp(9px,2.65vw,11.5px)!important;font-weight:850!important;
    line-height:1.14!important;min-height:11px!important;
    width:100%!important;margin:1px 0 0!important;
    text-align:center!important;white-space:nowrap!important;
    overflow:hidden!important;text-overflow:clip!important;
    letter-spacing:-.15px!important;
  }
  body.v21-calendar-active #calendarPage .day .shift-times.lmo86-time-split{
    font-size:clamp(9px,2.55vw,10.5px)!important;line-height:1.03!important;
  }
  body.v21-calendar-active #calendarPage .day .shift-times.lmo86-time-split span{line-height:1.04!important}
  body.v21-calendar-active #calendarPage .day .lmo86-more-shifts{order:3!important;font-size:8px!important}
  body.v21-calendar-active #calendarPage .day .mr-day-label{
    order:2!important;flex:0 0 auto!important;align-self:center!important;
    display:block!important;max-width:calc(100% - 4px)!important;
    line-height:1.1!important;font-size:clamp(9px,2.65vw,11px)!important;
    padding:2px 4px!important;margin:1px auto 0!important;box-sizing:border-box!important;
    white-space:nowrap!important;overflow:visible!important;
  }
  body.v21-calendar-active #calendarPage .day:has(.mr-day-label)::before{display:none!important}
  body.v21-calendar-active #calendarPage .day:has(.mr-day-label) .mr-day-label{margin-top:4px!important}
  body.v21-calendar-active #calendarPage .day small:not(.mr-day-label):not(.shift-times){order:3!important}
  body.v21-calendar-active #calendarPage .day:has(.shift-times) .day-hours{display:none!important}
  body.v21-calendar-active #calendarPage .day .lmo77-planned-time{display:none!important}
}
@media screen and (max-width:350px){
 body.v21-calendar-active #calendarPage .day .shift-times{font-size:9px!important}
 body.v21-calendar-active #calendarPage .day .shift-times.lmo86-time-split{font-size:8.8px!important}
 body.v21-calendar-active #calendarPage .day .mr-day-label{font-size:9px!important}
}
/* Quick work/absence entry as a compact modal; main calendar never grows. */
#lmo87QuickDialog[open]{
 position:fixed!important;inset:0!important;left:0!important;top:0!important;
 right:0!important;bottom:0!important;transform:none!important;
 box-sizing:border-box!important;width:min(440px,calc(100vw - 24px))!important;
 max-width:440px!important;height:max-content!important;
 max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px)!important;
 margin:auto!important;padding:0!important;border:1px solid var(--v24-primary,#bf82a1)!important;
 border-radius:17px!important;background:var(--v24-cards,#fff9fc)!important;
 color:var(--v24-card-text,#543649)!important;box-shadow:0 16px 48px #39202d66!important;
 overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;
 z-index:30001!important;
}
#lmo87QuickDialog::backdrop{background:rgba(29,17,27,.52);backdrop-filter:blur(2px)}
#lmo87QuickDialog #leaveRangeCard{display:block!important;box-sizing:border-box!important;
 min-height:0!important;margin:0!important;padding:15px!important;width:100%!important;
 max-width:100%!important;border:0!important;background:transparent!important;
 box-shadow:none!important;overflow:visible!important}
#lmo87QuickDialog #leaveRangeCard[hidden]{display:none!important}
#lmo87QuickDialog .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
#lmo87QuickDialog .panel-heading h3{font-size:18px!important;line-height:1.2!important;margin:0!important}
#lmo87QuickDialog .panel-heading button{min-width:37px!important;min-height:37px!important;padding:4px!important}
#lmo87QuickDialog .leave-range-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0 5px}
#lmo87QuickDialog label{display:block;font-size:14px;font-weight:700;margin:0 0 5px}
#lmo87QuickDialog input{box-sizing:border-box!important;min-width:0!important;width:100%!important;
 font-size:16px!important;min-height:45px!important;padding:8px 5px!important}
#lmo87QuickDialog .muted{font-size:12px!important;line-height:1.35!important}
#lmo87QuickDialog .actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
#lmo87QuickDialog .actions button{min-height:44px!important;font-size:14px!important;padding:9px 6px!important}
#lmo87QuickDialog .notice{font-size:12px!important;line-height:1.35!important}
body.v22-night #lmo87QuickDialog[open]{background:var(--v24-cards,#272330)!important;color:#fcebf5!important;border-color:#997a95!important}
@media(max-width:350px){#lmo87QuickDialog #leaveRangeCard{padding:11px!important}#lmo87QuickDialog .leave-range-grid{gap:5px}}
@media print{#lmo87QuickDialog{display:none!important}}
/* A 320×640 display cannot fit three lines of text inside a 35px day cell.
   Keep the full clock visible and leave the shift name in the upper preview. */
@media screen and (max-width:760px) and (max-height:705px){
  body.v21-calendar-active #calendarPage .day:has(.shift-times)::before{display:none!important;height:0!important;min-height:0!important;max-height:0!important;flex-basis:0!important}
  body.v21-calendar-active #calendarPage .day .shift-times{font-size:clamp(9px,2.9vw,10.5px)!important;min-height:11px!important;margin-top:2px!important}
  body.v21-calendar-active #calendarPage .day.f15c1-day .f15c1-date-row{height:14px!important;min-height:14px!important;max-height:14px!important;flex-basis:14px!important}
  body.v21-calendar-active #calendarPage .day .mr-day-label{margin-top:1px!important;font-size:10px!important}
}
/* Additional 2px breathing room for the last clock digit on 320×640. */
@media screen and (max-width:760px) and (max-height:705px){
  body.v21-calendar-active #calendarPage .day{padding:1px 0 1px!important;gap:0!important}
  body.v21-calendar-active #calendarPage .day.f15c1-day .f15c1-date-row{height:12px!important;min-height:12px!important;max-height:12px!important;flex-basis:12px!important}
  body.v21-calendar-active #calendarPage .day .shift-times{margin:0!important}
  body.v21-calendar-active #calendarPage .day .shift-times.lmo86-time-split span{line-height:1!important}
}
/* Recovery badge has a dedicated bottom strip on dense 6-week calendars.
   Absolute within its own day cell (never over the date or outside the cell). */
@media screen and (max-width:760px){
 body.v21-calendar-active #calendarPage .day.manual-recovery-day:not(:has(.shift-times)){position:relative!important}
 body.v21-calendar-active #calendarPage .day.manual-recovery-day:not(:has(.shift-times)) .mr-day-label{
   position:absolute!important;left:50%!important;bottom:2px!important;top:auto!important;
   transform:translateX(-50%)!important;margin:0!important;padding:0px 5px!important;
   height:14px!important;line-height:12px!important;min-height:0!important;
   box-sizing:border-box!important;font-size:10px!important;z-index:1!important;
 }
}
@media screen and (max-width:350px){
 body.v21-calendar-active #calendarPage .day.manual-recovery-day:not(:has(.shift-times)) .mr-day-label{height:12px!important;line-height:10px!important;font-size:9px!important;bottom:1px!important}
}

/* Build 88 TEST: a landscape browser has insufficient height for a fixed
   six-week calendar. Keep controls reachable by scrolling this view only. */
@media screen and (orientation:landscape) and (max-height:500px) and (max-width:1024px){
 html body.v21-calendar-active #calendarPage{
  overflow-y:auto!important;overflow-x:hidden!important;
  touch-action:pan-y!important;overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
 }
 html body.v21-calendar-active #calendarPage>.card:first-child{
  height:auto!important;min-height:0!important;max-height:none!important;
  flex-shrink:0!important;overflow:visible!important;padding-bottom:12px!important;
 }
}

/* Build 92 TEST · Fase 17B. Fixed cell geometry; explicit readable content.
   Header: date/type/markers. Center: first shift. Footer: existing totals by status. */
@media screen {
 #calendarPage #calendar .day.f17b-cell {
  position:relative!important;display:flex!important;flex-direction:column!important;
  box-sizing:border-box!important;min-width:0!important;
  height:max(62px,var(--lmo86-day-h,62px))!important;
  min-height:max(62px,var(--lmo86-day-h,62px))!important;
  max-height:max(62px,var(--lmo86-day-h,62px))!important;
  padding:2px 1px!important;gap:0!important;overflow:hidden!important;
 }
 #calendarPage #calendar .day.f17b-cell::before {display:none!important;content:none!important}
 #calendarPage #calendar .f17b-cell>.v30-day-number,
 #calendarPage #calendar .f17b-cell>.f15c1-date-row {
  order:0!important;display:block!important;position:static!important;
  height:12px!important;min-height:12px!important;max-height:12px!important;
  flex:0 0 12px!important;line-height:12px!important;margin:0!important;
  width:100%!important;text-align:left!important;overflow:visible!important;
 }
 #calendarPage #calendar .f17b-cell .v30-day-number {
  font-size:11px!important;line-height:12px!important;margin:0 0 0 1px!important;
 }
 #calendarPage #calendar .f17b-type {
  position:absolute;top:2px;left:45%;font-size:11px;line-height:12px;
  font-weight:850;transform:translateX(-50%);margin:0;
 }
 #calendarPage #calendar .f17b-cell .f15c1-marker-slot {
  position:absolute!important;right:1px!important;top:2px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;
  width:10px!important;overflow:visible!important;padding:0!important;gap:1px!important;
 }
 #calendarPage #calendar .f17b-cell .f15c1-flower {
  order:0;flex:0 0 10px!important;width:10px!important;height:10px!important;
  font-size:11px!important;line-height:10px!important;
 }
 #calendarPage #calendar .f17b-cell .note-indicator,
 #calendarPage #calendar .f17b-cell .v31-calendar-mark {
  position:static!important;display:block!important;flex:0 0 9px!important;
  width:10px!important;height:9px!important;font-size:8px!important;line-height:9px!important;
  margin:0!important;transform:none!important;
 }
 #calendarPage #calendar .f17b-cell:not(.f15c1-day)>.note-indicator {position:absolute!important;right:1px!important;top:2px!important}
 #calendarPage #calendar .f17b-cell:not(.f15c1-day)>.v31-calendar-mark {position:absolute!important;right:1px!important;top:12px!important}
 #calendarPage #calendar .f17b-clock {
  order:1;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;
  justify-content:center;align-items:center;width:calc(100% - 11px);margin:0;
  font-size:clamp(9px,2.6vw,11px);font-weight:800;line-height:1.05;
  white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.2px;
 }
 #calendarPage #calendar .f17b-clock>span {display:block;max-width:100%;line-height:1.05}
 #calendarPage #calendar .f17b-cell-absence {
  font-size:8px;overflow:hidden;text-overflow:ellipsis;
 }
 #calendarPage #calendar .f17b-hours {
  order:2;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;
  width:100%;flex:0 0 auto;margin-top:auto;font-size:9px;line-height:10px;
  font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap;
 }
 #calendarPage #calendar .f17b-hours>span {display:block;max-width:100%}
 #calendarPage #calendar .f17b-planned {font-style:italic}
 #calendarPage #calendar .f17b-more {
  position:absolute;right:0;top:33px;font-size:8px;line-height:10px;font-weight:850;
 }
 #calendarPage #calendar .f17b-cell>small {order:1;margin:auto 0!important;max-width:100%;overflow-wrap:anywhere}
 #calendarPage #calendar .f17b-has-shifts>.mr-day-label {position:absolute;left:0;top:15px;margin:0!important;font-size:8px!important}
 #calendarPage .f17b-cell-legend {font-size:10px;line-height:1.25;margin:3px 0;overflow-wrap:anywhere}
 /* Tall enough text is retained on short phones; the existing viewport scrolls vertically. */
 body.v21-calendar-active #appShell #calendarPage {
  overflow-y:auto!important;overflow-x:hidden!important;touch-action:pan-y!important;
  overscroll-behavior:contain!important;scrollbar-width:none;
 }
 body.v21-calendar-active #appShell #calendarPage::-webkit-scrollbar {display:none}
}
@media screen {
 #calendarPage #calendar .f17b-cell:not(:has(.note-indicator,.v31-calendar-mark,.f15c1-flower)) .f17b-clock {width:100%}
 #calendarPage #calendar .f17b-cell:not(:has(.note-indicator,.v31-calendar-mark,.f15c1-flower)) .f17b-more {top:2px}
 #calendarPage #calendar .f17b-cell .f15c1-marker-slot {gap:0!important}
 #calendarPage #calendar .f17b-cell .f15c1-marker-slot .note-indicator,
 #calendarPage #calendar .f17b-cell .f15c1-marker-slot .v31-calendar-mark {height:8px!important;flex-basis:8px!important;line-height:8px!important}
 #calendarPage #calendar .f17b-more {top:29px;line-height:8px}
}

/* Build96: show the existing estimated interval clearly in the Today tile. */
#v22HomeCore #f15b-cycleToday .f15b-detail{white-space:pre-line}

/* Build97: the day's estimated status immediately below its date. */
#v22HomeCore #f15b-cycleToday .f97-fertile-state{display:block;font-size:12px;line-height:1.25;font-weight:800;margin:0 0 4px;letter-spacing:normal}
