/* AfriPass Phase 4: responsive application workspaces, additive overrides.
   Load after all existing stylesheets. Never hides navigation unless JS enhances page. */
html, body { max-width:100%; }
body.executive-ui { overflow-x:clip; }
img, video, svg { max-width:100%; }
.app-shell, .admin-shell, .dashboard, .admin-main, .panel, .admin-panel { min-width:0; }
.dashboard p, .panel p, .admin-panel p, .public-link { overflow-wrap:anywhere; }
.table-scroll, .admin-table-wrap, .table-responsive { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
:where(input,select,textarea) { max-width:100%; }
:where(button,a,input,select,textarea):focus-visible { outline:3px solid #1E88E5; outline-offset:3px; }
.ap-mobile-nav-trigger { display:none; }
.ap-mobile-nav-shade { display:none; }
@media (max-width: 900px) {
  .auth-layout, .app-shell, .admin-shell { display:block !important; width:100%; }
  .auth-layout > *, .app-shell > *, .admin-shell > * { min-width:0; }
  .auth-form-wrap { width:100%; max-width:680px; margin-inline:auto; padding:clamp(16px,4vw,30px); }
  .auth-form { width:100%; max-width:100%; }
  .dashboard, .admin-main { width:100%; max-width:100%; padding:72px 16px 28px !important; margin:0; }
  .dashboard-top, .admin-topbar { display:flex; flex-direction:column; align-items:stretch; gap:16px; }
  .dashboard-top .btn, .admin-topbar .admin-btn { max-width:100%; }
  .dashboard h1, .admin-topbar h1 { font-size:clamp(1.7rem,6vw,2.65rem); line-height:1.16; overflow-wrap:anywhere; }
  .stats-grid, .admin-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .panel-grid, .admin-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
  .stat-card, .admin-stat, .panel, .admin-panel { min-width:0; padding:clamp(15px,3vw,24px); }
  .form-grid, .profile-grid, .quick-actions { grid-template-columns:minmax(0,1fr); }
  .admin-table-wrap { width:100%; overflow-x:auto; }
  .admin-table { min-width:560px; }
  body.ap-nav-ready .app-shell > .sidebar,
  body.ap-nav-ready .admin-shell > .admin-sidebar {
    position:fixed !important; inset:0 auto 0 0; top:0 !important;
    width:min(86vw,330px) !important; max-width:330px; height:100dvh !important;
    overflow-y:auto; z-index:2002; display:block !important;
    transform:translateX(-105%); transition:transform .22s ease;
    box-shadow:18px 0 45px rgba(7,20,33,.25);
    background:#0D1B2A; padding-top:65px;
  }
  body.ap-nav-ready.ap-nav-open .app-shell > .sidebar,
  body.ap-nav-ready.ap-nav-open .admin-shell > .admin-sidebar { transform:translateX(0); }
  body.ap-nav-ready .ap-mobile-nav-trigger {
    display:inline-flex; position:fixed; top:max(12px, env(safe-area-inset-top)); left:12px;
    z-index:2003; align-items:center; justify-content:center;
    padding:10px 14px; min-height:44px; gap:8px; border:1px solid #dbe7e4;
    border-radius:13px; background:#fff; box-shadow:0 8px 28px rgba(13,27,42,.15);
    color:#0D1B2A; font-weight:800; font-size:14px; cursor:pointer;
  }
  body.ap-nav-ready .ap-mobile-nav-shade {
    display:block; position:fixed; inset:0; background:rgba(7,20,33,.66);
    z-index:2001; opacity:0; pointer-events:none; transition:opacity .22s ease;
  }
  body.ap-nav-ready.ap-nav-open .ap-mobile-nav-shade { opacity:1; pointer-events:auto; }
  body.ap-nav-open { overflow:hidden; }
  .floating-language-switch { bottom:max(10px, env(safe-area-inset-bottom)); right:10px; max-width:calc(100% - 20px); }
}
@media (max-width: 540px) {
  .dashboard, .admin-main { padding-inline:12px !important; }
  .stats-grid, .admin-stats { grid-template-columns:minmax(0,1fr); }
  .dashboard-top .btn { width:100%; text-align:center; }
  .panel, .stat-card, .admin-panel, .admin-stat { border-radius:18px; padding:16px; }
  .quick-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
  .quick-actions a, .admin-actions a { width:100%; max-width:100%; }
  .form-grid { display:grid; grid-template-columns:minmax(0,1fr); }
  .auth-form-wrap { padding:15px; }
  .admin-user-card { min-width:0; width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  body.ap-nav-ready .app-shell > .sidebar, body.ap-nav-ready .admin-shell > .admin-sidebar,
  .ap-mobile-nav-shade { transition:none !important; }
}
