@layer stip-calendar-core, stip-calendar-visual;
@import url("stip-theme-base.css?v=20260925-event-icons2");
@import url("stip-patterns.css?v=20260925-calendar-base2");
@import url("stip-calendar-core.css?v=20260925-calendar-raw4") layer(stip-calendar-core);
@import url("stip-calendar-visual.css?v=20260925-calendar-common3") layer(stip-calendar-visual);

/* IRM stable rendering: keep one guaranteed frame even if the <img> cache fails. */
#detailView .detail-hero.irm-card{padding:0!important;min-height:0!important;height:auto!important;overflow:hidden!important;background:#fff!important;border:1px solid var(--stip-line)!important;box-shadow:var(--stip-shadow)!important}
#detailView .detail-hero.irm-card .irm-visual{position:relative!important;display:block!important;width:100%!important;min-height:0!important;aspect-ratio:3/2!important;overflow:hidden!important;background-color:#0b2539!important;background-image:url("images/irm/irm-header.jpg?v=20260831-irm-stable1")!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
#detailView .detail-hero.irm-card .irm-visual>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;opacity:0!important;pointer-events:none!important}
#detailView .detail-hero.irm-card .irm-visual:after{content:""!important;display:block!important;position:absolute!important;inset:auto 0 0!important;height:30%!important;background:linear-gradient(180deg,rgba(4,20,33,0),rgba(4,20,33,.58))!important;pointer-events:none!important}
#detailView .detail-hero.irm-card .irm-title-overlay{position:absolute!important;z-index:2!important;left:18px!important;right:18px!important;bottom:16px!important;padding:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.95)!important}
#detailView .detail-hero.irm-card .irm-subtitles{padding:14px 18px 16px!important;background:#fff!important}
#detailView .detail-hero.irm-card .irm-subtitles p{margin:0!important;color:#466a76!important;text-shadow:none!important;font-size:.8rem!important;line-height:1.4!important;font-weight:750!important}
#detailView .detail-hero.irm-card .irm-subtitles p+p{margin-top:5px!important}
@media(max-width:430px){#detailView .detail-hero.irm-card .irm-title-overlay{left:16px!important;right:16px!important;bottom:14px!important}}

/* Places geographic navigation V7
   One semantic order for every screen. Layout may adapt; sequence never changes. */
#homeView>.group.parking{display:none!important}
#homeView .geo-navigation{margin-top:26px}
/* Keep one sober separator and suppress inherited decorative markers. */
#homeView .geo-navigation:before,#homeView .geo-navigation:after,#homeView .geo-navigation>.group-head:after{display:none!important;content:none!important}
#homeView .geo-navigation>.group-head{display:flex!important;margin:0 2px 12px!important;padding-top:20px!important;border-top:2px solid #a8c0c8!important;position:relative!important}
#homeView .geo-navigation>.group-head:before{display:none!important;content:none!important}
#homeView .geo-sweep{display:grid!important;gap:12px!important}
#homeView .geo-north,#homeView .geo-middle{display:grid!important;gap:10px!important}
#homeView .geo-major-list{display:grid!important;gap:10px!important}
#homeView .geo-major-list>.destination.primary{min-width:0!important}
#homeView .geo-major-list>.between-zone{margin-top:0!important}
#homeView .geo-hfme{margin-top:4px!important;padding-top:12px!important;border-top:1px solid #d8e5e9!important}
#homeView .geo-hfme:before,#homeView .geo-hfme:after{display:none!important;content:none!important}
#homeView .geo-middle .home-card{min-width:0!important}
/* Current official GHE plans show A1, not B1. */
#homeView .home-card[href="#/place/b1"]{display:none!important}

@media(min-width:700px){
  #homeView .geo-north{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #homeView .geo-major-list{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr)!important;align-items:stretch!important}
  #homeView .geo-major-list>.between-zone{padding-top:20px!important}
  #homeView .geo-major-list .between-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #homeView .geo-middle{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #homeView .geo-hfme{width:100%!important}
}

/* Mobile readability: enlarge intelligently without clipping or losing information. */
@media(max-width:560px){
  #homeView .group-title,#detailView .service-guide-title,#detailView .internal-divider,#detailView .internal-subtitle{font-size:.82rem!important;line-height:1.35!important;letter-spacing:.075em!important}
  #homeView .group-note,#homeView .search-help,#detailView .contact-scope,#detailView .service-audience-note,#detailView .internal-contact-scope{font-size:.78rem!important;line-height:1.45!important}

  #homeView .destination.primary,#homeView .map-mini,#homeView .home-card,#detailView .way-card,#homeView .search-result-card{height:auto!important;min-height:78px!important;overflow:visible!important}
  #homeView .destination.primary .destination-main{align-items:center!important;padding:14px 12px!important}
  #homeView .destination.primary .destination-copy{min-width:0!important}
  #homeView .destination.primary .destination-copy strong{font-size:1.05rem!important;line-height:1.25!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
  #homeView .destination.primary .destination-copy span{font-size:.86rem!important;line-height:1.42!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}

  #homeView .geo-north,#homeView .geo-middle,#homeView .geo-major-list{grid-template-columns:1fr!important}
  #homeView .map-direction{display:none!important}
  #homeView .campus-axis{position:relative!important;margin-top:0!important;padding:10px!important;border:1px solid #c8dce0!important;border-radius:18px!important;background:#f8fbfc!important;box-shadow:0 7px 18px rgba(18,59,75,.045)!important}
  #homeView .between-label{position:static!important;display:block!important;transform:none!important;margin:0 0 9px!important;width:max-content!important;max-width:100%!important;white-space:normal!important;font-size:0!important;line-height:1.3!important}
  #homeView .between-label:after{content:"Passerelle · entre Neuro et Cardio";font-size:.8rem!important;line-height:1.3!important}
  #homeView .between-zone{padding-top:0!important;margin-top:0!important}
  #homeView .between-zone:before{display:none!important}
  #homeView .between-grid{grid-template-columns:1fr!important;gap:8px!important}
  #homeView .map-mini{padding:12px 13px!important;gap:10px!important}
  #homeView .map-mini strong{font-size:.98rem!important;line-height:1.28!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #homeView .map-mini .home-code{flex:0 0 auto!important}

  #homeView .home-card,#detailView .way-card{grid-template-columns:minmax(0,1fr) 52px!important}
  #homeView .home-main,#detailView .way-copy{padding:14px!important;min-width:0!important}
  #homeView .home-titleline{align-items:flex-start!important;flex-wrap:wrap!important;gap:8px!important}
  #homeView .home-main strong,#detailView .way-copy strong{font-size:1.02rem!important;line-height:1.3!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
  #homeView .home-main small,#detailView .way-copy span{font-size:.84rem!important;line-height:1.45!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important}
  #homeView .home-code{min-width:40px!important;height:34px!important;font-size:.76rem!important}

  #homeView .search-result-card{grid-template-columns:minmax(0,1fr) 44px!important}
  #homeView .search-result-card strong{font-size:.98rem!important;line-height:1.3!important;padding:12px 12px 3px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #homeView .search-result-card small{font-size:.8rem!important;line-height:1.42!important;padding:0 12px 12px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #homeView .search-building-title{font-size:.86rem!important;line-height:1.35!important}
  #homeView .search-floor-label,#detailView .floor-link{font-size:.8rem!important;line-height:1.2!important;min-height:34px!important}

  #detailView .detail-back,#detailView .nav-btn{font-size:.88rem!important;line-height:1.3!important;min-height:44px!important}
  #detailView .breadcrumb{font-size:.82rem!important;line-height:1.45!important}
  #detailView .detail-type{font-size:.76rem!important;line-height:1.35!important}
  #detailView .detail-official{font-size:1.02rem!important;line-height:1.4!important}
  #detailView .detail-meta,#detailView .detail-hero p{font-size:.9rem!important;line-height:1.5!important}
  #detailView .info-card h2,#detailView .guide-block h2,#detailView .service-intro h2,#detailView .service-app-intro h2,#detailView .service-app-section>h2{font-size:1.02rem!important;line-height:1.3!important}
  #detailView .info-card p,#detailView .service-intro p,#detailView .guide-value,#detailView .guide-placeholder,#detailView .internal-zone>p{font-size:.86rem!important;line-height:1.55!important}
  #detailView .fact strong,#detailView .completion-row strong,#detailView .internal-card h3{font-size:.88rem!important;line-height:1.35!important}
  #detailView .fact span,#detailView .internal-card-empty{font-size:.8rem!important;line-height:1.48!important}
  #detailView .route-step span{font-size:.84rem!important;line-height:1.55!important}
  #detailView .service-app-card{min-height:0!important;height:auto!important;padding:14px!important}
  #detailView .service-app-card strong{font-size:.96rem!important;line-height:1.3!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #detailView .service-app-card span{font-size:.82rem!important;line-height:1.45!important;white-space:normal!important;overflow-wrap:anywhere!important}
  #detailView .service-app-grid{grid-template-columns:1fr!important}

  /* HFME west -> east reference: Vert, Bleu, Rose, Orange. */
  #detailView .floor-body{padding-right:4px!important}
  #homeView *,#detailView *{text-overflow:clip}
}

/* HFME room headers — image only when the room has a confirmed, unambiguous service owner.
   No image is inferred from the room number itself. Ambiguous/mixed services stay neutral. */
#detailView:not(:has(.room-owner-state .completion-badge.missing)):has(
  .room-owner-link[href="#/place/hfme_acha_ped"],
  .room-owner-link[href="#/place/hfme_ped_surg"],
  .room-owner-link[href="#/place/hfme_surg_centre"],
  .room-owner-link[href="#/place/hfme_surg_est"],
  .room-owner-link[href="#/place/hfme_surg_ouest"],
  .room-owner-link[href="#/place/hfme_ped_icu"],
  .room-owner-link[href="#/place/hfme_hepato"],
  .room-owner-link[href="#/place/hfme_neonat"],
  .room-owner-link[href="#/place/hfme_ped_general_l3"],
  .room-owner-link[href="#/place/hfme_pulmo_allergy"],
  .room-owner-link[href="#/place/hfme_ped_endo"],
  .room-owner-link[href="#/place/hfme_ped_general"],
  .room-owner-link[href="#/place/hfme_dialysis"],
  .room-owner-link[href="#/place/hfme_ped_functional_l5"],
  .room-owner-link[href="#/place/hfme_nephro_rheum_derm"],
  .room-owner-link[href="#/place/hfme_neurology"],
  .room-owner-link[href="#/place/hfme_ped_special"],
  .room-owner-link[href="#/place/hfme_hemato_onco_consult"],
  .room-owner-link[href="#/place/hfme_child_psych"],
  .room-owner-link[href="#/place/hfme_cardio_consult"],
  .room-owner-link[href="#/place/hfme_neonat_consult"],
  .room-owner-link[href="#/place/hfme_ped_explorations_rdc"],
  .room-owner-link[href="#/place/hfme_ped_consult"],
  .room-owner-link[href="#/place/hfme_esefnp"],
  .room-owner-link[href="#/place/hfme_ped_er_hosp"],
  .room-owner-link[href="#/place/hfme_uhcd"],
  .room-owner-link[href="#/place/hfme_ped_er"],
  .room-owner-link[href="#/place/hfme_uaped"]
) .detail-hero{
  background-color:#214c68!important;
  background-image:linear-gradient(rgba(9,43,61,.34),rgba(9,43,61,.34)),url("images/hfme-couleur-cote-enfant.png?v=20260902-roomside1")!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  text-shadow:0 2px 7px rgba(0,0,0,.42)!important;
}

