/* Camada responsiva final Delfos One.
   Carregada por último para normalizar os 31 módulos sem substituir sua identidade. */

html { overflow-x: clip; }
body, #app, #view, .app-shell, .app-main, .main-content, .module-content { min-width: 0; max-width: 100%; }
#view, .main-content, .module-content { overflow-wrap: anywhere; }
#view *, #view *::before, #view *::after { box-sizing: border-box; }
#view img, #view svg, #view canvas, #view video { max-width: 100%; }
#view img, #view video { height: auto; }
#view canvas { min-width: 0; }

/* Contêineres compartilhados */
#view :is(.card, .panel, .content-card, .dashboard-card, .stat-card, .metric-card) { min-width: 0; }
#view :is(.grid, .cards-grid, .dashboard-grid, .stats-grid, .dashboard-stats, .metrics-grid) > * { min-width: 0; }
#view :is(.filters, .filter-row, .filters-row, .toolbar, .actions, .page-actions, .top-actions, .form-actions) {
  min-width: 0;
  flex-wrap: wrap;
}

.platform-content-list{display:grid;gap:var(--space-5)}
.platform-content-group{display:grid;gap:var(--space-3)}
.platform-content-card{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-5);background:var(--panel)}
.platform-content-card h3{margin:0 0 var(--space-2)}
.platform-content-body{line-height:1.65;overflow-wrap:anywhere}
.platform-content-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}
.content-center{padding:1.5rem;max-width:1280px;margin:0 auto}.content-center-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.manual-layout{display:grid;gap:var(--space-5)}.manual-nav{min-width:0}.manual-search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);padding:0 12px;margin-bottom:var(--space-3)}.manual-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);padding:12px 0}.manual-module{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);margin-bottom:var(--space-2);overflow:hidden}.manual-module summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;font-weight:700}.manual-module summary small{color:var(--muted)}.manual-items{display:grid;border-top:1px solid var(--line)}.manual-items button{display:grid;grid-template-columns:auto 1fr;gap:10px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);padding:11px 14px;cursor:pointer}.manual-items button:last-child{border-bottom:0}.manual-items button span{color:var(--muted);font-variant-numeric:tabular-nums}.manual-items button:hover,.manual-items button.is-active{background:var(--surface-alt);color:var(--green)}.manual-reader{min-width:0}.manual-article h2{margin-top:0}.manual-video{position:relative;aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;background:#000;margin:var(--space-4) 0}.manual-video iframe{width:100%;height:100%;border:0}.manual-video-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:#000;cursor:pointer}.manual-video-play img{width:100%;height:100%;object-fit:cover;opacity:.86}.manual-video-play span{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--green);color:#fff;font-size:24px;box-shadow:0 8px 30px rgba(0,0,0,.4)}@media(min-width:900px){.manual-layout{grid-template-columns:minmax(250px,320px) minmax(0,1fr);align-items:start}.manual-nav{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}}@media(max-width:600px){.content-center{padding:var(--space-4)}.manual-video-play span{width:52px;height:52px}}
.manual-reader{padding-bottom:var(--space-5)}@media(min-width:900px){.manual-nav,.manual-reader{max-height:calc(100vh - 190px);overflow-y:auto}.manual-reader{padding-right:8px;scrollbar-gutter:stable}.manual-article{padding-bottom:0}.manual-article .platform-content-actions{position:sticky;bottom:0;z-index:2;margin:var(--space-5) calc(var(--space-5) * -1) 0;padding:var(--space-3) var(--space-5);border-top:1px solid var(--line);background:var(--panel)}}@media(max-width:600px){.manual-article .platform-content-actions{position:sticky;bottom:0;z-index:2;background:var(--panel);padding:var(--space-3) 0;border-top:1px solid var(--line)}}
.platform-lgpd-layout{display:grid;gap:var(--space-4)}.platform-lgpd-nav{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media(min-width:768px){.platform-lgpd-layout{grid-template-columns:minmax(190px,240px) 1fr}.platform-lgpd-nav{align-content:start;flex-direction:column}.platform-lgpd-nav .profile-tab{text-align:left}}
.privacy-notice{position:fixed;z-index:1200;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(0,0,0,.45)}
.privacy-notice h2{font-size:var(--text-lg);margin:0 0 var(--space-3)}.privacy-notice p{color:var(--text);line-height:1.6;margin:0 0 var(--space-3)}.privacy-notice-links{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);margin-bottom:var(--space-4)}.privacy-notice-links button{border:0;background:none;color:var(--green);padding:0;text-decoration:underline;cursor:pointer}.privacy-notice-continue{width:100%;justify-content:center}.privacy-notice small{display:block;color:var(--muted);text-align:center;margin-top:var(--space-3)}
.privacy-policy-overlay{position:fixed;z-index:1300;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:16px}.privacy-policy-dialog{width:min(840px,100%);max-height:90vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5)}.privacy-policy-dialog header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line);padding-bottom:var(--space-3)}.privacy-policy-dialog h2{margin:0}.privacy-policy-dialog header button{border:0;background:none;color:var(--text);font-size:28px;cursor:pointer}.privacy-policy-version{color:var(--muted);font-size:var(--text-xs);margin:var(--space-3) 0}.privacy-policy-body{line-height:1.75;overflow-wrap:anywhere}
#view :is(input, select, textarea, .input, .select, .textarea) { max-width: 100%; }

