/* Prótea · camada responsiva (tablet + mobile)
   Carregar por último. Evita cortes, overflow e grids rígidos. */

html{overflow-x:clip}
body{overflow-x:clip;max-width:100vw}
.app-shell,main,#master-content,.panel,.page-header,.toolbar,.form-grid,.stats-grid,.dashboard-grid,.master-grid,.master-two{
  min-width:0;max-width:100%;
}
img,video,canvas{max-width:100%;height:auto}
svg{max-width:100%}
.score-history-chart svg{width:100%!important;height:120px!important;max-width:100%;overflow:visible}
table{max-width:100%}
.table-wrap,.master-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.button,.nav-item,.nav-subitem{max-width:100%}

@media (max-width:1024px){
  .sidebar{
    transform:translateX(-100%);
    transition:transform .2s ease;
    width:min(280px,86vw)!important;
    z-index:40;
  }
  .sidebar.open{transform:translateX(0)}
  .app-shell{margin-left:0!important}
  .mobile-menu{display:inline-flex!important}
  .mobile-overlay.show,.master-overlay.show{
    display:block;position:fixed;inset:0;background:#17333d77;z-index:35;
  }
  #update-root{left:0!important}

  .topbar{height:auto;min-height:64px;flex-wrap:wrap;gap:8px 12px}
  .topbar-right{gap:6px;flex-wrap:wrap;justify-content:flex-end;min-width:0;flex:1 1 auto}
  .breadcrumb{min-width:0;flex:1 1 140px}
  .breadcrumb strong,#breadcrumb-current,#master-breadcrumb{
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:42vw;
  }
  .saved,.top-avatar{display:none}

  main,#master-content{padding:20px 14px 24px;width:100%;box-sizing:border-box}

  .page-header,.master-page-head{flex-direction:column;align-items:stretch;gap:14px}
  .page-header h1,.master-page-head h1{font-size:clamp(22px,5.5vw,28px);overflow-wrap:anywhere}
  .page-header>.actions,.master-page-actions{width:100%;display:flex;flex-wrap:wrap}
  .page-header>.actions .button,.master-page-actions .master-button{flex:1 1 140px}

  .stats-grid,.master-grid,.master-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dashboard-grid,
  .labels-workspace,
  .lookup-layout,
  .master-two,
  .master-section-grid,
  .support-layout,
  .score-main-grid,
  .batch-layout,
  .reports-layout,
  .side-stack,
  .bottom-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .patient-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid,.master-form-grid,.master-form-grid-4,.detail-grid{grid-template-columns:minmax(0,1fr)!important}
  .field.full{grid-column:auto}

  .toolbar{flex-wrap:wrap;gap:8px}
  .toolbar select,.toolbar input,.search-field{max-width:100%;min-width:0;flex:1 1 160px}

  .table-wrap table,.master-table,.team-table{min-width:560px}

  dialog,dialog.detail-modal,dialog.movement-modal,dialog.prosthesis-modal{
    width:calc(100% - 16px)!important;max-width:100%!important;max-height:min(96dvh,100%);margin:auto;
  }
  #modal-content,dialog #modal-content{padding-left:14px;padding-right:14px;max-width:100%;overflow-x:hidden}
  .modal-header{padding:16px 14px}
  .form-actions{flex-wrap:wrap;gap:8px}
  .form-actions .button{flex:1 1 140px}

  .master-modal-panel{width:calc(100% - 12px)!important;max-height:98dvh}
  .master-ticket-detail-grid,.master-perm-grid,.master-user-row{grid-template-columns:1fr!important}

  .notification-panel,.message-panel{max-width:calc(100vw - 16px);right:8px}

  .delivery-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .delivery-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .delivery-filters .button{grid-column:1/-1}
  .delivery-weekdays,.delivery-calendar{min-width:520px}
  .panel:has(.delivery-calendar){overflow-x:auto;-webkit-overflow-scrolling:touch}

  .batch-list-panel{position:static}
  .batch-active-strip{flex-wrap:wrap;align-items:flex-start}

  .report-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .score-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .score-insights-grid{grid-template-columns:1fr!important}

  .welcome-strip{flex-wrap:wrap;align-items:flex-start}
  .toast{max-width:calc(100vw - 24px)}

  .clinic-summary-grid,.subscription-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .clinic-identity-card{grid-column:1/-1}
  .team-row{grid-template-columns:auto minmax(0,1fr)!important}
  .team-row .team-role-field,.team-row .team-status-field,.team-row .team-actions{grid-column:1/-1}
  .team-row .team-actions{display:grid;grid-template-columns:1fr 1fr;max-width:none}
  .team-row .team-actions .button{width:100%;justify-content:center}

  .qr-area{flex-wrap:wrap}
  .lookup-input{flex-direction:column}
}

