/* TESEO — responsividade global */
:root { --teseo-mobile-padding: 14px; --teseo-sidebar-mobile: 68px; }
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; }
button, a, input, select, textarea { touch-action: manipulation; }
@media (max-width: 1100px) {
  aside.sidebar { width: 76px !important; min-width: 76px !important; padding-left: 8px !important; padding-right: 8px !important; }
  aside.sidebar .logo-full, aside.sidebar .section-label, aside.sidebar .nav-label, aside.sidebar .nav-children, aside.sidebar .chevron-toggle { display:none !important; }
  aside.sidebar .logo-icon { display:block !important; margin:auto; max-width:52px; }
  aside.sidebar .nav-item { justify-content:center !important; padding-left:8px !important; padding-right:8px !important; }
  main { min-width:0 !important; width:calc(100vw - 76px) !important; }
  main > div, main .max-w-7xl, main .container { max-width:100% !important; }
  .grid { grid-template-columns:1fr !important; }
  table { min-width:620px; }
  .overflow-x-auto, [class*="overflow-x-auto"] { overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  .fixed { max-width:calc(100vw - 28px) !important; }
}
@media (max-width: 700px) {
  aside.sidebar { position:fixed !important; z-index:100; height:100vh; left:0; top:0; }
  main { margin-left:var(--teseo-sidebar-mobile) !important; width:calc(100vw - var(--teseo-sidebar-mobile)) !important; }
  main > div { padding-left:var(--teseo-mobile-padding) !important; padding-right:var(--teseo-mobile-padding) !important; }
  header, .topbar, [class*="topbar"] { gap:8px !important; }
  h1 { font-size:1.35rem !important; line-height:1.25 !important; }
  h2 { font-size:1.1rem !important; }
  h3 { font-size:1rem !important; }
  .flex.flex-row, .sm\\:flex-row, .md\\:flex-row, .lg\\:flex-row { flex-direction:column !important; align-items:stretch !important; }
  .items-center { align-items:flex-start !important; }
  .justify-between { justify-content:flex-start !important; }
  .gap-6 { gap:1rem !important; }
  .gap-8 { gap:1.25rem !important; }
  .p-6, .px-6 { padding-left:var(--teseo-mobile-padding) !important; padding-right:var(--teseo-mobile-padding) !important; }
  .py-8 { padding-top:1.25rem !important; padding-bottom:1.25rem !important; }
  .w-1\\/2, .w-1\\/3, .w-2\\/3, .sm\\:w-1\\/2, .lg\\:w-\\[380px\\] { width:100% !important; }
  [class*="text-3xl"], [class*="text-4xl"], [class*="text-5xl"] { font-size:1.5rem !important; }
  [class*="grid-cols-2"], [class*="grid-cols-3"], [class*="grid-cols-4"], [class*="grid-cols-5"] { grid-template-columns:1fr !important; }
  input, select, textarea { min-height:42px; width:100%; }
  button { min-height:40px; }
  .teseo-mobile-scroll, .overflow-auto { overflow-x:auto !important; max-width:100%; }
  .modal, [role="dialog"], [data-state="open"] { max-width:calc(100vw - 24px) !important; max-height:calc(100vh - 24px) !important; overflow:auto !important; }
  .prompt-stack { left:12px !important; right:12px !important; width:auto !important; }
}
@media (max-width: 420px) {
  aside.sidebar { width:var(--teseo-sidebar-mobile) !important; min-width:var(--teseo-sidebar-mobile) !important; }
  main { width:calc(100vw - var(--teseo-sidebar-mobile)) !important; }
  main > div { padding-left:10px !important; padding-right:10px !important; }
  .rounded-2xl { border-radius:12px !important; }
  .text-sm { font-size:.8rem !important; }
  .text-xs { font-size:.7rem !important; }
  table { min-width:560px; }
}

/* Dispositivos móveis com viewport em modo desktop */
@media (pointer: coarse) {
  html, body { width:100% !important; max-width:100vw !important; overflow-x:hidden !important; }
  aside.sidebar { position:fixed !important; left:0 !important; top:0 !important; bottom:0 !important; width:64px !important; min-width:64px !important; max-width:64px !important; padding:8px 5px !important; overflow:hidden !important; z-index:1000 !important; }
  aside.sidebar .logo-full, aside.sidebar .section-label, aside.sidebar .nav-label, aside.sidebar .nav-children, aside.sidebar .chevron-toggle, aside.sidebar .logo-divider-line { display:none !important; }
  aside.sidebar .logo-icon { display:block !important; width:42px !important; height:auto !important; margin:4px auto 14px !important; }
  aside.sidebar .nav-item { width:54px !important; min-height:48px !important; margin:2px auto !important; padding:10px 0 !important; display:flex !important; justify-content:center !important; align-items:center !important; }
  aside.sidebar .nav-icon { width:22px !important; height:22px !important; }
  main { display:block !important; margin-left:64px !important; width:calc(100vw - 64px) !important; min-width:0 !important; max-width:calc(100vw - 64px) !important; overflow:hidden !important; }
  main > div, main .max-w-7xl, main .container { width:100% !important; max-width:none !important; min-width:0 !important; padding-left:12px !important; padding-right:12px !important; }
  .topbar-breadcrumb { flex-wrap:wrap !important; min-width:0 !important; }
  .topbar-breadcrumb + * { min-width:0 !important; }
  .card-revealed, .card, [class*="card"] { max-width:100% !important; min-width:0 !important; }
  .grid, [class*="grid-cols-"] { grid-template-columns:1fr !important; min-width:0 !important; }
  .flex { min-width:0 !important; }
  .overflow-hidden { min-width:0 !important; }
  table { min-width:560px !important; }
  .fixed { max-width:calc(100vw - 84px) !important; }
}

/* Correção para Android em modo desktop: usa a largura física do aparelho */
@media (max-device-width: 900px) {
  html, body { width:100% !important; max-width:100vw !important; overflow-x:hidden !important; }
  aside.sidebar { position:fixed !important; left:0 !important; top:0 !important; bottom:0 !important; width:58px !important; min-width:58px !important; max-width:58px !important; padding:8px 3px !important; overflow:hidden !important; z-index:1000 !important; }
  aside.sidebar .logo-full, aside.sidebar .section-label, aside.sidebar .nav-label, aside.sidebar .nav-children, aside.sidebar .chevron-toggle { display:none !important; }
  aside.sidebar .logo-icon { display:block !important; width:38px !important; margin:5px auto 12px !important; }
  aside.sidebar .nav-item { width:50px !important; min-height:46px !important; padding:10px 0 !important; margin:1px auto !important; display:flex !important; justify-content:center !important; }
  aside.sidebar .nav-icon { width:21px !important; height:21px !important; }
  main { margin-left:58px !important; width:calc(100vw - 58px) !important; max-width:calc(100vw - 58px) !important; min-width:0 !important; overflow:hidden !important; }
  main > div, main .max-w-7xl, main .container { width:100% !important; max-width:none !important; min-width:0 !important; padding-left:10px !important; padding-right:10px !important; }
  .topbar-breadcrumb { width:100% !important; min-width:0 !important; flex-wrap:wrap !important; overflow:hidden !important; }
  .topbar-breadcrumb ~ * { max-width:100% !important; }
  [class*="grid-cols-"] { grid-template-columns:1fr !important; }
  .card-revealed, [class*="card"] { min-width:0 !important; max-width:100% !important; }
  .overflow-x-auto, table { max-width:100% !important; overflow-x:auto !important; }
  .prompt-stack, .offline-dock, [class*="offline"] { max-width:calc(100vw - 70px) !important; }
  .offline-dock { left:60px !important; right:6px !important; bottom:6px !important; }
}
