/* DoceGestor · Mobile QA 01 · iPhone + Android
   Presentation-only corrections. Do not replace API, state or demo functionality. */
:root{--dg-bottom-safe:env(safe-area-inset-bottom,0px);--dg-top-safe:env(safe-area-inset-top,0px)}
html{scroll-padding-bottom:calc(102px + var(--dg-bottom-safe));-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:clip}
body{min-width:0;overflow-x:clip;overscroll-behavior-x:none;-webkit-font-smoothing:antialiased}
#app{min-width:0;max-width:100%;padding-bottom:calc(99px + var(--dg-bottom-safe))}
#app > *,#app main,#app section{min-width:0;max-width:100%}
#app img{max-width:100%}
#app input,#app textarea,#app select{font-size:max(16px,1em);max-width:100%}
#app h1,#app h2,#app h3,#app p,#app strong,#app small{overflow-wrap:break-word}
#app button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#app button:focus-visible,#dock button:focus-visible{outline:2px solid #ffb9d2;outline-offset:3px}
#dock.dock{
 position:fixed!important;
 left:50%!important;
 bottom:max(4px,var(--dg-bottom-safe))!important;
 width:min(calc(100% - 12px),534px)!important;
 height:74px!important;
 padding:6px!important;
 border-radius:24px!important;
 gap:0!important;
 transform:translateX(-50%) translateZ(0)!important;
 z-index:50!important;
 will-change:transform;
 transition:opacity .16s ease, bottom .16s ease;
}
#dock .navitem{min-width:0;flex:1 1 0;width:auto;height:60px;gap:5px;font-size:12px;line-height:1.15;padding:5px 1px;white-space:normal;text-align:center}
#dock .navitem>span{max-width:100%;white-space:normal;overflow-wrap:normal}
#dock .navitem svg{width:23px;height:23px;flex:0 0 23px}
#dock .navplus{min-width:54px;width:56px;height:56px;flex:0 0 56px;margin:-9px 1px 0}
#dock .navplus svg{width:29px;height:29px}
body.dg-input-active #dock.dock{opacity:0!important;pointer-events:none!important;bottom:-96px!important}
body.dg-input-active .dgm-sheet{bottom:4px}
.dgm-sheet{bottom:calc(82px + var(--dg-bottom-safe))!important}
.dg-avatar-crop-overlay,.store-dialog-overlay,.ord-sheet-layer,.notif-settings-backdrop,.backdrop{overscroll-behavior:contain}
#app :is(.hero,.ord-hero,.prod-hero,.notif-hero,.ag-hero,.fin-hero){min-width:0}
#app .hero{padding-top:max(32px,calc(12px + var(--dg-top-safe)))}
#app .main{padding-bottom:20px}
/* Home: native readable typography; do not clip the 'Ver todos' control */
#app .section-header{gap:8px}
#app .section-header h2{font-size:clamp(22px,6.5vw,27px)}
#app .order-banner{height:auto;min-height:111px;align-items:flex-start}
#app .order-banner h2{font-size:clamp(19px,6vw,25px);white-space:normal;line-height:1.18;overflow-wrap:break-word}
#app .order-banner >div{min-width:0;flex:1}
#app .order-banner .see-all{flex:0 0 auto;min-height:44px;min-width:74px;white-space:nowrap;padding:9px 6px;font-size:11px}
#app .order-main strong,#app .order-main small{white-space:normal;text-overflow:clip;overflow:visible;overflow-wrap:break-word;line-height:1.3}
#app .order-main strong{font-size:13px}
#app .order-main small{font-size:12px}
#app .order-row{min-height:82px;gap:8px}
#app .order-side{min-width:65px;max-width:88px}
#app .order-side small{font-size:10px}
#app .greeting p{font-size:clamp(13px,3.5vw,17px)}
#app .alert{min-width:0}
#app .alert-label{white-space:normal;line-height:1.3;letter-spacing:.8px}
#app .alert .sub{overflow-wrap:break-word}
#app .alert h2{overflow-wrap:break-word}
#app .alert-meta{flex-wrap:wrap;gap:5px}
/* Four indicators in two columns on phones: full labels/values, no micro-text */
@media(max-width:480px){
 #app .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 #app .stats .stat{min-height:118px;padding:12px 13px;gap:5px}
 #app .stats .stat .label{font-size:12px!important;white-space:normal!important;line-height:1.3}
 #app .stats .stat strong,#app .stats .stat:nth-child(2) strong{font-size:clamp(18px,5vw,24px)!important;line-height:1.16;white-space:normal;overflow-wrap:anywhere}
 #app .stats .stat .meta{font-size:11px}
 #app .stats .stat .small-icon svg{width:22px;height:22px}
 #app .stats .stat .watermark{opacity:.13}
 .fin-kpis,.ord-stats,.prod-kpis,.notif-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 .fin-kpi,.ord-stat,.prod-kpi,.notif-stat{min-height:105px!important;padding:12px!important;gap:7px!important}
 .fin-kpi strong,.ord-stat strong,.prod-kpi strong,.notif-stat strong{font-size:clamp(18px,5vw,23px)!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.15}
 .fin-kpi span:last-child,.ord-stat span:last-child,.prod-kpi span:last-child,.notif-stat span:last-child{font-size:12px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.2}
 .fin-kpi .fin-kpi-icon svg,.ord-stat-icon svg,.not-icon svg{width:20px;height:20px}
}
/* Filters: wrapped and fully readable, no half-cut pills beyond device edges */
@media(max-width:480px){
 .ord-chips,.prod-cats,.notif-tabs{display:flex;flex-wrap:wrap;gap:7px;overflow:visible!important;max-width:100%;scroll-snap-type:none;margin-bottom:12px}
 .ord-chip,.prod-cat,.notif-tab{min-height:42px!important;padding:10px 12px!important;font-size:12px!important;line-height:1.2}
}
/* Product cards: preserve full product titles and description */
.prod-card{min-width:0}
.prod-card-main,.prod-card-text,.prod-card-body{min-width:0}
.prod-card strong,.prod-card .prod-card-name{white-space:normal!important;overflow-wrap:break-word}
.prod-new,.ord-create{min-height:44px!important}
.prod-card .prod-badge{white-space:normal}
.ord-card{min-width:0}
.ord-card-main strong,.ord-card-main .ord-name-sub{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.25}
.ord-card-main .ord-name-sub{font-size:12px}
.ord-card-main strong{font-size:13px}
.ord-card-right{min-width:68px}
.ord-card-right time,.ord-card-right small{white-space:normal!important;text-align:right}
.ord-search,.prod-search{min-width:0}
.ord-filter{min-width:44px}
.ord-stat-icon,.notif-stat .not-icon{width:30px;height:30px}
.ord-sheet .ord-field,.store-dialog .store-field{min-width:0}
.ord-sheet .ord-fieldrow{min-width:0}
.ord-sheet .ord-fieldrow > div{min-width:0}
.ord-sheet-footer button,.store-dialog-foot button{min-height:48px}
.ord-sheet-header .ord-headline button,.store-dialog-title button{width:44px;height:44px}
.ord-sheet-layer .ord-sheet{max-height:calc(100dvh - 14px)}
/* Store UI: prevent 320px overflow, preserve full editable labels */
.store-page .store-edit-row{width:100%;max-width:100%;min-width:0;gap:8px}
.store-page .store-edit-icon{flex:0 0 40px}
.store-page .store-edit-text{flex:1 1 0;min-width:0}
.store-page .store-edit-text strong{font-size:13px;white-space:normal}
.store-page .store-edit-text small{font-size:11px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}
.store-page .store-edit-trail{min-width:0;max-width:110px;flex:0 1 110px}
.store-page .store-edit-trail small{font-size:11px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
.store-page .store-edit-trail svg{flex:0 0 13px}
.store-page .store-top-title{min-width:0}
.store-page .store-card-desc{font-size:13px}
.store-page .store-handle{font-size:12px}
.store-page .store-metric span{font-size:11px}
.store-page .store-social{min-width:39px;min-height:39px}
.store-page .store-cover-edit{min-height:43px}
.store-page .store-logo-edit{width:39px;height:39px;right:-9px;bottom:-7px}
.store-page .store-topbtn,.store-page .store-back{width:44px;height:44px;flex:0 0 44px}
.store-page .store-cta-row button{min-height:47px;font-size:12px}
.store-page .store-section-head{min-width:0}
.store-page .store-section-head small{white-space:normal;text-align:right}
@media(max-width:350px){
 .store-page .store-edit-row{gap:6px;padding:8px}
 .store-page .store-edit-icon{flex-basis:34px;width:34px;height:39px}
 .store-page .store-edit-trail{max-width:85px;flex-basis:85px}
 .store-page .store-edit-text strong{font-size:12px}
 .store-page .store-edit-text small{font-size:10px}
 .store-page .store-top-title h1{font-size:25px}
 .store-page .store-card-name{font-size:22px}
 .store-page .store-cover-edit{font-size:10px}
 .store-page .store-metric span{font-size:10px}
}
/* Agenda day/time controls: iOS touch targets */
.ag-date-arrow{width:44px!important;height:44px!important}
.ag-iconbutton{min-width:44px!important;min-height:44px!important}
.ag-new{min-height:44px!important}
.ag-tabs button{min-height:44px!important}
.ag-today{min-height:44px!important}
.notif-headbtn{min-width:44px!important;min-height:44px!important}
.notif-more{min-height:44px!important}
.notif-stat span:last-child{line-height:1.25}
.notif-row-content strong,.notif-row-content span{white-space:normal!important;overflow-wrap:break-word}
.notif-feature-text p{font-size:12px}
.notif-row-content span{font-size:11px}
.notif-utility button{min-height:44px}
.fin-period button{min-height:44px!important;font-size:12px}
.fin-title-row{min-width:0;gap:10px}
.fin-title-row h2{min-width:0;font-size:clamp(19px,5.7vw,25px)}
/* Form and bottom-sheet typing: browser should not zoom 16px fields */
input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],input[type=time],textarea,select{font-size:16px}
#dg-auth-root input{font-size:16px!important}
#dg-auth-root .dg-auth-back,#dg-auth-root .dg-auth-eye,#dg-auth-root .dg-auth-textbutton{min-height:44px}
@media(prefers-reduced-motion:reduce){#dock.dock{transition:none!important};html{scroll-behavior:auto}}

/* Finance descriptions must wrap instead of cutting ingredient names */
.fin-expense-info strong,.fin-legend-row span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:break-word;line-height:1.35}
.fin-expense-info{min-width:0}
.fin-legend-row{min-width:0}
.fin-legend-row>span{min-width:0}