@media (max-width:700px){
  .master-grid,.master-grid-5,
  .delivery-stats,.report-kpis,.score-kpi-grid,
  .clinic-summary-grid,.subscription-grid,
  .patient-cards{grid-template-columns:minmax(0,1fr)!important}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  .page-header h1{font-size:24px;letter-spacing:-.5px}
  .stat-number,.master-stat strong{font-size:26px}
  .breadcrumb>span:first-of-type{display:none}

  .form-actions .button,
  .detail-modal .form-actions .button,
  .movement-modal .form-actions .button{flex:1 1 100%}

  .protea-update-bar{display:grid;grid-template-columns:1fr auto;gap:10px 8px;padding:10px 12px}
  .protea-update-progress-wrap{grid-column:1/-1;width:100%!important}
  .protea-update-changes{grid-template-columns:1fr}

  .message-panel{right:8px;bottom:8px;width:calc(100vw - 16px);height:auto;max-height:calc(100dvh - 82px)}
  .message-float{right:14px;bottom:14px}

  .coming-soon-meta{grid-template-columns:1fr}
  footer{padding:12px 14px;font-size:10px}
  .footer-right{display:none}
}

@media (max-width:480px){
  .stats-grid{grid-template-columns:minmax(0,1fr)!important}
  main,#master-content{padding:16px 12px 20px}
  .button{white-space:normal;text-align:center;line-height:1.25}
  .table-wrap table,.master-table,.team-table{min-width:480px}
  th,td{padding-left:10px;padding-right:10px}
}

@media (max-width:740px){
  .hero h1{font-size:clamp(32px,9vw,45px)!important;line-height:1.12;overflow-wrap:anywhere}
  .hero-actions .btn,.hero-actions .button{width:100%}
  .container,.page{width:min(100% - 28px,1240px);max-width:100%}
  .login-panel{width:100%;max-width:100%;box-sizing:border-box}
  .feature-grid,.proof-grid,.audience-grid{grid-template-columns:1fr!important}
  .glow,.glow-one,.glow-two{max-width:100vw}
}

@media (max-width:420px){
  .hero h1{font-size:30px!important}
  .brand{font-size:22px}
}

@supports (padding:max(0px)){
  /* topbar safe-area tratado na seção v14.19 */
  .sidebar{padding-bottom:max(12px,env(safe-area-inset-bottom))}
  main,#master-content{padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .toast{bottom:max(24px,env(safe-area-inset-bottom))}
}


/* Landing: nunca mostrar nav desktop no tablet/mobile */
@media (max-width:1050px){
  .desktop-nav{display:none!important}
  .menu-toggle{display:block!important}
}

/* Above-the-fold: não esperar animação reveal */
.hero .reveal{opacity:1!important;transform:none!important}


/* ===== v14.5 · cortes específicos do app ===== */

/* Mensagens: ancorar topo+base (iOS 100vh) */
@media (max-width:800px){
  .message-panel,.message-panel.expanded{
    top:max(8px,env(safe-area-inset-top,0px))!important;
    bottom:max(8px,env(safe-area-inset-bottom,0px))!important;
    left:8px!important;
    right:8px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
  }
  .message-float{
    bottom:max(14px,env(safe-area-inset-bottom,0px));
    right:max(14px,env(safe-area-inset-right,0px));
  }
}

/* Stickers de lembrete não invadem o chrome do Safari */
@media (max-width:900px){
  .reminder-stickers{
    top:max(76px,calc(env(safe-area-inset-top,0px) + 62px))!important;
    max-height:calc(100dvh - 120px);
    overflow:auto;
  }
}

