/* Small-screen layout shared by the Canopée pages. Desktop and print stay unchanged. */
.mobile-menu-button, .mobile-work-actions, .mobile-quote-actions { display: none; }

@media (max-width: 720px) {
  body { overflow-wrap: break-word; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px; }
  button, .button, summary { touch-action: manipulation; }
  :focus-visible { outline: 3px solid #8dc331; outline-offset: 2px; }

  .page-pilotage .app-header, .page-intervention .app-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .7rem;
    padding: .7rem 1rem;
  }
  .page-pilotage .app-header .brand, .page-intervention .app-header .brand { min-width: 0; }
  .page-pilotage .app-header .brand small, .page-intervention .app-header .brand small { font-size: .62rem; }
  .mobile-menu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .5rem .8rem;
    border: 1px solid #8eb8a4;
    border-radius: .65rem;
    background: #194f3e;
    color: #fff;
    font: inherit;
    font-size: .88rem;
    font-weight: 800;
  }
  .mobile-menu-button[aria-expanded="true"] { background: #b6e64a; color: #0d3b2e; border-color: #b6e64a; }
  .page-pilotage .app-header .head-actions, .page-intervention .app-header .header-actions {
    display: none;
    grid-column: 1 / -1;
    width: 100%;
    padding: .75rem 0 .2rem;
    border-top: 1px solid #477564;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
  }
  .page-pilotage .app-header .head-actions.is-open, .page-intervention .app-header .header-actions.is-open { display: grid; }
  .page-pilotage .app-header .head-actions .button, .page-intervention .app-header .header-actions .button { width: 100%; min-height: 2.8rem; text-align: center; }
  .page-pilotage .app-header .head-actions .local-state { grid-column: 1 / -1; white-space: normal; }
  .page-pilotage #newQuoteTop { grid-column: 1 / -1; }
  .page-pilotage .layout, .page-intervention .layout { padding: 1rem .8rem 2rem; }
  .page-pilotage .hero, .page-intervention .title-row { gap: .8rem; margin-bottom: 1rem; }
  .page-pilotage .hero h1, .page-intervention .title-row h1 { font-size: clamp(1.55rem, 7vw, 2rem); line-height: 1.12; }
  .page-pilotage .hero .local-state, .page-intervention .draft-status { white-space: normal; border-radius: .65rem; }
  .page-pilotage .main-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .4rem;
    overflow: visible;
  }
  .page-pilotage .main-nav button { min-width: 0; min-height: 2.8rem; padding: .48rem .25rem; font-size: .79rem; line-height: 1.15; text-align: center; }
  .page-pilotage .card { min-width: 0; padding: .9rem; }
  .page-pilotage .card-head { flex-wrap: wrap; }
  .page-pilotage .card-head > .button { min-height: 2.75rem; }
  .page-pilotage .record { min-width: 0; padding: .85rem; }
  .page-pilotage .record > * { min-width: 0; }
  .page-pilotage .record-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; width: 100%; }
  .page-pilotage .record-actions .button { width: 100%; min-height: 2.65rem; }
  .page-pilotage .quote-record-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-pilotage .quote-steps, .page-intervention .wizard-nav { scroll-snap-type: x proximity; scrollbar-width: thin; }
  .page-pilotage .quote-step-tab, .page-intervention .step-tab { scroll-snap-align: center; min-height: 3rem; }
  .page-pilotage .quote-head, .page-pilotage .quote-step, .page-pilotage .quote-footer { padding-left: .9rem; padding-right: .9rem; }
  .page-pilotage .quote-footer .actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .page-pilotage .quote-footer .actions .button { min-height: 2.75rem; width: 100%; }
  .page-pilotage #quotes.active { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
  .page-pilotage #quotes.active .mobile-quote-actions {
    display: block;
    position: fixed;
    z-index: 8;
    left: 0;
    right: 0;
    bottom: 0;
    padding: .6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
    border-top: 1px solid #cbdccb;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -8px 25px rgba(13,59,46,.1);
  }
  .page-pilotage .mobile-quote-actions .button { width: 100%; min-height: 2.8rem; }
  .page-pilotage .pricing-options, .page-pilotage .choice-grid { grid-template-columns: 1fr; }
  .page-pilotage .pricing-option { grid-template-columns: auto minmax(0, 1fr) 5rem; }
  .page-pilotage .quote-list-toolbar select { width: 100%; }
  .page-pilotage .calendar-grid button { min-height: 2.9rem; position: relative; }
  .page-pilotage .calendar-grid small { display: block; position: absolute; right: .2rem; bottom: .1rem; margin: 0; font-size: .64rem; color: #175844; }
  .page-pilotage .calendar-actions .button { min-height: 2.75rem; }
  .page-pilotage .calendar-selection #calendarDayEvents { display: grid; }
  .page-pilotage .calendar-selection #calendarDayEvents p { line-height: 1.5; }
  .page-pilotage .preview-grid { grid-template-columns: minmax(5.5rem, 36%) minmax(0, 1fr); }
  .page-pilotage .preview-line { flex-wrap: wrap; }
  .page-pilotage .welcome-gate { min-height: 100dvh; padding: 1rem; }
  .page-pilotage .welcome-main { margin-top: 2rem; gap: 1.4rem; }
  .page-pilotage .welcome-copy h1 { font-size: clamp(2.15rem, 10vw, 3rem); }
  .page-pilotage .welcome-preview { padding: 1.2rem; }
  .page-pilotage .welcome-actions .button { min-height: 2.8rem; }
  .page-pilotage .auth-popover { align-items: end; padding: .5rem; }
  .page-pilotage .auth-dialog { width: 100%; max-height: calc(100dvh - 1rem); overflow-y: auto; border-radius: 1rem 1rem .7rem .7rem; }

  .page-intervention .header-actions #saveDraft, .page-intervention .header-actions #printSheet { grid-column: 1 / -1; }
  .page-intervention .header-actions #clearDraft { grid-column: 1 / -1; border-color: #e6bcb5; color: #a32b21; background: #fff5f3; }
  .page-intervention .work-grid { gap: 1rem; }
  .page-intervention .summary-panel { order: 2; }
  .page-intervention .wizard-nav { gap: .4rem; }
  .page-intervention .step-tab { min-width: 7.5rem; }
  .page-intervention .form-footer, .page-intervention .register-head { flex-direction: column; align-items: stretch; }
  .page-intervention .form-footer .nav-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-intervention .form-footer .nav-buttons .button { min-height: 2.8rem; }
  .page-intervention .record-card { grid-template-columns: 1fr; }
  .page-intervention .record-card .button { min-height: 2.8rem; }
  .page-intervention .record-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-intervention .register-body, .page-intervention .register-head { padding-left: .9rem; padding-right: .9rem; }
  .page-intervention .equipment-choice { grid-template-columns: 1.1rem minmax(0, 1fr); }
  .page-intervention .equipment-choice .quantity-input { grid-column: 2; grid-row: 2; justify-content: start; }
  .page-intervention .quantity-input input { width: 4rem; min-height: 2.55rem; }
  .page-intervention .sketch-actions { flex-wrap: wrap; }
  .page-intervention .mobile-work-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .55rem;
    position: fixed;
    z-index: 8;
    left: 0;
    right: 0;
    bottom: 0;
    padding: .6rem max(.8rem, env(safe-area-inset-right)) calc(.6rem + env(safe-area-inset-bottom));
    border-top: 1px solid #cbdccb;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -8px 25px rgba(13,59,46,.1);
  }
  .page-intervention .mobile-work-actions .button { min-height: 2.8rem; }
  .page-intervention .layout { padding-bottom: calc(6rem + env(safe-area-inset-bottom)); }
  .page-intervention.access-pending .mobile-work-actions { display: none; }

  .page-inventory header { padding: .7rem 1rem; }
  .page-inventory header a:last-child { min-height: 2.75rem; display: inline-flex; align-items: center; }
  .page-inventory main { padding: 1.1rem .8rem 2.5rem; }
  .page-inventory .card { padding: .9rem; min-width: 0; }
  .page-inventory .toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-inventory #categoryFilter, .page-inventory #personFilter, .page-inventory #search { max-width: none !important; min-width: 0; }
  .page-inventory #search, .page-inventory #printEpi { grid-column: 1 / -1; }
  .page-inventory .button { min-height: 2.75rem; }
  .page-inventory .row > div:first-child { min-width: 0; overflow-wrap: anywhere; }
  .page-inventory .row .actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .page-inventory .row .actions .button { padding: .55rem .4rem; }

  .page-subscription header { flex-wrap: wrap; padding: .7rem 1rem; }
  .page-subscription header .actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
  .page-subscription header .button { min-height: 2.8rem; padding: .55rem .5rem; text-align: center; font-size: .82rem; }
  .page-subscription .card { min-width: 0; padding: 1rem; }
  .page-subscription .list li, .page-subscription .amount { flex-wrap: wrap; }
  .page-account .header { padding: .7rem 1rem; }
  .page-account .header .button { min-height: 2.75rem; }
  .page-account main { width: min(100% - 1.6rem, 720px); }
  .page-account .actions .button { flex: 1 1 100%; }
  .page-booking .booking { width: calc(100% - 1rem); margin: .7rem auto 2rem; }
  .page-booking .progress-head, .page-booking .step, .page-booking .booking-footer { padding-left: 1rem; padding-right: 1rem; }
  .page-booking .progress-label { flex-wrap: wrap; gap: .3rem; }
  .page-booking .slot-days, .page-booking .slot-weekdays { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .page-booking .day { min-width: 0; min-height: 2.8rem; }
  .page-booking .booking-footer .actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .page-booking .booking-footer .button { min-height: 2.8rem; }
}

@media (max-width: 370px) {
  .page-pilotage .metric-grid { grid-template-columns: 1fr 1fr; }
  .page-inventory .toolbar { grid-template-columns: 1fr; }
  .page-inventory .toolbar > * { grid-column: 1 / -1; }
}

@media print { .mobile-menu-button, .mobile-work-actions, .mobile-quote-actions { display: none !important; } }
