/**
 * TipsterPro — layout mobile / PWA (safe-area, touch, standalone).
 */
:root {
    --tp-safe-top: env(safe-area-inset-top, 0px);
    --tp-safe-right: env(safe-area-inset-right, 0px);
    --tp-safe-bottom: env(safe-area-inset-bottom, 0px);
    --tp-safe-left: env(safe-area-inset-left, 0px);
    --tp-touch-min: 44px;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    overscroll-behavior-y: contain;
}

a,
button,
[role='button'],
input[type='submit'],
input[type='button'] {
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0.08);
}

@media (hover: none) and (pointer: coarse) {
    .btn,
    .btn-sm,
    button:not(.admin-dialog-close):not(.admin-sidebar-backdrop),
    .nav-item,
    .access-logs-tab,
    .admin-menu-toggle,
    .portal-header-buttons .btn {
        min-height: var(--tp-touch-min);
    }

    input[type='date'],
    input[type='datetime-local'],
    select,
    textarea,
    input[type='text'],
    input[type='email'],
    input[type='password'],
    input[type='tel'],
    input[type='url'],
    input[type='search'] {
        font-size: 16px;
    }
}

/* Standalone / Add to Home Screen */
.tp-standalone .admin-mobile-bar {
    padding-top: max(10px, var(--tp-safe-top));
    padding-left: max(14px, var(--tp-safe-left));
    padding-right: max(14px, var(--tp-safe-right));
}

.tp-standalone .admin-layout .main {
    padding-bottom: max(16px, calc(16px + var(--tp-safe-bottom)));
}

.tp-standalone .sidebar {
    padding-top: max(16px, var(--tp-safe-top));
    padding-bottom: max(16px, var(--tp-safe-bottom));
    padding-left: max(12px, var(--tp-safe-left));
}

.tp-standalone .portal-header {
    padding-top: max(12px, var(--tp-safe-top));
    padding-left: max(14px, var(--tp-safe-left));
    padding-right: max(14px, var(--tp-safe-right));
}

.tp-standalone .portal-main {
    padding-bottom: max(32px, calc(32px + var(--tp-safe-bottom)));
}

.tp-standalone .login-page {
    padding-top: max(24px, var(--tp-safe-top));
    padding-bottom: max(24px, calc(24px + var(--tp-safe-bottom)));
    padding-left: max(16px, var(--tp-safe-left));
    padding-right: max(16px, var(--tp-safe-right));
}

.tp-standalone .coming-soon {
    padding-top: max(24px, var(--tp-safe-top));
    padding-bottom: max(24px, calc(24px + var(--tp-safe-bottom)));
}

.tp-standalone .sticky-cta {
    padding-bottom: max(14px, calc(14px + var(--tp-safe-bottom)));
}
