/* Mobile usa os mesmos dados e autorizações, sem outra aplicação. */
.mobile-nav { display:none; }
@media(max-width:767px), (max-width:1023px) and (max-height:500px) and (pointer:coarse) {
 :root { --mobile-bar:64px; --mobile-touch:44px; --mobile-bottom:calc(var(--mobile-bar) + env(safe-area-inset-bottom)); --top:56px; }
 #app,#app[data-rail="closed"],#app[data-rail="open"] { position:fixed; top:var(--mobile-offset,0px); left:0; right:0; height:var(--mobile-vh,100dvh); grid-template-columns:minmax(0,1fr); grid-template-rows:var(--top) auto minmax(0,1fr) var(--mobile-bottom); grid-template-areas:"top" "etapas" "main" "mobile"; }
 #app > .brand,#app > #rail { display:none; }
 #app > .top { min-width:0; height:var(--top); padding-inline:var(--gap-2); gap:0; }
 .top #railToggle,.top .proj-pick,.top .crumb-sep,.top .presenca,.top .avatar-btn,.top .spacer { display:none; }
 .top .project-name { flex:1 1 0; min-width:0; max-width:none; }
 .top .project-name-button { padding:var(--gap-2); max-width:100%; min-height:var(--mobile-touch); }
 .top .project-name-button svg { display:none; }
 .top .project-name-form { position:fixed; z-index:85; inset:var(--top) var(--sp-3) auto; padding:var(--sp-3); background:var(--raised); border:1px solid var(--line); }
 .top .busca-trigger,.top #roomPick,.top #sofiaBtn,.top #inspBtn,.top #faixaRecolher { min-width:var(--mobile-touch); width:var(--mobile-touch); height:var(--mobile-touch); padding:var(--gap-2); border:0; }
 .top .busca-trigger span,.top .busca-trigger kbd,.top #roomPick .mn,.top #roomPick > svg,.top .sofia-pill-label,.top #faixaRecolher span { display:none; }
 .top .seletores-slot { display:none; }
 .mobile-nav:not([hidden]) { grid-area:mobile; display:flex; align-items:stretch; padding-bottom:env(safe-area-inset-bottom); background:var(--surface); border-top:1px solid var(--line); min-width:0; }
 .mobile-tab { display:flex; flex:1 1 0; min-width:0; flex-direction:column; justify-content:center; align-items:center; gap:var(--gap-1); position:relative; color:var(--text-2); font:500 var(--text-xs)/var(--leading-tight) var(--f-sans); border:0; background:transparent; cursor:pointer; }
 .mobile-tab svg { width:20px; height:20px; }
 .mobile-tab[aria-current=page],.mobile-tab[aria-expanded=true] { color:var(--selection); background:var(--selection-soft); }
 .mobile-tab:focus-visible { outline:2px solid var(--selection); outline-offset:-2px; }
 .mobile-attention { position:absolute; width:6px; height:6px; top:var(--gap-3); right:28%; border-radius:50%; background:var(--pend); }
 .mobile-attention[hidden] { display:none; }
 .faixa-etapas { padding:var(--gap-2) var(--sp-3); gap:var(--gap-2); }
 .etapas-segmentos { display:none; }
 .etapas-situacao { flex:1 1 auto; min-width:0; }
 .project-finance { width:100%; justify-content:flex-start; flex-wrap:wrap; }
 .project-finance .model-pick { min-height:var(--mobile-touch); }
 #app[data-faixa=closed] .faixa-etapas { display:none; }
 .main { min-width:0; }
 .main[data-insp=open] .inspector { display:flex; position:fixed; inset:var(--top) 0 var(--mobile-bottom); z-index:72; width:100%; }
 .work,.project-work,.view,.view-body,.plan-content { min-width:0; }
 .view-head,.dept-head,.view-body { padding-inline:var(--sp-3); }
 .view-actions { flex-wrap:wrap; max-width:100%; }
 .row { flex-wrap:wrap; }
 .uxp-plano .btn,.modal[data-edicao-protegida] .btn { min-height:var(--mobile-touch); white-space:normal; max-width:100%; }
 .uxp-plano input[type=number],.uxp-plano select { font-size:var(--text-h5); }
 .uxp-plano .hint,.uxp-plano p,.uxp-plano button { overflow-wrap:anywhere; }
 .btn,.icon-btn,.icon-btn.sm,.send,.avatar-btn,button.model-pick,summary.btn { min-height:var(--mobile-touch); }
 .icon-btn,.icon-btn.sm,.send { min-width:var(--mobile-touch); width:var(--mobile-touch); height:var(--mobile-touch); }
 .input,.area,.select,textarea,input:not([type=checkbox]):not([type=radio]),select { font-size:var(--text-h5); }
 .grid2,.grid3,.budget-steps,.budget-simulator { grid-template-columns:minmax(0,1fr); }
 .atelier { padding-top:var(--sp-2); }
 .work:has(.atelier) { overflow:hidden; }
 .work > .view:has(.atelier) { height:100%; min-height:0; }
 .atelier { height:100%; min-height:0; }
 .atelier > .stream { min-height:0; }
 .atelier .composer-wrap { flex:none; }
 .atelier .sofia-provider-status { max-height:96px; overflow:auto; overscroll-behavior:contain; }
 .atelier .cbox textarea { min-height:var(--mobile-touch); max-height:96px; }
 .atelier-toolbar { padding-inline:var(--sp-3); flex-wrap:wrap; }
 .stream-in,.composer { padding-inline:var(--sp-3); }
 .composer-wrap { padding-bottom:var(--gap-3); }
 .cbox { padding:var(--gap-3); }
 .atelier #modoPick { min-width:var(--mobile-touch); width:var(--mobile-touch); height:var(--mobile-touch); }
 .atelier .cbar { gap:var(--gap-1); flex-wrap:wrap; }
 .atelier .cbar .spacer,.atelier .cbar .chint { display:none; }
 .atelier .cbar .atelier-controles { flex:1 1 0; min-width:0; max-width:none; }
 .atelier-controles #modelPick { min-width:0; max-width:100%; height:var(--mobile-touch); }
 .atelier-controles #modelPick .pv { display:none; }
 .atelier-failure-dock { top:var(--sp-2); }
 .sofia-drawer.mobile-sofia { position:fixed; top:var(--mobile-offset,0px); left:0; right:0; bottom:auto; height:var(--mobile-vh,100dvh); width:100%; max-width:none; border:0; border-radius:0; z-index:90; padding-bottom:env(safe-area-inset-bottom); }
 .mobile-sofia .sofia-drawer-head { flex-wrap:wrap; padding:var(--gap-2) var(--sp-3); }
 .mobile-sofia .composer-wrap { padding:var(--sp-3); }
 .mobile-sofia .sofia-modelos { flex-wrap:wrap; }
 .mobile-sofia .sofia-modelos .model-pick { min-width:0; max-width:100%; }
 .mobile-sofia .cbar .chint { display:none; }
 .scrim { padding:0; top:var(--mobile-offset,0px); bottom:auto; height:var(--mobile-vh,100dvh); z-index:110; }
 .scrim .modal,.scrim .modal.wide,.scrim .schedule-workspace.modal.wide { width:100%; max-width:none; height:100%; max-height:100%; min-height:0; border-radius:0; display:flex; flex-direction:column; resize:none; overflow:hidden; }
 .modal::after { display:none; }
 .modal .modal-head,.modal .modal-foot { flex:none; padding:var(--sp-3); }
 .modal .modal-body { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:var(--sp-3); }
 .modal .modal-foot { padding-bottom:max(var(--sp-3),env(safe-area-inset-bottom)); }
 .modal-foot .btn { flex:1 1 auto; }
 .toasts { bottom:calc(var(--mobile-bottom) + var(--gap-3)); width:calc(100% - var(--sp-4)); }
 .plano-tabs { flex-wrap:nowrap; overflow:auto; scrollbar-width:thin; }
 .plano-tabs > button { flex:none; }
 .plan-navigation .row { flex-wrap:wrap; }
 .plano-project-head { flex-wrap:wrap; }
 .plano-project-head h1 { font-size:var(--text-h5); }
 .plano-project-head { gap:var(--gap-3); }
 .budget-table-scroll { overflow:visible; }
 .budget-table,.budget-table tbody,.budget-table tr,.budget-table td { display:block; width:100%; min-width:0; }
 .budget-table thead { display:none; }
 .budget-table tr { margin-block:var(--sp-3); padding:var(--sp-3); border:1px solid var(--line); border-radius:var(--r); }
 .budget-table tr[hidden] { display:none; }
 .budget-table td { padding:var(--gap-2) 0; border:0; }
 .budget-table td:first-child,.budget-table td:last-child,.budget-table .budget-source { min-width:0; }
 .budget-table .input { min-width:0; }
 .budget-table td[data-mobile-label]::before { content:attr(data-mobile-label); display:block; font-weight:500; color:var(--text-2); margin-bottom:var(--gap-2); }
 .budget-table-scroll[data-role-mobile] { overflow:visible; }
 .schedule-scroll { overflow:auto; }
 .schedule-read-mobile { display:grid; gap:var(--sp-3); }
 .schedule-desktop { display:none; }
 .schedule-mobile-item { border-bottom:1px solid var(--line); padding-block:var(--gap-3); }
 .schedule-mobile-item h4,.schedule-mobile-item p { margin:0 0 var(--gap-2); }
 .schedule-availability-list { grid-template-columns:minmax(0,1fr); }
 .schedule-scroll:has(.schedule-table) { overflow:visible; border:0; }
 .schedule-table,.schedule-table tbody,.schedule-table tr,.schedule-table th,.schedule-table td { display:block; width:100%; min-width:0; }
 .schedule-table thead { display:none; }
 .schedule-table tr { border:1px solid var(--line); border-radius:var(--r); padding:var(--sp-3); margin-bottom:var(--sp-3); }
 .schedule-table td,.schedule-table th { border:0; padding:var(--gap-2) 0; max-width:none; }
 .schedule-table td[data-mobile-label]::before { content:attr(data-mobile-label)+': '; color:var(--text-2); }
 .schedule-scroll:has(.schedule-edit-table) { overflow:visible; border:0; }
 .schedule-edit-table,.schedule-edit-table tbody,.schedule-edit-table tr,.schedule-edit-table td { display:block; width:100%; min-width:0; }
 .schedule-edit-table thead { display:none; }
 .schedule-edit-table tr { border:1px solid var(--line); border-radius:var(--r); padding:var(--sp-3); margin-bottom:var(--sp-3); }
 .schedule-edit-table td,.schedule-edit-table td:first-child,.schedule-edit-table td:nth-child(2),.schedule-edit-table td:nth-child(3) { min-width:0; width:100%; padding:var(--gap-2) 0; border:0; }
 .schedule-edit-table td[data-mobile-label]::before { content:attr(data-mobile-label); display:block; font-weight:500; color:var(--text-2); margin-bottom:var(--gap-2); }
 .schedule-edit-table .input,.schedule-edit-table td:nth-child(3) .input { width:100%; min-width:0; }
 .production-columns { min-width:0; display:flex; flex-direction:column; }
 .production-column { min-width:0; }
 .production-task { min-height:var(--mobile-touch); }
 .production-list-table,.production-list-table tbody,.production-list-table tr,.production-list-table th,.production-list-table td { display:block; min-width:0; width:100%; }
 .production-list-table thead { display:none; }
 .production-list-table tr { padding:var(--gap-3); border-bottom:1px solid var(--line); }
 .production-list-table td,.production-list-table th { border:0; padding:var(--gap-2) 0; max-width:none; }
 .production-list-table td[data-mobile-label]::before { content:attr(data-mobile-label)+': '; color:var(--text-2); }
 .ajustes-layout { display:block; }
 .ajustes-indice { position:static; display:flex; overflow:auto; gap:var(--gap-2); margin-bottom:var(--sp-4); white-space:nowrap; }
 .ajustes-indice a,.ajustes-indice button { flex:none; min-height:var(--mobile-touch); }
 .conn { flex-wrap:wrap; }
 .conn-main { min-width:0; overflow-wrap:anywhere; }
 .conn-side { flex-wrap:wrap; }
 .cv-view > .view-head { flex-wrap:wrap; gap:var(--gap-2); padding:var(--gap-2) var(--sp-3); }
 .cv-toolbar { gap:var(--gap-2); }
 .cv-toolbar .cv-action-group { flex-wrap:wrap; }
 .cv-toolbar .cv-action-group:empty { display:none; }
 .cv-heading > h2 { display:none; }
 .cv-zoom { max-width:calc(100% - var(--sp-4)); }
 .cv-minimap-control,.cv-modo-indicador,.cv-modo { display:none; }
 .cv-workspace-toolbar { flex-wrap:wrap; }
 .cv-boards { min-width:0; max-width:100%; overflow:auto; }
 .cv-guia { display:none; }
 .cv-touch-help { display:block; }
 .cv-touch-help { position:absolute; left:var(--sp-3); bottom:var(--sp-7); max-width:calc(100% - var(--sp-6)); margin:0; padding:var(--gap-2); font-size:var(--text-xs); background:var(--surface); color:var(--text-2); border-radius:var(--r-s); pointer-events:none; }
 .cv-tools-list { max-width:calc(100vw - var(--sp-4)); max-height:55dvh; overflow:auto; }
 .cv-dock { position:fixed; top:var(--mobile-offset,0px); left:0; right:0; bottom:auto; height:var(--mobile-vh,100dvh); width:100%; max-width:none; z-index:75; }
 html[data-mobile-keyboard=true] { --mobile-bottom:0px; }
 html[data-mobile-keyboard=true] #app { grid-template-rows:var(--top) auto minmax(0,1fr) 0; }
 html[data-mobile-keyboard=true] .mobile-nav { display:none; }
 html[data-mobile-keyboard=true] .faixa-etapas { display:none; }
 html[data-mobile-keyboard=true] .toasts { bottom:var(--gap-3); }
 html[data-mobile-keyboard=true] .mobile-sofia .sofia-drawer-autonomy { display:none; }
 html[data-mobile-keyboard=true] .sofia-provider-status { max-height:72px; overflow:auto; }
 html[data-mobile-keyboard=true] .sofia-provider-status .provider-state { padding:var(--gap-2); }
 .mobile-sofia .stream { min-height:0; }
 .mobile-sofia .composer-wrap { min-height:0; flex:none; max-height:calc(100% - var(--top)); overflow:auto; }
}
@media(max-width:767px) and (max-height:500px), (max-width:1023px) and (max-height:500px) and (pointer:coarse) {
 .faixa-etapas { display:none; }
 .atelier > .stream { padding:0; }
 .atelier-toolbar { flex:none; padding:0; }
 .atelier > .visual-tip { display:none; }
 .sofia-provider-status { max-height:48px; overflow:auto; }
 .atelier .sofia-provider-status { max-height:48px; }
 .atelier .composer-mode { padding-block:0; }
 .atelier .cbox textarea { min-height:var(--mobile-touch); max-height:80px; }
 .atelier .composer-wrap { flex:none; padding-block:0; max-height:calc(var(--mobile-vh,100dvh) - var(--top) - var(--mobile-bottom)); min-height:0; overflow:auto; }
}
.mobile-menu-scrim { position:fixed; inset:0; z-index:95; background:var(--scrim); display:flex; align-items:flex-end; }
.mobile-menu { width:100%; max-height:90dvh; background:var(--surface); color:var(--text); padding:var(--sp-4); padding-bottom:max(var(--sp-4),env(safe-area-inset-bottom)); border-radius:var(--r-l) var(--r-l) 0 0; display:flex; flex-direction:column; }
.mobile-menu-head { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); }
.mobile-menu-head h2 { margin:0; font-size:var(--text-h3); }
.mobile-menu-list { min-height:0; overflow:auto; display:grid; gap:var(--gap-2); padding-top:var(--sp-3); }
.mobile-menu-item { display:flex; justify-content:flex-start; min-height:44px; gap:var(--sp-3); }
.mobile-menu-item > span:not(.nav-ico):not(.nav-count) { flex:1; text-align:left; }
@media(min-width:768px) and (min-height:501px), (min-width:1024px), (min-width:768px) and (hover:hover) { .cv-touch-help { display:none; } }