/* Tabelas de próteses/pacientes → cards no mobile */
@media (max-width:700px){
  .table-wrap.case-table-wrap,
  .table-wrap.patient-table-wrap,
  .label-stock .table-wrap,
  .table-wrap.label-batch-table{
    overflow:visible;
  }
  .table-wrap.case-table-wrap table,
  .table-wrap.patient-table-wrap table,
  .label-stock .table-wrap table,
  .table-wrap.label-batch-table table{
    min-width:0!important;
    width:100%;
  }
  .table-wrap.case-table-wrap thead,
  .table-wrap.patient-table-wrap thead,
  .label-stock .table-wrap thead{
    display:none;
  }
  .table-wrap.case-table-wrap tbody,
  .table-wrap.patient-table-wrap tbody,
  .label-stock .table-wrap tbody{
    display:grid;gap:10px;
  }
  .table-wrap.case-table-wrap tr,
  .table-wrap.patient-table-wrap tr,
  .label-stock .table-wrap tr{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px 10px;
    padding:12px;
    border:1px solid var(--line,#e5eaed);
    border-radius:12px;
    background:#fff;
    align-items:start;
  }
  .table-wrap.case-table-wrap td,
  .table-wrap.patient-table-wrap td,
  .label-stock .table-wrap td{
    border:0!important;
    padding:0!important;
    min-width:0;
    white-space:normal!important;
  }
  .table-wrap.case-table-wrap td:first-child,
  .table-wrap.patient-table-wrap td:first-child,
  .label-stock .table-wrap td:first-child{
    grid-column:1/-1;
  }
  .table-wrap.case-table-wrap .deadline-badge,
  .table-wrap.case-table-wrap .status,
  .label-stock .status{
    white-space:nowrap;
    font-size:10px;
    max-width:100%;
  }
  .deadline-badge{letter-spacing:0!important;padding:4px 7px!important}

  /* Fluxo / etapas sem clip à esquerda */
  .flow,.flow-row,.panel-body,.dashboard-custom-block,.score-block{
    min-width:0;overflow-x:auto;overflow-wrap:anywhere;
  }
  .flow{padding-left:14px!important;padding-right:14px!important}
  .flow-row span{min-width:0;overflow-wrap:anywhere}

  /* Relatórios / prazos */
  .report-table-wrap,.report-preview-panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .report-table{min-width:0}

  /* Lote QR: placeholder curto + inputs sem overflow */
  .batch-manual .lookup-input input,
  #batch-manual-code{
    letter-spacing:0!important;
    font-size:14px!important;
  }
  .batch-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .batch-actions .button{width:100%;justify-content:center;white-space:normal;line-height:1.2;padding:10px 8px;font-size:12px}

  /* Página de etiquetas: toolbar empilha */
  .label-stock .toolbar{display:grid;grid-template-columns:1fr;gap:8px}
  .label-stock .toolbar .button{width:100%}
  .label-batch-card{padding:14px}
  .label-batch-head{flex-direction:column;align-items:stretch}
  .label-batch-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .label-batch-actions .button{flex:1;justify-content:center}
}

