/* Presentation only: shared phone/tablet shell, after module styles. */
.app-mobile-nav,.app-sidebar-backdrop,.app-sidebar-close { display:none; }
@media screen and (max-width:991.98px) {
 .app-body { --lm-navbar-height:60px; }
 .app-body:has(.sidebar-open) { overflow:hidden; }
 .app-sidebar-close { display:flex; align-items:center; gap:10px; justify-content:flex-end; min-height:48px; margin:8px 12px 0; padding:10px 12px; background:#ffffff10; color:#fff; border:1px solid #ffffff30; border-radius:9px; }
 .app-shell { min-height:100dvh; }
 .app-navbar { height:calc(60px + env(safe-area-inset-top)); padding-top:env(safe-area-inset-top); z-index:1040; border-bottom:1px solid #dde6de; }
 .app-content-wrapper { min-height:100dvh; padding-top:calc(60px + env(safe-area-inset-top)); padding-left:0; }
 .app-main { padding:12px; }
 .app-sidebar { top:calc(60px + env(safe-area-inset-top)); bottom:0; height:auto; width:min(310px,86vw); padding-bottom:calc(20px + env(safe-area-inset-bottom)); z-index:1035; overscroll-behavior-y:contain; }
 .app-sidebar .app-nav-link { min-height:48px; padding:12px 16px; font-size:.95rem; }
 .app-sidebar-backdrop { position:fixed; inset:calc(60px + env(safe-area-inset-top)) 0 0; z-index:1032; border:0; background:#102c2670; }
 .sidebar-open .app-sidebar-backdrop { display:block; }
 .app-shell.sidebar-open .app-mobile-nav { visibility:hidden; }
 .app-mobile-nav { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:1031; padding:5px max(4px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px,env(safe-area-inset-left)); background:#fffefa; border-top:1px solid #dce5dc; box-shadow:0 -3px 14px #183e2910; }
 .app-mobile-nav > * { display:flex; flex:1 1 0; min-width:0; flex-direction:column; gap:3px; align-items:center; justify-content:center; min-height:59px; padding:5px 2px; border:0; border-radius:10px; background:none; color:#50635a; text-align:center; text-decoration:none; font:inherit; font-size:.68rem; line-height:1.4; overflow-wrap:anywhere; }
 .app-mobile-nav i { font-size:1.25rem; line-height:1; }
 .app-mobile-nav [aria-current="page"] { color:#124f40; background:#edf5ed; font-weight:700; }
 .app-shell:has(.app-mobile-nav) .app-content-wrapper { padding-bottom:calc(78px + env(safe-area-inset-bottom)); }
 .app-navbar .btn { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
 .app-navbar > .app-brand { min-width:0; padding:6px 8px; border-radius:10px; }
 .app-navbar .app-brand-mark { width:30px; height:34px; }
 .app-navbar .dropdown-menu { max-width:calc(100vw - 24px); }
 .app-body .dropdown-item { padding:12px 16px; }
 .app-body .app-main .form-control,.app-body .app-main .form-select,
 .app-body .select2-selection__rendered,.select2-search__field { font-size:16px!important; }
 .app-body .app-main .form-control,.app-body .app-main .form-select { min-height:46px; border-radius:9px; }
 .app-body .app-main textarea.form-control { min-height:96px; }
 .app-body .btn { touch-action:manipulation; border-radius:9px; }
 .app-body a,.app-body button { -webkit-tap-highlight-color:#1c6d4720; }
 .app-body :focus-visible { outline:3px solid #8ab6a1; outline-offset:3px; }
 .app-body .form-actions,.app-body .ak-client-form .form-actions { position:static; display:flex; flex-wrap:wrap; gap:8px; padding:12px; margin-top:12px; }
 .app-body .form-actions>.btn { flex:1 1 130px; }
 .app-main .app-panel,.app-main .ak-dashboard-panel { border-radius:12px; }
 .app-main .ak-dashboard-heading { gap:10px; margin-bottom:14px; }
 .app-main .ak-dashboard-heading>div { min-width:0; flex:1; }
 .app-main .ak-dashboard-heading p { font-size:.82rem; line-height:1.6; }
 .app-main .ak-dashboard-heading>.btn,.app-main .ak-dashboard-heading>.dropdown { margin-left:0!important; }
 .app-main .ak-ledger-icon { width:43px; height:48px; border-width:3px; font-size:24px; flex-shrink:0; }
 .app-main .table-responsive { overscroll-behavior-x:contain; scrollbar-width:thin; }
 .app-main .table td { vertical-align:middle; }
 .app-main .table td .btn,.app-main .table td a.btn { min-width:44px; min-height:44px; }
 .app-main .dt-search input { width:100%; margin-left:0; font-size:16px; }
 .app-main .dt-container .row { row-gap:10px; }
 .app-main .dt-container .pagination { justify-content:center; }
 .app-main .dt-container .dt-info { text-align:center; white-space:normal; }
 .case-workspace-nav,.ak-case-tabs { overflow-x:auto; flex-wrap:nowrap; scroll-padding-inline:8px; }
 .case-workspace-nav a,.ak-case-tabs>* { flex:0 0 auto; min-height:44px; }
 .modal-dialog { margin:8px; }
 .modal-content { max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
 .modal-footer>.btn { flex:1 1 120px; }
 .app-footer { display:flex; gap:8px; flex-wrap:wrap; padding:16px 12px; }
}
@media screen and (max-width:575.98px) {
 .app-main .ak-dashboard-heading>.btn { width:100%; }
 .app-main .ak-kpis,.app-main .ak-billing-kpis,.app-main .platform-kpi-grid,.app-main .dashboard-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .app-main .ak-kpi { padding:12px 10px; gap:8px; align-items:flex-start; }
 .app-main .ak-kpi small { font-size:.72rem; line-height:1.5; }
 .app-main .ak-kpi strong { font-size:1.15rem; }
 .app-main .ak-kpi-icon { width:28px; height:34px; font-size:20px; }
 .app-main .ak-kpi:hover { transform:none; }
 .app-main .ak-client-search,.app-main .ak-filter-grid { display:grid; grid-template-columns:1fr; }
 .app-main .ak-client-search label { min-width:0; }
 .app-main .ak-official-search { padding:14px; gap:10px; }
 .app-main .ak-official-search>.btn { margin-left:0; width:100%; }
 .app-main .ak-dashboard-columns,.app-main .ak-case-detail-grid,.app-main .ak-billing-form-grid,.app-main .ak-client-bottom { grid-template-columns:minmax(0,1fr); }
 .app-main .ak-receipt-preview { padding:16px; }
 .auth-shell { padding:16px 12px; }
 .auth-card { padding:22px 18px; border-radius:16px; }
}
@media screen and (max-width:359.98px) {
 .app-main .ak-kpis,.app-main .ak-billing-kpis { grid-template-columns:1fr; }
 .app-navbar .ak-brand-copy small { display:none; }
}
@media print { .app-mobile-nav,.app-sidebar-backdrop { display:none!important; } }
@media(prefers-reduced-motion:reduce) { .app-sidebar { transition:none; } }