/* Shared mobile usability fixes */
.access-request-dialog{
  overflow:auto!important;
  overscroll-behavior:contain;
}

@media(max-width:430px){
  .hc-week-nav{
    grid-template-columns:32px auto 32px!important;
    gap:3px!important;
  }
  .hc-week-nav button{
    width:32px!important;
    height:32px!important;
  }
  .hc-week-nav b{font-size:.62rem!important}
  .hc-days-seven .hc-day{
    min-height:93px;
    grid-template-rows:21px 25px 29px 18px!important;
  }
  .hc-days-seven .hc-day>i{font-size:.52rem!important}
  .hc-days-seven .hc-day>b{font-size:1.05rem!important}
  .hc-days-seven .hc-day>.hc-week-visual{
    height:29px!important;
    min-height:29px!important;
  }
  .hc-week-code{font-size:.55rem!important}
  .hc-days-seven .hc-day>.hc-shift-time{
    min-height:16px!important;
    font-size:.5rem!important;
    line-height:1.15!important;
  }
  .hc-month-open{margin:0 0 8px!important}
}

#detailView:not(:has(.room-owner-state .completion-badge.missing)):has(
  .room-owner-link[href="#/place/hfme_maternity"],
  .room-owner-link[href="#/place/hfme_gyn"],
  .room-owner-link[href="#/place/hfme_gyn_a_hdj"],
  .room-owner-link[href="#/place/hfme_gyn_b_acha"],
  .room-owner-link[href="#/place/hfme_a2_obstetric_l5"],
  .room-owner-link[href="#/place/hfme_orthogeny"],
  .room-owner-link[href="#/place/hfme_repro"],
  .room-owner-link[href="#/place/hfme_path_preg"],
  .room-owner-link[href="#/place/hfme_birth"],
  .room-owner-link[href="#/place/hfme_gyn_er"],
  .room-owner-link[href="#/place/hfme_gyn_anesthesia"],
  .room-owner-link[href="#/place/hfme_cpdph"],
  .room-owner-link[href="#/place/hfme_gyn_consult"],
  .room-owner-link[href="#/place/hfme_diag_antenatal"],
  .room-owner-link[href="#/place/hfme_breast_gyn_imaging"],
  .room-owner-link[href="#/place/hfme_cecos"],
  .room-owner-link[href="#/place/hfme_senology"],
  .room-owner-link[href="#/place/hfme_preg_followup"]
) .detail-hero{
  background-color:#9b526b!important;
  background-image:linear-gradient(rgba(62,29,44,.28),rgba(62,29,44,.28)),url("images/hfme-couleur-cote-femme.png?v=20260902-roomside1")!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  background-size:cover!important;
  text-shadow:0 2px 7px rgba(0,0,0,.42)!important;
}