/* Lotes de etiquetas */
.label-batch-list{display:grid;gap:14px}
.label-batch-card{
  border:1px solid var(--line,#e5eaed);
  border-radius:14px;
  background:#fff;
  padding:16px 18px;
  box-shadow:var(--shadow,0 5px 24px #20384206);
}
.label-batch-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;
}
.label-batch-head h3{margin:0;font-size:15px;font-weight:600}
.label-batch-head p{margin:3px 0 0;font-size:12px;color:var(--muted,#74838b)}
.label-batch-meta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.label-batch-meta span{
  font-size:11px;padding:4px 8px;border-radius:999px;background:#f0f4f5;color:#5f737a;
}
.label-batch-meta span.free{background:#eaf6f1;color:#2f7a64}
.label-batch-meta span.reserved{background:#fff5e3;color:#9a7538}
.label-batch-meta span.linked{background:#edf3fc;color:#5a7398}
.label-batch-actions{display:flex;flex-wrap:wrap;gap:8px}
.label-batch-card .table-wrap{margin-top:10px}
.label-row-actions{display:flex;gap:4px;justify-content:flex-end}
.button.danger-soft{color:#b05746;border-color:#edc9c9;background:#fff}
.button.danger-soft:hover{background:#fff4f4}

/* Score chart + stat cards: legível no mobile */
@media (max-width:720px){
  .score-history{padding-top:14px}
  .score-history-chart{
    overflow:visible!important;
    padding:10px 0 0;
  }
  .score-point-values{height:30px;margin-bottom:4px}
  .score-point-value{
    font-size:15px!important;
    font-weight:700;
    letter-spacing:-.02em;
  }
  .score-history-chart svg{
    width:100%!important;
    height:120px!important;
    min-height:120px;
    overflow:visible;
  }
  .score-history-labels{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    font-size:11px;
    gap:2px;
    margin-top:8px;
    padding:0 1%;
    text-align:center;
  }
  .score-history-chart>small{
    display:block;
    margin-top:10px;
    line-height:1.4;
    overflow-wrap:anywhere;
  }
  .stat-card{
    overflow:visible!important;
    min-height:0;
    padding-bottom:16px!important;
  }
  .stat-head{
    gap:8px;
    align-items:flex-start;
  }
  .stat-head>span:first-child{
    min-width:0;
    overflow-wrap:anywhere;
    line-height:1.3;
  }
  .stat-meta{
    font-size:11px!important;
    line-height:1.4;
    overflow:visible;
    white-space:normal;
  }
  .clinic-score-panel{overflow:visible}
}

/* ===== v14.20 · mobile app-like: safe areas, sheet modal, dock ===== */

:root{
  --touch-min:44px;
  --mobile-dock-pad:8px;
  --mobile-dock-h:74px;
  --fallback-safe-top:0px;
  --fallback-safe-bottom:0px;
  --sat:max(env(safe-area-inset-top,0px),var(--fallback-safe-top,0px));
  --sab:max(env(safe-area-inset-bottom,0px),var(--fallback-safe-bottom,0px));
  --sal:env(safe-area-inset-left,0px);
  --sar:env(safe-area-inset-right,0px);
}

@media (max-width:1024px){
  html{background:#fff}

  body.has-mobile-dock{
    --mobile-dock-h:calc(58px + var(--mobile-dock-pad) + var(--sab));
  }
  body.has-mobile-dock main,
  body.has-mobile-dock #master-content{
    padding-bottom:calc(var(--mobile-dock-h) + 28px)!important;
  }
  body.has-mobile-dock .message-float,
  body.has-mobile-dock #message-float-button{
    bottom:calc(var(--mobile-dock-h) + 18px)!important;
    right:max(14px,var(--sar))!important;
    z-index:40;
  }
  body.has-mobile-dock .toast,
  body.has-mobile-dock #toast,
  body.has-mobile-dock .reminder-stickers{
    bottom:calc(var(--mobile-dock-h) + 16px)!important;
  }

  /* Topbar com safe-area (sticky top:0 precisa do padding no próprio topbar) */
  .topbar{
    height:auto!important;
    min-height:calc(52px + var(--sat));
    box-sizing:border-box;
    flex-wrap:nowrap;
    gap:8px;
    padding-top:calc(8px + var(--sat))!important;
    padding-bottom:8px!important;
    padding-left:max(14px,var(--sal))!important;
    padding-right:max(14px,var(--sar))!important;
    position:sticky;
    top:0;
    z-index:30;
    background:#fff;
  }

  /* ===== Dock inferior ===== */
  .mobile-dock{
    position:fixed;
    left:0;right:0;bottom:0;
    z-index:45;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:2px;
    align-items:stretch;
    padding-top:6px;
    padding-left:max(6px,var(--sal));
    padding-right:max(6px,var(--sar));
    padding-bottom:calc(var(--mobile-dock-pad) + var(--sab));
    background:#122d38;
    color:#d5e0e4;
    border-top:1px solid #ffffff14;
    box-shadow:0 -10px 30px #0d222c40;
    box-sizing:border-box;
  }
  .mobile-dock[hidden],
  body.modal-open .mobile-dock,
  body.mobile-quick-open .mobile-dock,
  body.chat-open .mobile-dock{display:none!important}
  body.chat-open{overflow:hidden!important;overscroll-behavior:none}
  .message-panel.open{z-index:80!important}
  @supports selector(body:has(*)){
    body:has(.message-panel.open) .mobile-dock{display:none!important}
    body:has(.message-panel.open){overflow:hidden!important;overscroll-behavior:none}
  }
  .mobile-dock-item{
    appearance:none;border:0;background:transparent;color:inherit;
    min-height:52px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    border-radius:12px;padding:6px 2px;font:inherit;cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-dock-item span{
    font-size:10px;font-weight:600;line-height:1.1;
    max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .mobile-dock-item svg,
  .mobile-dock-item i{width:20px;height:20px;display:grid;place-items:center;flex:0 0 auto}
  .mobile-dock-item.active{background:#ffffff18;color:#fff}
  .mobile-dock-add{
    background:#168577;color:#fff;margin:4px 2px;border-radius:14px;min-height:48px;
  }
  .mobile-dock-add.active{background:#1a9a88}

  body.modal-open .message-float,
  body.modal-open #message-float-button,
  body.mobile-quick-open .message-float,
  body.mobile-quick-open #message-float-button{display:none!important}

  /* ===== Quick sheet ===== */
  .mobile-quick-sheet{
    position:fixed;inset:0;z-index:70;
    display:flex;align-items:flex-end;justify-content:center;
  }
  .mobile-quick-sheet[hidden]{display:none!important}
  .mobile-quick-backdrop{
    position:absolute;inset:0;border:0;background:#112d3899;backdrop-filter:blur(3px);
  }
  .mobile-quick-panel{
    position:relative;z-index:1;width:min(480px,100%);
    background:#fff;border-radius:18px 18px 0 0;
    padding:10px 16px calc(20px + var(--sab));
    box-shadow:0 -20px 60px #102e3840;
    display:grid;gap:8px;box-sizing:border-box;
  }
  .mobile-quick-handle{width:42px;height:4px;border-radius:99px;background:#d7e0e5;margin:2px auto 8px}
  .mobile-quick-panel>strong{display:block;font-size:15px;color:#203842;margin:0 2px 4px}
  .mobile-quick-action{
    appearance:none;border:1px solid #e5eaed;background:#f7faf9;color:#203842;
    border-radius:12px;min-height:var(--touch-min);
    display:flex;align-items:center;gap:12px;padding:12px 14px;
    font:inherit;font-weight:600;cursor:pointer;text-align:left;
  }
  .mobile-quick-action svg,.mobile-quick-action i{width:20px;height:20px;color:#168577;flex:0 0 auto}
  .mobile-quick-action.soft{
    justify-content:center;background:transparent;border-color:transparent;color:#74838b;font-weight:500;
  }

  /*
   * Modal sheet: no iOS, max-height sozinho + flex sem min-height:0 corta o formulário.
   * Altura explícita (top + height) + min-height:0 no conteúdo = scroll real.
   */
  body.modal-open,
  body.mobile-quick-open{
    overflow:hidden!important;
    overscroll-behavior:none;
  }
  dialog#modal{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    border:0!important;
    border-radius:18px 18px 0 0!important;
    padding:0!important;
    color:inherit;
    background:#fff;
    box-shadow:0 -20px 80px #102e3860;
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    top:auto!important;
    /* fallback vh primeiro; dvh sobrescreve onde existir — evita sheet só com o título */
    height:calc(100vh - max(8px, calc(var(--sat) + 4px)))!important;
    max-height:calc(100vh - max(8px, calc(var(--sat) + 4px)))!important;
    height:calc(100dvh - max(8px, calc(var(--sat) + 4px)))!important;
    max-height:calc(100dvh - max(8px, calc(var(--sat) + 4px)))!important;
    display:none;
    flex-direction:column;
    overflow:hidden!important;
    z-index:80;
    box-sizing:border-box;
  }
  dialog#modal[open]{
    display:flex!important;
  }
  dialog#modal::backdrop{
    background:#112d38a0;
    backdrop-filter:blur(3px);
  }
  dialog#modal .modal-header{
    flex:0 0 auto;
    position:relative;
    z-index:2;
    background:#fff;
    padding:14px 16px;
    border-bottom:1px solid #eef2f4;
  }
  dialog#modal #modal-content{
    flex:1 1 auto;
    min-height:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    padding:14px 16px!important;
    padding-bottom:calc(20px + var(--sab))!important;
    max-height:none!important;
    height:auto!important;
  }
  dialog#modal .form-actions{
    position:sticky;
    bottom:0;
    z-index:3;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:12px -16px -14px;
    padding:12px 16px calc(12px + var(--sab));
    background:#fff;
    box-shadow:0 -8px 20px rgba(15,23,42,.06);
    border-top:1px solid #eef2f4;
  }
  dialog#modal .form-actions .button{width:100%;min-height:44px}

  /* Toque / iOS zoom */
  .icon-button,.message-button,.notification-button,.mobile-menu,.view-mode-btn{
    min-width:var(--touch-min)!important;min-height:var(--touch-min)!important;
  }
  .nav-item,.nav-subitem{min-height:var(--touch-min)}
  .button,.form-actions .button{min-height:var(--touch-min)}
  input,select,textarea,.search-field input{font-size:16px!important}

  .toolbar{
    position:sticky;top:0;z-index:5;
    background:linear-gradient(#f6f8fa 70%,#f6f8faee);
    padding:8px 0 10px;margin-top:-4px;
    backdrop-filter:blur(6px);
  }
  .toolbar .search-field input,.toolbar select{min-height:44px}

  .settings-tabs{
    display:flex!important;flex-wrap:nowrap!important;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    gap:8px;padding-bottom:6px;scrollbar-width:none;
  }
  .settings-tabs::-webkit-scrollbar{display:none}
  .settings-tab{flex:0 0 auto;white-space:nowrap}

  .sidebar{
    padding-bottom:max(16px,env(safe-area-inset-bottom,0px))!important;
  }
  .topbar-right .saved{display:none}
  .breadcrumb strong{max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

@media (max-width:700px){
  dialog#modal .form-actions{grid-template-columns:1fr}
  .page-header>.actions{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;
  }
  .page-header>.actions .button{width:100%;flex:unset;justify-content:center}
  .stats-grid{gap:8px!important}
  .patient-cards{gap:10px}
  .toolbar{display:grid;grid-template-columns:1fr;gap:8px}
  .toolbar select{width:100%;max-width:none}
}

@media (max-width:480px){
  .mobile-dock-item span{font-size:9px}
  .page-header>.actions{grid-template-columns:1fr}
  .page-header h1{font-size:24px!important}
  dialog#modal{
    height:calc(100vh - max(4px, var(--sat)))!important;
    max-height:calc(100vh - max(4px, var(--sat)))!important;
    height:calc(100dvh - max(4px, var(--sat)))!important;
    max-height:calc(100dvh - max(4px, var(--sat)))!important;
  }
}

@media (min-width:1025px){
  .mobile-dock,
  .mobile-quick-sheet{display:none!important}
}


/* ===== v14.42 · polish mobile global + Prótea IA full-bleed ===== */

@media (max-width:1024px){
  body.clinic-ai-open .message-float,
  body.ai-open .message-float,
  body.clinic-ai-open #message-float-button,
  body.ai-open #message-float-button,
  body.clinic-ai-open .mobile-dock,
  body.ai-open .mobile-dock,
  body.clinic-ai-open .mobile-quick-sheet,
  body.ai-open .mobile-quick-sheet,
  body:has(.schedule-ai-panel.is-open) .mobile-dock,
  body:has(.schedule-ai-panel.is-open) .mobile-quick-sheet{display:none!important}

  body.clinic-ai-open,
  body.ai-open,
  body:has(.schedule-ai-panel.is-open){
    overflow:hidden!important;
    overscroll-behavior:none;
  }

  body.has-mobile-dock{
    --mobile-dock-h:calc(58px + var(--mobile-dock-pad) + var(--sab));
  }

  /* Float de mensagens logo acima do dock; FAB da IA acima do float */
  body.has-mobile-dock .message-float,
  body.has-mobile-dock #message-float-button{
    bottom:calc(var(--mobile-dock-h) + 14px)!important;
    right:max(14px,var(--sar))!important;
  }
  body.has-mobile-dock .clinic-ai-fab,
  body.has-mobile-dock .schedule-ai-fab,
  body.has-mobile-dock .schedule-ai-fab.clinic-ai-fab{
    bottom:calc(var(--mobile-dock-h) + 78px)!important;
    right:max(14px,var(--sar))!important;
  }

  /* Prótea IA: sheet em tela cheia (ganha de schedule.css) */
  .schedule-ai-overlay{z-index:1280!important}
  .schedule-ai-panel,
  .schedule-ai-panel.is-open,
  .schedule-ai-panel.clinic-ai-panel,
  .panel.schedule-ai-panel{
    position:fixed!important;
    inset:0!important;
    top:0!important;right:0!important;bottom:0!important;left:0!important;
    width:100%!important;max-width:100vw!important;
    height:100%!important;max-height:100dvh!important;
    margin:0!important;
    border:0!important;border-radius:0!important;box-shadow:none!important;
    z-index:1290!important;
    display:flex!important;flex-direction:column!important;
    background:#fff!important;
    padding-top:var(--sat)!important;
    padding-bottom:var(--sab)!important;
    padding-left:var(--sal)!important;
    padding-right:var(--sar)!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .schedule-ai-head{padding:12px 14px 10px!important;flex:0 0 auto}
  .schedule-ai-head h2{font-size:20px!important;line-height:1.15}
  .schedule-ai-head p{font-size:11px!important;line-height:1.4}
  .schedule-ai-head .icon-button{min-width:40px!important;min-height:40px!important}
  .schedule-ai-quick{
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    gap:8px!important;padding:8px 14px 12px!important;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .schedule-ai-quick::-webkit-scrollbar{display:none}
  .schedule-ai-quick button{
    flex:0 0 auto;white-space:nowrap;max-width:78vw;
    border-radius:999px!important;padding:9px 12px!important;font-size:12px!important;
  }
  .schedule-ai-thread{
    flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;padding:12px!important;gap:14px!important;
  }
  .schedule-ai-message{grid-template-columns:28px minmax(0,1fr)!important;gap:8px!important}
  .schedule-ai-message.user{grid-template-columns:minmax(0,1fr) 28px!important}
  .schedule-ai-message.user .schedule-ai-avatar{order:2}
  .schedule-ai-message.user .schedule-ai-bubble{order:1}
  .schedule-ai-bubble{padding:11px 12px!important;border-radius:14px!important;min-width:0}
  .schedule-ai-message-body{font-size:13px!important;line-height:1.55!important;overflow-wrap:anywhere}
  .schedule-ai-composer{
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr) auto!important;
    grid-template-areas:none!important;
    gap:8px!important;padding:8px 12px 6px!important;align-items:end;
  }
  .schedule-ai-attach{width:44px!important;height:44px!important;border-radius:12px!important}
  .schedule-ai-composer textarea{
    min-height:44px!important;max-height:88px!important;
    font-size:16px!important;border-radius:12px!important;width:100%;box-sizing:border-box;
  }
  .schedule-ai-composer .button{
    width:auto!important;min-width:76px!important;min-height:44px!important;
    padding:0 14px!important;border-radius:12px!important;justify-content:center;
  }
  .schedule-ai-footer{padding:2px 14px 10px!important;gap:12px}
  .schedule-ai-footer small{flex:1;text-align:right;line-height:1.3;font-size:10px}

  /* Cards e painéis */
  .panel,
  .stat-card,
  .patient-card,
  .case-card,
  .score-card,
  .coming-soon-card{border-radius:14px}
  .panel-heading{padding:16px 14px}
  .panel .toolbar{padding-left:14px;padding-right:14px}

  /* Formulários */
  .form-grid .field,
  .master-form-grid .field{min-width:0}
  .field label{font-size:12px}
  .field input,
  .field select,
  .field textarea{min-height:44px;border-radius:10px}
  .field textarea{min-height:96px}

  /* Filtros / chips */
  .filter-chips,
  .chip-row,
  .ops-notice-row{display:flex;flex-wrap:wrap;gap:8px}
  .chip-toggle,
  .filter-chip,
  .view-mode-btn{min-height:40px}

  /* Agenda */
  .schedule-heading-actions{
    width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;
  }
  .schedule-heading-actions .button{width:100%;justify-content:center}
  .schedule-dentist-lanes,
  .schedule-dentist-lanes-grid{grid-template-columns:1fr!important}
  .schedule-filters{display:grid;grid-template-columns:1fr;gap:8px}
  .schedule-filters select,
  .schedule-filters input{width:100%}
  .schedule-day-grid,
  .schedule-week-grid,
  .schedule-slots{min-width:0!important}

  /* Financeiro / relatórios */
  .finance-kpi-grid,
  .finance-columns,
  .report-kpis{gap:10px}
  .finance-table-wrap,
  .report-table-wrap{margin:0 -2px;padding:0 2px;-webkit-overflow-scrolling:touch}

  /* Entregas */
  .delivery-filters{gap:8px}
  .delivery-filters .button{min-height:44px}

  /* Configurações */
  .settings-tabs{margin:0 0 12px}
  .settings-panel{overflow:visible}
  .settings-form .form-grid{gap:12px}

  /* Notificações */
  .notification-panel{
    max-width:calc(100vw - 16px);right:8px;left:8px;width:auto;
  }

  /* Mensagens: full-bleed no tablet/phone */
  .message-panel,
  .message-panel.open,
  .message-panel.expanded{
    inset:0!important;
    top:0!important;right:0!important;bottom:0!important;left:0!important;
    width:100%!important;height:100%!important;
    max-width:none!important;max-height:none!important;
    border-radius:0!important;
    padding-top:var(--sat);padding-bottom:var(--sab);
    box-sizing:border-box;
  }

  .empty{padding:32px 16px}
  .empty h3{font-size:17px}
  .empty p{font-size:13px}

  body.has-mobile-dock .toast,
  body.has-mobile-dock #toast{
    bottom:calc(var(--mobile-dock-h) + 16px)!important;
    left:50%;right:auto;transform:translateX(-50%);
    max-width:calc(100vw - 24px);
  }
}

@media (max-width:700px){
  main,#master-content{padding:16px 12px calc(var(--mobile-dock-h,74px) + 20px)}

  .page-header h1,
  .master-page-head h1{font-size:23px;letter-spacing:-.4px;line-height:1.15}
  .page-header p{font-size:13px;line-height:1.4}

  .stats-grid{gap:8px!important}
  .stat-card{padding:13px 12px}
  .stat-number{font-size:26px}

  .schedule-heading-actions{grid-template-columns:1fr}
  .schedule-day-nav,
  .schedule-toolbar{
    display:grid;grid-template-columns:1fr;gap:8px;
  }

  .lab-send-sheet.ls-modern,
  .lab-send-print-root,
  #lab-send-print-root .lab-send-sheet{padding:12px!important}

  .table-wrap{
    margin:0 -4px;padding:0 4px;-webkit-overflow-scrolling:touch;
  }

  .card-actions,
  .record-actions,
  .patient-card .card-bottom{flex-wrap:wrap;gap:8px}

  .timeline-list,
  .batch-active-strip,
  .lookup-result{min-width:0}
  .batch-manual .lookup-input,
  .lookup-input{flex-direction:column}
  .batch-manual .lookup-input .button,
  .lookup-input .button{width:100%;justify-content:center}
}

@media (max-width:480px){
  .page-header>.actions,
  .master-page-actions{
    display:grid!important;grid-template-columns:1fr!important;
  }
  .page-header>.actions .button,
  .master-page-actions .button,
  .master-page-actions .master-button{
    width:100%;justify-content:center;
  }

  .stats-grid{grid-template-columns:1fr!important}
  .mobile-dock-item span{font-size:9px;letter-spacing:0}
  .mobile-dock-item{min-height:50px;padding:5px 1px}

  .welcome-strip{flex-direction:column;align-items:stretch}
  .welcome-strip .actions{width:100%}
  .welcome-strip .actions .button{flex:1}

  .schedule-ai-head h2{font-size:18px!important}
  .schedule-ai-quick button{font-size:11px!important;padding:8px 10px!important}
  .schedule-ai-message-body{font-size:12.5px!important}
}

@media (max-width:1024px) and (max-height:480px) and (orientation:landscape){
  dialog#modal{
    height:calc(100dvh - 4px)!important;
    max-height:calc(100dvh - 4px)!important;
  }
  .schedule-ai-panel,
  .schedule-ai-panel.clinic-ai-panel,
  .panel.schedule-ai-panel{
    max-height:100dvh!important;
  }
  .schedule-ai-quick{display:none!important}
}
