/* Mobile-first usability layer for the AccManager application. */ html { min-width: 320px; overflow-x: hidden; -webkit-text-size-adjust: 100%; } body { min-width: 320px; } button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; } .table-wrap, .overflow-x-auto { overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; } @media (max-width: 900px) { body.app-shell, #appMain, #mainContent { min-height: 0; } body.mobile-nav-open { overflow: hidden; } #appSidebar { padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); } #appSidebar nav { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 1rem; -webkit-overflow-scrolling: touch; } #appMain > header { min-height: 3.5rem; height: auto; padding-top: max(0.35rem, env(safe-area-inset-top)); padding-bottom: 0.35rem; } #mobileMenuBtn, #profileBtn, #logoutBtn, #pendingAssetRequestsBtn { min-width: 2.75rem; min-height: 2.75rem; touch-action: manipulation; } #pendingAssetRequestsBtn { justify-content: center; } #mainContent > [class*="-page"] { width: 100%; min-width: 0; padding: 0.875rem; gap: 0; } .dashboard-page { padding-bottom: calc(0.875rem + env(safe-area-inset-bottom)) !important; } .dashboard-header, .page-header { margin-bottom: 0.875rem; } .dashboard-header > div, .page-header > div { min-width: 0; } .dashboard-header h1, .page-header h1, .users-page h1 { font-size: 1.35rem; line-height: 1.25; overflow-wrap: anywhere; } .dashboard-header p, .page-header p, .users-page h1 + p { margin-top: 0.25rem; font-size: 0.75rem; line-height: 1.4; } .dashboard-actions, .asset-header-actions, .consumable-header-actions { max-width: 100%; } .page-header > button, .dashboard-actions > button, .page-header .asset-header-actions > button, .page-header .consumable-header-actions > button { min-height: 2.75rem; justify-content: center; touch-action: manipulation; } .page-filters, .users-controls { margin-bottom: 0.875rem; } .page-filters > *, .users-controls > * { min-width: 0; max-width: 100%; } .page-filters > div, .users-controls > div { align-items: stretch; flex-direction: column; gap: 0.35rem; } .page-filters input, .page-filters select, .users-controls input, .users-controls select, .modal-content input, .modal-content select, .modal-content textarea { width: 100%; min-height: 2.75rem; font-size: 1rem; } .dashboard-stats, .apps-stats { gap: 0.75rem; } .dashboard-stats > *, .apps-stats > * { min-width: 0; } .table-wrap { min-width: 0; scrollbar-width: thin; } /* Tables are progressively enhanced with data labels by app.js. */ #mainContent table.mobile-card-table:not(.keep-table-mobile) { display: block; width: 100%; min-width: 0 !important; border-collapse: separate; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > thead { display: none; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.75rem; padding: 0.75rem; background: rgb(248 250 252 / 0.72); } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr { display: grid; width: 100%; min-width: 0; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 0.75rem; background: #fff; box-shadow: 0 1px 2px rgb(15 23 42 / 0.05); } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr:hover { background: #fff; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td { position: static !important; z-index: auto !important; display: grid; grid-template-columns: minmax(5.75rem, 36%) minmax(0, 1fr); align-items: start; gap: 0.75rem; width: auto !important; min-width: 0 !important; max-width: none !important; padding: 0.65rem 0.75rem; border: 0; border-bottom: 1px solid #f1f5f9; background: transparent !important; box-shadow: none !important; color: #334155; text-align: left !important; white-space: normal !important; overflow-wrap: anywhere; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td:last-child { border-bottom: 0; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td::before { content: attr(data-label); color: #64748b; font-size: 0.625rem; font-weight: 800; line-height: 1.35; letter-spacing: 0.06em; text-transform: uppercase; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td[colspan] { display: block; padding: 1.5rem 1rem; text-align: center !important; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td[colspan]::before { content: none; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td > * { min-width: 0; max-width: 100%; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td .truncate { white-space: normal; overflow-wrap: anywhere; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td .inline-flex { flex-wrap: wrap; justify-content: flex-start; } #mainContent table.mobile-card-table:not(.keep-table-mobile) button, #mainContent .asset-mobile-card button, #mainContent .consumable-mobile-card button { min-width: 2.5rem; min-height: 2.5rem; touch-action: manipulation; } .page-pager { width: 100%; padding: 0.75rem !important; padding-bottom: max(0.75rem, env(safe-area-inset-bottom)) !important; line-height: 1.4; } .page-pager > div, .page-pager > span { max-width: 100%; } .page-pager button { min-width: 2.75rem; min-height: 2.5rem; touch-action: manipulation; } .modal-backdrop { padding-top: env(safe-area-inset-top); } .modal-backdrop .modal-content { max-width: none !important; max-height: calc(100dvh - 0.75rem - env(safe-area-inset-top)) !important; margin: 0.375rem !important; margin-bottom: 0 !important; border-bottom-right-radius: 0; border-bottom-left-radius: 0; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; } .modal-content > .p-6, .modal-content > form.p-6, .modal-content > form > .p-6 { padding: 1rem !important; } .modal-content > .px-6, .modal-content > form > .px-6 { padding-right: 1rem !important; padding-left: 1rem !important; } .modal-content .grid-cols-2, .modal-content .grid-cols-4 { grid-template-columns: minmax(0, 1fr); } .modal-content h2, .modal-content h3 { overflow-wrap: anywhere; } .modal-content > .flex:last-child, .modal-content > form > .flex:last-child, .modal-content > form > div > .flex:last-child { flex-wrap: wrap; } .modal-content > .flex:last-child > button, .modal-content > form > .flex:last-child > button, .modal-content > form > div > .flex:last-child > button { min-height: 2.75rem; flex: 1 1 8rem; } .modal-content .overflow-x-auto table { min-width: 42rem !important; } #NotiflixNotifyWrap { right: 0.5rem !important; left: 0.5rem !important; width: auto !important; max-width: none !important; } } @media (max-width: 560px) { #appMain > header .topbar-actions { gap: 0.25rem; } #pendingAssetRequestsBtn > span:not(.material-symbols-outlined):not(#pendingAssetRequestsBadge) { display: none; } #pendingAssetRequestsBtn, #profileBtn, #logoutBtn, #mobileMenuBtn { padding-right: 0.625rem; padding-left: 0.625rem; } #mainContent > [class*="-page"] { padding: 0.75rem; } .dashboard-stats, .apps-stats { grid-template-columns: minmax(0, 1fr) !important; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody { padding: 0.625rem; } #mainContent table.mobile-card-table:not(.keep-table-mobile) > tbody > tr > td { grid-template-columns: minmax(5rem, 34%) minmax(0, 1fr); gap: 0.625rem; padding: 0.625rem; } .modal-backdrop .modal-content { width: 100% !important; margin-right: 0 !important; margin-left: 0 !important; } } /* Login, registration, password recovery and email verification. */ body.auth-page, body.verify-page { min-height: 100dvh; overflow-x: hidden; } .auth-shell, .verify-shell { min-height: 100dvh; padding-top: max(1rem, env(safe-area-inset-top)); padding-bottom: max(1rem, env(safe-area-inset-bottom)); } @media (max-width: 560px) { .auth-shell, .verify-shell { align-items: flex-start; padding-right: 0.75rem; padding-left: 0.75rem; } .auth-card, .verify-card { padding: 1.25rem !important; border-radius: 1rem; } .auth-card .auth-heading { margin-bottom: 1.5rem; } .auth-card .auth-icon { width: 3.25rem; height: 3.25rem; } .auth-card h1, .verify-card h1 { font-size: 1.35rem; line-height: 1.25; } .auth-card input:not([type="checkbox"]), .auth-card select, .auth-card textarea { min-height: 2.75rem; font-size: 1rem; } .auth-card button, .verify-card a { min-height: 2.75rem; touch-action: manipulation; } .auth-card .remember-row, .verify-card .verify-actions { align-items: stretch; flex-direction: column; } .auth-card .remember-row > div { min-height: 2.25rem; } .auth-card .remember-row > button { align-self: flex-start; min-height: 2.25rem; } .verify-card .verify-actions > a { display: flex; align-items: center; justify-content: center; width: 100%; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } }