/* Mobile presentation fixes. No availability, status or persistence rules. */
.sidebar-link > span:last-child, .mobile-drawer-menu a > span:last-child {
  white-space: normal !important; text-overflow: clip !important; overflow: visible !important; height: auto !important; max-height: none !important; overflow-wrap: break-word; line-height: 1.4;
}
@media (max-width: 600px) {
  body:has(.app-shell) { padding-bottom: calc(var(--layout-panel-nav-height, 84px) + 20px) !important; }
  .app-shell .content-area { padding-bottom: 24px !important; min-width: 0; }
  .app-shell .mobile-topbar-title, .app-shell .enterprise-title, .app-shell .enterprise-header > div,
  .app-shell .calendar-topline > div { min-width: 0 !important; }
  .app-shell :is(.enterprise-title, .enterprise-header, .page-toolbar, .mobile-topbar-title, .calendar-topline) :is(p, span) {
    white-space: normal !important; text-overflow: clip !important; overflow: visible !important; -webkit-line-clamp: unset !important; max-width: 100% !important; line-height: 1.45 !important;
  }
  .app-shell .mobile-topbar-title { max-width: none !important; }
  .app-shell :is(.metric-grid, .mobile-dashboard) { grid-template-columns: repeat(2, minmax(0,1fr)) !important; gap: 10px !important; }
  .app-shell :is(.metric-grid, .mobile-dashboard) > * { min-width: 0 !important; grid-column: auto !important; }
  .app-shell :is(.metric-grid, .mobile-dashboard) > :last-child:nth-child(odd) { grid-column: 1 / -1 !important; }
  .app-shell .metric-card { min-height: 112px !important; }
  .app-shell .metric-card > span { font-size: 12px !important; white-space: normal !important; line-height: 1.4; }
  .app-shell .metric-card::after {
    content: ""; width: 24px; height: 24px; border-radius: 0; background: #105447 !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' d='M4 4v16h16M8 15v-4m5 4V7m5 8v-6'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' d='M4 4v16h16M8 15v-4m5 4V7m5 8v-6'/%3E%3C/svg%3E") center/contain no-repeat;
  }
  .app-shell .metric-card.is-primary::after { background: #fff !important; }
  /* Quick create stays in document flow instead of covering badges or appointments. */
  body .mobile-fab { position: relative !important; inset: auto !important; display: flex !important; justify-content: flex-end; width: auto !important; margin: 16px 0 8px !important; z-index: 35 !important; }
  body .mobile-fab-toggle { width: auto !important; min-width: 104px !important; min-height: 48px !important; height: auto !important; padding: 12px 18px !important; font-size: 16px !important; border-radius: 12px !important; }
  body .mobile-fab-menu { bottom: calc(100% + 8px) !important; right: 0 !important; }
  body:has(.module-agenda) .calendar-mobile-new { position: static !important; inset: auto !important; display: flex !important; width: 100% !important; min-height: 48px !important; height: auto !important; margin: 12px 0 !important; font-size: 16px !important; border-radius: 12px !important; }
  body:has(.module-agenda) .calendar-mobile-new::before, body:has(.module-agenda) .calendar-mobile-new::after { content: none !important; }
  .mobile-bottom-nav { grid-template-columns: repeat(auto-fit,minmax(48px,1fr)) !important; gap: 2px !important; }
  .mobile-bottom-nav > a, .mobile-bottom-nav > button { min-width: 0 !important; min-height: 48px !important; padding: 6px 1px !important; font-size: 10.5px !important; white-space: nowrap; }
  .mobile-bottom-nav > a, .mobile-bottom-nav > button { white-space: normal !important; }
  .mobile-bottom-nav > a > span:last-child, .mobile-bottom-nav > button > span:last-child { display: block !important; font-size: 10px !important; line-height: 1.15 !important; white-space: normal !important; overflow-wrap: anywhere; }
  .module-agenda .calendar-alert-strip { flex-wrap: wrap !important; overflow: visible !important; margin: 0 !important; padding: 0 !important; gap: 8px !important; }
  .module-agenda .calendar-alert-chip { flex: 1 1 calc(50% - 8px) !important; min-width: 0 !important; min-height: 44px !important; justify-content: center; box-sizing: border-box; }
  .module-agenda .calendar-alert-chip span { white-space: normal !important; font-size: 12px !important; overflow: visible !important; text-overflow: clip !important; }
  .module-agenda .calendar-week-scroll { max-height: none !important; height: auto !important; overflow: visible !important; }
  .module-agenda .calendar-time-axis-head, .module-agenda .calendar-time-day-head { position: static !important; }
  .module-clientes [data-client-details] .section-inline-head { display: flex !important; flex-wrap: wrap; gap: 12px; align-items: flex-start; }
  .module-clientes [data-client-details] h1 { display: block !important; font-size: 24px !important; line-height: 1.25; margin: 0; overflow-wrap: break-word; }
  .module-clientes [data-client-details] .btn { display: inline-flex !important; min-height: 44px !important; font-size: 14px !important; }
  .module-clientes [data-client-details] .module-section { display: block !important; min-height: 0 !important; height: auto !important; padding: 16px !important; }
  .module-clientes [data-client-details] .record-card { display: block !important; min-height: 0 !important; height: auto !important; padding: 12px !important; margin: 10px 0 0 !important; }
  .module-clientes [data-client-details] :is(h2,h3,p) { margin: 0 0 8px; }
  .module-clientes .client-detail-data { margin: 0; padding: 0; display: grid; gap: 14px; }
  .module-clientes .client-detail-data > div { display: grid; gap: 3px; }
  .module-clientes .client-detail-data dt { font-weight: 700; font-size: 14px; }
  .module-clientes .client-detail-data dd { margin: 0; padding: 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
  .module-clientes .clients-search-box { display: flex !important; gap: 8px !important; min-height: 48px !important; padding: 0 12px !important; }
  .module-clientes .clients-search-box svg { width: 20px; flex: 0 0 20px; }
  .module-clientes .clients-search-box input[data-client-filter] { flex: 1 1 0 !important; width: 0 !important; min-width: 0 !important; min-height: 46px !important; margin: 0 !important; padding: 10px 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important; font-size: 16px !important; }
  .module-clientes :is(.record-meta,.clients-recent-item span,.record-card .pill) { font-size: 14px !important; line-height: 1.45 !important; }
  .module-clientes .record-card h3 { font-size: 16px !important; }
  .module-clientes .record-actions { display: flex !important; flex-wrap: nowrap !important; gap: 6px !important; }
  .module-clientes .record-actions > :is(a,form) { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; margin: 0 !important; }
  .module-clientes .record-actions .btn { display: inline-flex !important; align-items: center; justify-content: center; min-height: 44px !important; width: 100% !important; padding: 9px 5px !important; font-size: 14px !important; white-space: nowrap !important; }
  .module-catalogo .catalog-summary-strip { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 10px !important; }
  .module-catalogo .catalog-summary-strip > div { min-width: 0 !important; }
  .module-catalogo .catalog-summary-strip > div:last-child { grid-column: 1 / -1; }
  .module-catalogo .catalog-summary-strip strong { white-space: normal !important; font-size: 20px !important; line-height: 1.3 !important; }
  .module-catalogo .catalog-card :is(.btn,summary,button) { min-height: 44px !important; padding: 10px 12px !important; box-sizing: border-box; }
  .module-operacoes .operations-toolbar { display: flex !important; flex-wrap: wrap !important; align-items: center; gap: 14px !important; }
  .module-operacoes .operation-filter-select { flex: 1 1 100%; min-height: 44px; margin-bottom: 4px; }
  .module-operacoes .operations-count { display: block !important; padding: 4px 0; font-size: 14px !important; }
  .module-operacoes :is(.operations-workbench,.module-section,.service-queue) { min-height: 0 !important; height: auto !important; align-content: start !important; }
  .module-operacoes .service-queue { padding-bottom: 0 !important; }
  .module-operacoes .service-queue:has(>[hidden]) { grid-auto-rows: max-content; }
  .module-operacoes .empty-state { min-height: 0 !important; padding: 24px 16px !important; }
  /* Public appointments: swipeable dates with a cue; one day, fitting slots. */
  body.public-page { padding-bottom: calc(var(--layout-public-bar-height, 76px) + 24px) !important; }
  .public-page .public-mobile-actions-bar { box-sizing: border-box; min-height: 68px; padding-bottom: max(10px,env(safe-area-inset-bottom,0px)); }
  .public-page .public-schedule { min-width: 0 !important; max-width: 100% !important; overflow: visible !important; }
  .public-page .public-schedule-days:not([hidden]) { display: flex !important; width: 100%; max-width: 100%; box-sizing: border-box; gap: 8px !important; overflow-x: auto !important; padding: 4px 2px 10px !important; scroll-snap-type: x proximity; scrollbar-width: thin !important; }
  .public-page .public-schedule-days::-webkit-scrollbar { display: block !important; height: 5px; }
  .public-page .public-schedule-days::-webkit-scrollbar-thumb { background: #9cb8ae; border-radius: 4px; }
  .public-page .public-schedule-days button { flex: 0 0 calc((100% - 16px) / 3) !important; width: calc((100% - 16px) / 3) !important; min-width: 0 !important; min-height: 76px !important; scroll-snap-align: start; padding: 9px 4px !important; }
  .public-page .public-schedule-days button span { white-space: nowrap !important; overflow: visible !important; }
  .public-page [data-mobile-date-hint] { margin: 8px 0; font-size: 14px; line-height: 1.4; color: var(--public-muted,#52645b); }
  .public-page .public-schedule-slots.is-week-view { display: block !important; min-width: 0 !important; max-width: 100% !important; overflow: visible !important; }
  .public-page .public-schedule-slots.is-week-view > .schedule-day-column { display: none !important; }
  .public-page .public-schedule-slots.is-week-view:not([data-mobile-day-ready]) > .schedule-day-column:first-child,
  .public-page .public-schedule-slots.is-week-view > .schedule-day-column.is-mobile-current-day { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 8px !important; width: 100% !important; min-width: 0 !important; min-height: 0 !important; padding: 10px !important; border-radius: 12px !important; box-sizing: border-box; }
  .public-page .schedule-day-column-head { grid-column: 1 / -1; display: flex !important; align-items: baseline; justify-content: center; gap: 8px; min-height: 0 !important; margin-bottom: 6px; padding: 4px !important; }
  .public-page .schedule-day-column-head .schedule-week-label { display: none; }
  .public-page .schedule-day-column-head strong { font-size: 22px !important; }
  .public-page .schedule-day-column :is(.schedule-day-empty,p) { grid-column: 1 / -1; }
  .public-page .schedule-day-column button { width: 100% !important; min-width: 0 !important; min-height: 52px !important; padding: 8px 3px !important; box-sizing: border-box; border-radius: 10px !important; }
  .public-page .schedule-day-column button strong { font-size: 14px !important; }
  .public-page .schedule-day-column button span { font-size: 11px !important; }
  .public-page .pp2-quick-info { grid-template-columns: minmax(0,1fr) !important; }
  .public-page .pp2-quick-info article { min-width: 0 !important; }
  .public-page .pp2-quick-info article > div { min-width: 0; }
  .public-page .pp2-quick-info strong { word-break: normal !important; overflow-wrap: normal !important; white-space: nowrap; }
  .public-page .pp2-quick-info small { overflow-wrap: anywhere; line-height: 1.45; }
  .public-page .trust-info-list p { display: grid; grid-template-columns: minmax(100px,max-content) minmax(0,1fr); gap: 12px; min-width: 0; }
  .public-page .trust-info-list strong { min-width: 100px; white-space: nowrap; word-break: normal !important; overflow-wrap: normal !important; }
  .public-page .trust-info-list p > span { min-width: 0; word-break: normal; overflow-wrap: anywhere; }
  .module-solicitacoes .request-card .request-booking-details > summary { text-align: left !important; justify-content: flex-start !important; font-size: 14px !important; font-weight: 700; line-height: 1.5; }
  .landing-home .public-menu nav { flex-direction: column !important; flex-wrap: nowrap !important; align-items: stretch !important; gap: 4px !important; max-height: calc(100dvh - 90px); overflow-y: auto !important; padding: 12px 20px !important; }
  .landing-home .public-menu nav a { min-height: 48px !important; padding: 12px !important; font-size: 16px !important; }
  .landing-home .studio-art-panels { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 20px !important; }
  .landing-home .studio-art-panels img { display: block; width: 100% !important; max-width: 100% !important; height: auto !important; }
  .landing-home .mobile-example-open { display: block; width: 100%; min-width: 0; padding: 0; border: 1px solid #dce5df; border-radius: 12px; background: #fff; color: #105447; overflow: hidden; cursor: zoom-in; }
  .landing-home .mobile-example-open > span { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px; font-size: 15px; font-weight: 700; }
  .mobile-example-dialog[open] { box-sizing: border-box; display: flex; flex-direction: column; gap: 10px; width: calc(100vw - 16px); max-width: none; height: calc(100dvh - 24px); max-height: none; margin: auto; padding: 12px; border: 0; border-radius: 12px; background: #fff; color: #17372d; }
  .mobile-example-dialog::backdrop { background: #0009; }
  .mobile-example-dialog .mobile-example-close { flex: 0 0 auto; min-height: 44px; border: 1px solid #105447; border-radius: 8px; background: #105447; color: #fff; font-size: 16px; font-weight: 700; }
  .mobile-example-dialog > p { margin: 0; font-size: 14px; line-height: 1.4; }
  .mobile-example-viewport { min-height: 0; overflow: auto; flex: 1 1 auto; overscroll-behavior: contain; }
  .mobile-example-viewport > img { display: block; width: max(512px,100%); min-width: 512px; max-width: none; height: auto; }
  .commercial-signup .brand { color: #105447; text-decoration: none; }
  .commercial-signup .hint a { color: #105447; }
  .commercial-signup details { margin: 22px 0 28px; padding: 16px 0; border-top: 1px solid #dce5df; border-bottom: 1px solid #dce5df; }
  .commercial-signup details + fieldset { margin-top: 24px; }
  .commercial-signup details > summary { min-height: 44px; line-height: 1.5; }
  .auth-login .brand { display: flex; margin-bottom: 20px !important; }
  .auth-login .tag { display: inline-flex; margin-top: 4px; }
  .auth-login .card label { display: block !important; }
  .auth-login .card label > span[aria-hidden="true"] { display: inline !important; }
  .auth-login .card label > input, .auth-login .card label > .password-field { display: block; margin-top: 8px; }
  .auth-login .card .password-field input { margin-top: 0; }
}
@media (min-width: 601px) { [data-mobile-date-hint] { display: none !important; } }
