/* Diário de Pressão v25.8.0 — Responsive Safety Pass.
   Regra-mãe: nenhum componente pode expandir a viewport, sobrepor vizinhos ou esconder texto essencial. */
:root{--rs-gap:12px;--rs-safe-x:max(12px,env(safe-area-inset-left));--rs-safe-r:max(12px,env(safe-area-inset-right))}
html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
body,.app-shell-frame,.app-scroll-region,main.app,#inicio,#registrar,#historico,#analises,#ajustes{min-width:0!important;max-width:100%!important}
*,*::before,*::after{box-sizing:border-box!important}

/* Containers and descendants must be shrinkable inside flex/grid layouts. */
:is(section,article,aside,header,footer,nav,form,fieldset,div,li,dl,dt,dd){min-width:0}
:is(.card,.wide,.analytics-panel,.settings-hub,.section-hub,.study-info,.medication-card,.period-card,.mobile-record,.notification-state,.schedule-row,.schedule-empty,.stat,.home12-action-card,.home12-metric,.home12-agenda-block,.home12-favorites-block,.ui-settings-group,.ui-analysis-summary article) > *{min-width:0;max-width:100%}

/* Text never paints outside its own box. */
:is(h1,h2,h3,h4,h5,h6,p,small,strong,b,span,label,legend,dt,dd,li,.section-sub,.helper,.mini-note,.nav-label,.dl-nav-copy,.settings-hub-button span,.home12-action-copy,.home12-metric,.mobile-record){
  max-width:100%;overflow-wrap:break-word;word-break:normal;text-wrap:pretty
}
:is(button,.btn,a,[role="button"]){max-width:100%;min-width:0;overflow-wrap:break-word;word-break:normal;white-space:normal;text-align:center}

/* Form controls always respect the field width. */
.field,.form-row,.form-grid,.filters,.search-row,.register-now-actions,.v251-actions,.v253-builder-grid,.v252-reason-options{min-width:0;max-width:100%}
input,select,textarea{width:100%;max-width:100%!important;min-width:0!important}
textarea{resize:vertical}

/* Media, charts and technical blocks stay inside their cards. */
img,svg,canvas,video,iframe{max-width:100%;height:auto}
.chart-wrap,.qr-box,.v253-qr-box,.preview-box,.report-preview{max-width:100%!important;overflow:hidden}
pre,code,.technical-value,.diagnostic-value{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}

/* Flex rows may wrap instead of colliding. */
:is(.toolbar,.actions,.card-actions,.header-actions,.home12-action-actions,.filter-actions,.v251-actions,.nav-stack-actions,.history-controls,.analytics-actions){flex-wrap:wrap!important;min-width:0}
:is(.toolbar,.actions,.card-actions,.filter-actions,.v251-actions)>*{min-width:0}

/* Every app grid uses shrinkable tracks. */
:is(.home12-overview,.home12-lower,.settings-hub-grid,.section-hub-grid,.analytics-grid,.ui-analysis-summary,.measurement-vitals-grid,.register-now-actions,.v253-builder-grid){grid-auto-columns:minmax(0,1fr)}

/* Horizontal data sets scroll locally instead of widening the whole page. */
.table-wrap,.data-grid-wrap,.timeline-strip,.tabs-scroll,.chip-scroll{max-width:100%!important;overflow-x:auto!important;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.table-wrap table{max-width:none}

/* Notifications and modal sheets remain inside the physical viewport. */
.toast,.app-toast,.notification-toast,.snackbar,.cf-compat-banner{max-width:calc(100vw - 24px)!important;left:auto!important;right:max(12px,env(safe-area-inset-right))!important}
.confirm-backdrop,.modal-backdrop,.pressure-guide-modal-backdrop{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;overflow:auto!important}
:is(.medication-question-card,.pressure-guide-modal,.modal,.sheet,.dialog-card){width:min(680px,100%)!important;max-width:100%!important;max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))!important;overflow:auto!important}

/* Page headers: long titles and action buttons must coexist. */
.screen-head{min-width:0;max-width:100%}
.screen-head>*,.screen-head .nav-stack-actions>*{min-width:0}
.screen-head strong,.screen-head small{overflow-wrap:break-word}

/* Keep the mobile nav inside viewport and allow labels to fit without collision. */
.bottom-nav{width:100%!important;max-width:100vw!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}
.bottom-nav a{min-width:0!important;max-width:100%!important;overflow:hidden!important}
.bottom-nav .nav-label{width:100%;max-width:100%;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important;text-align:center;line-height:1.05!important}

/* Desktop sidebar: no label is allowed to push the content column. */
.dl-desktop-sidebar,.dl-desktop-nav,.dl-desktop-nav button,.dl-desktop-brand,.dl-desktop-context{min-width:0!important;max-width:100%!important}
.dl-desktop-nav button{grid-template-columns:30px minmax(0,1fr)!important}
.dl-nav-copy,.dl-desktop-brand-copy{min-width:0;overflow-wrap:break-word}