/* Canonical indicator-intelligence typography — 20260924 */
:where(
  .rs-day-point,
  .rs-shift-proposal,
  .rs-decision,
  .team-day-check,
  .team-week-check,
  .team-day-advice,
  .team-shift-analysis-block,
  .team-shift-analysis-proposal,
  .staffing-line,
  .op-rec
){
  overflow-wrap:anywhere;
}
:where(
  .rs-day-point,
  .rs-shift-proposal,
  .rs-decision,
  .team-day-check,
  .team-week-check,
  .team-day-advice,
  .team-shift-analysis-block,
  .team-shift-analysis-proposal,
  .staffing-line,
  .op-rec
) strong{
  display:block!important;
  color:var(--stip-ink,#173f49)!important;
  font-size:.92rem!important;
  line-height:1.28!important;
  font-weight:950!important;
  letter-spacing:.025em!important;
  text-transform:uppercase!important;
}
:where(
  .rs-day-point,
  .rs-decision,
  .team-day-check,
  .team-week-check,
  .team-day-advice,
  .team-shift-analysis-block,
  .team-shift-analysis-proposal,
  .staffing-line,
  .op-rec
) p,
.staffing-line>span,
.rs-shift-proposal>span{
  display:block!important;
  margin-top:6px!important;
  color:var(--stip-ink-2,#526d74)!important;
  font-size:.86rem!important;
  line-height:1.52!important;
  font-weight:720!important;
  white-space:normal!important;
}
:where(
  .rs-day-point,
  .rs-decision,
  .staffing-line
) small{
  display:block!important;
  margin-top:8px!important;
  padding-top:7px!important;
  border-top:1px solid color-mix(in srgb,var(--stip-ink,#173f49) 9%,transparent)!important;
  color:var(--stip-muted,#697f85)!important;
  font-size:.8rem!important;
  line-height:1.48!important;
  font-weight:760!important;
  white-space:normal!important;
}
.rs-shift-verdict strong,
.team-shift-analysis-sheet>header strong{
  font-size:1rem!important;
  line-height:1.25!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:.02em!important;
}
.rs-shift-verdict small,
.team-shift-analysis-sheet>header small{
  display:block!important;
  margin-top:4px!important;
  font-size:.82rem!important;
  line-height:1.35!important;
  white-space:normal!important;
}
.team-shift-analysis-stats small{
  font-size:.66rem!important;
  line-height:1.25!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
}
.team-shift-analysis-tags b{
  display:block!important;
  font-size:.84rem!important;
  line-height:1.3!important;
  text-transform:uppercase!important;
  letter-spacing:.025em!important;
}
.team-shift-analysis-tags small{
  display:block!important;
  margin-top:4px!important;
  font-size:.78rem!important;
  line-height:1.45!important;
  white-space:normal!important;
}
.rs-day-point,
.team-day-check,
.team-week-check,
.staffing-line,
.team-shift-analysis-block,
.team-shift-analysis-proposal,
.rs-shift-proposal{
  padding-top:12px!important;
  padding-bottom:12px!important;
}
@media(max-width:430px){
  :where(
    .rs-day-point,
    .rs-shift-proposal,
    .rs-decision,
    .team-day-check,
    .team-week-check,
    .team-day-advice,
    .team-shift-analysis-block,
    .team-shift-analysis-proposal,
    .staffing-line,
    .op-rec
  ) strong{font-size:.9rem!important}
  :where(
    .rs-day-point,
    .rs-decision,
    .team-day-check,
    .team-week-check,
    .team-day-advice,
    .team-shift-analysis-block,
    .team-shift-analysis-proposal,
    .staffing-line,
    .op-rec
  ) p,
  .staffing-line>span,
  .rs-shift-proposal>span{font-size:.84rem!important}
  :where(.rs-day-point,.rs-decision,.staffing-line) small{font-size:.79rem!important}
}