/* Tabelas preservam todas as colunas com rolagem localizada. */
#view :is(.table-container, .table-responsive, .table-wrap, .table-wrapper, [class*="table-container"], [class*="table-wrapper"]) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}
#view table { border-collapse: collapse; }
#view :is(.table-container, .table-responsive, .table-wrap, .table-wrapper, [class*="table-container"], [class*="table-wrapper"]) > table {
  min-width: max(100%, 640px);
}

/* Diálogos nunca escapam do viewport. */
:is(.modal-overlay, .dialog-overlay, [class*="modal-overlay"]) { padding: clamp(8px, 2vw, 24px); }
:is(.modal, .dialog, [role="dialog"], [class*="modal-content"]) {
  max-width: min(var(--modal-max-width, 760px), calc(100vw - 16px));
  max-height: min(92dvh, 920px);
  overflow: auto;
  overscroll-behavior: contain;
}

/* Desktop largo: conteúdo legível e grids com uso equilibrado do espaço. */
@media (min-width: 1440px) {
  #view > :is(.page, .module-page, .content, [class$="-page"]) { width: 100%; max-width: 1600px; margin-inline: auto; }
  #view :is(.dashboard-grid, .stats-grid, .dashboard-stats, .metrics-grid) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Tablet e mobile horizontal. */
@media (max-width: 768px) {
  /* Mesmo respiro usado pela faixa mobile de Gestão de Auditorias. */
  #view { padding: 16px; }
  #view :is(.page-title, .module-title, h1) { font-size: clamp(1.25rem, 5vw, 1.75rem); line-height: 1.2; }
  #view :is(.dashboard-grid, .stats-grid, .dashboard-stats, .metrics-grid, .cards-grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #view :is(.filters, .filter-row, .filters-row, .toolbar, .page-header, .top, .top-actions) { gap: 10px; }
  #view :is(.filters, .filter-row, .filters-row) > :is(input, select, .input, .select, .searchable-dropdown) {
    flex: 1 1 min(100%, 220px);
    width: auto;
    min-width: 0;
  }
  #view :is(.form-grid, .fields-grid, .modal-grid, [class*="form-grid"]) { grid-template-columns: minmax(0, 1fr); }
  :is(.modal-overlay, .dialog-overlay, [class*="modal-overlay"]) { align-items: flex-end; }
  :is(.modal, .dialog, [role="dialog"], [class*="modal-content"]) { width: 100%; border-radius: 14px 14px 0 0; }
}

/* 375 px: alvo mínimo homologado. */
@media (max-width: 375px) {
  #view :is(.dashboard-grid, .stats-grid, .dashboard-stats, .metrics-grid, .cards-grid) { grid-template-columns: minmax(0, 1fr); }
  #view :is(.btn, button, [role="button"]) { max-width: 100%; }
  #view :is(.form-actions, .modal-actions, .page-actions, .top-actions) > :is(.btn, button) { flex: 1 1 100%; justify-content: center; }
  #view :is(.tabs, .nav-tabs, .module-tabs, [class$="-tabs"]) {
    max-width: 100%;
    overflow-x: auto;
    scroll-snap-type: inline proximity;
    -webkit-overflow-scrolling: touch;
  }
  #view :is(.tabs, .nav-tabs, .module-tabs, [class$="-tabs"]) > * { flex: 0 0 auto; scroll-snap-align: start; }
  #view :is(input, select, textarea, .input, .select, .textarea) { font-size: 16px; }
  :is(.modal, .dialog, [role="dialog"], [class*="modal-content"]) { max-width: 100vw; max-height: 94dvh; padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  #view *, #view *::before, #view *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media print {
  .topbar, .module-sidebar, .mobile-module-sidebar, .page-actions, .no-print { display: none !important; }
  #view, .main-content { width: 100% !important; max-width: none !important; overflow: visible !important; padding: 0 !important; }
}