/* Route-specific safety rules. */
.home12-action-card{grid-template-columns:minmax(0,1fr) auto!important}
.home12-action-copy{min-width:0!important}
.home12-primary-action{max-width:100%!important}
.home12-overview{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.home12-lower{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.home12-periods{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.home12-periods>*{min-width:0!important;max-width:100%!important}

.register-now-actions{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch!important}
.register-now-actions>*{min-width:0!important;max-width:100%!important}
#registerNowSummary{overflow-wrap:break-word!important;white-space:normal!important}
#registerNewReading,#openRegisterDateTime{width:100%!important;white-space:normal!important;line-height:1.15!important}
.measurement-vitals-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.measurement-vital-field{min-width:0!important;max-width:100%!important}
.measurement-vital-field input{text-align:center;max-width:100%!important}

#historico .search-row{grid-template-columns:minmax(0,1fr) minmax(120px,.32fr) auto!important}
#historico .search-row>*{min-width:0!important;max-width:100%!important}
.ui-history-tabs,.ui-analysis-tabs,.ui-analysis-periods{display:flex;gap:8px;max-width:100%;overflow-x:auto!important;overscroll-behavior-inline:contain;scrollbar-width:none}
.ui-history-tabs::-webkit-scrollbar,.ui-analysis-tabs::-webkit-scrollbar,.ui-analysis-periods::-webkit-scrollbar{display:none}
.ui-route-tab,.ui-period-btn{flex:0 0 auto;max-width:min(220px,80vw)!important}

#analiseEvolucao .analytics-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr)!important}
.ui-analysis-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}

.settings-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.settings-hub-button{grid-template-columns:46px minmax(0,1fr) 18px!important;width:100%!important;max-width:100%!important;overflow:hidden}
.settings-hub-button>span:nth-child(2){min-width:0!important;max-width:100%!important}
.settings-hub-button strong,.settings-hub-button span span{overflow-wrap:break-word!important}

/* Tablet: prevent half-desktop layouts from becoming too dense. */
@media (min-width:700px) and (max-width:1023px){
  main.app{padding-left:clamp(18px,4vw,34px)!important;padding-right:clamp(18px,4vw,34px)!important}
  .home12-overview{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .home12-lower{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .settings-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Phones: convert potentially unsafe horizontal groups into predictable responsive grids. */
@media (max-width:699px){
  main.app{width:100%!important;max-width:100%!important;padding-left:max(12px,env(safe-area-inset-left))!important;padding-right:max(12px,env(safe-area-inset-right))!important}
  .home12-action-card{grid-template-columns:minmax(0,1fr)!important}
  .home12-primary-action{grid-column:1/-1!important}
  .home12-overview{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .home12-lower{grid-template-columns:minmax(0,1fr)!important}
  .register-now-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #registerNowSummary{grid-column:1/-1!important}
  .measurement-vitals-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .measurement-vital-field:nth-child(3){grid-column:1/-1!important}
  #historico .search-row{grid-template-columns:minmax(0,1fr) auto!important}
  #historico .search-row select{display:none!important}
  #analiseEvolucao .analytics-grid{grid-template-columns:minmax(0,1fr)!important}
  .ui-analysis-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .settings-hub-grid{grid-template-columns:minmax(0,1fr)!important}
  .screen-head .nav-stack-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important}
  .screen-head .nav-stack-actions>*{width:100%!important}
  .screen-head .nav-stack-actions>.context-home-btn{display:none!important}
  .v251-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important}
  .v251-actions>*{width:100%!important}
}

@media (max-width:430px){
  .app-header-inner{min-width:0!important}
  .brand-lockup{min-width:0!important;max-width:calc(100% - 138px)!important}
  .brand-text{min-width:0!important}
  .brand-text strong,.brand-text span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}
  .header-actions{flex:0 0 auto!important;max-width:132px!important;flex-wrap:nowrap!important}
  .header-actions .theme-toggle{flex:0 0 40px!important;width:40px!important;height:40px!important}
  .home12-overview{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .home12-periods{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .settings-hub-button{grid-template-columns:40px minmax(0,1fr) 14px!important;gap:9px!important;padding:11px!important}
  .bottom-nav a{padding-inline:1px!important}
  .bottom-nav .nav-label{font-size:clamp(.52rem,2.1vw,.59rem)!important}
}

@media (max-width:360px){
  .brand-lockup{max-width:calc(100% - 126px)!important}
  .header-actions{max-width:120px!important}
  .header-actions .theme-toggle{flex-basis:36px!important;width:36px!important;height:36px!important}
  .home12-overview,.measurement-vitals-grid,.ui-analysis-summary{grid-template-columns:minmax(0,1fr)!important}
  .register-now-actions,.v251-actions{grid-template-columns:minmax(0,1fr)!important}
  #registerNowSummary,.measurement-vital-field:nth-child(3){grid-column:auto!important}
  .bottom-nav{padding-inline:2px!important}
  .bottom-nav .nav-label{font-size:.5rem!important}
}

/* Final readability pass: prefer wrapping between words, never character-by-character for normal copy. */
:is(h1,h2,h3,h4,h5,h6,p,small,strong,b,span,label,legend,dt,dd,li,button,.btn,a,[role="button"]){hyphens:none}
@media (max-width:699px){
  #analysisHub .section-hub-grid{grid-template-columns:minmax(0,1fr)!important}
  #analysisHub .section-hub-button{grid-template-columns:44px minmax(0,1fr) 18px!important;min-height:82px!important;text-align:left!important}
  #analysisHub .section-hub-button strong,#analysisHub .section-hub-button span{overflow-wrap:break-word!important;word-break:normal!important}
}
@media (min-width:1024px){
  :root{--ui-sidebar:224px}
  .dl-desktop-nav button{height:auto!important;min-height:46px!important;padding-top:8px!important;padding-bottom:8px!important}
  .dl-nav-copy{white-space:normal!important;line-height:1.16!important;overflow:visible!important;text-overflow:clip!important}
}
