/* iOS-Specific Styles */

/* Prevent iOS zoom on input focus */
@supports (padding: max(0px)) {
    body {
        padding-left: max(0px, env(safe-area-inset-left));
        padding-right: max(0px, env(safe-area-inset-right));
        padding-top: max(0px, env(safe-area-inset-top));
        padding-bottom: max(0px, env(safe-area-inset-bottom));
    }

    .sidebar {
        padding-left: max(0px, env(safe-area-inset-left));
        padding-top: max(0px, env(safe-area-inset-top));
    }

    .main-content {
        padding-right: max(0px, env(safe-area-inset-right));
        padding-bottom: max(0px, env(safe-area-inset-bottom));
    }

    .topbar {
        padding-left: max(24px, calc(24px + env(safe-area-inset-left)));
        padding-right: max(24px, calc(24px + env(safe-area-inset-right)));
    }

    .page-content {
        padding-left: max(24px, calc(24px + env(safe-area-inset-left)));
        padding-right: max(24px, calc(24px + env(safe-area-inset-right)));
        padding-bottom: max(24px, calc(24px + env(safe-area-inset-bottom)));
    }
}

/* iOS Input Styling */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
input[type="time"],
input[type="number"],
select,
textarea {
    font-size: 16px; /* Prevents zoom on iOS */
    -webkit-border-radius: 4px;
    border-radius: 4px;
}

/* iOS Button Styling */
button,
input[type="button"],
input[type="submit"],
a.btn {
    -webkit-border-radius: 8px;
    border-radius: 8px;
    min-height: 44px;
    font-size: 16px;
    -webkit-user-select: none;
    user-select: none;
}

/* Prevent double tap zoom on buttons */
a, button {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    user-select: none;
}

/* iOS Scrolling */
.sidebar-menu,
.scrollable-history,
.nav-tabs {
    -webkit-overflow-scrolling: touch;
}

/* iOS Select Styling */
select {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2210%22%20height%3D%226%22%20viewBox%3D%220%200%2010%206%22%3E%3Cpath%20fill%3D%22%2364748b%22%20d%3D%22M1%201l4%204%204-4%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 10px 6px;
    padding-right: 32px;
}

/* iOS Checkbox Styling */
input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #4f46e5;
}

/* iOS Radio Button Styling */
input[type="radio"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #4f46e5;
}

/* Smooth transitions for iOS */
* {
    -webkit-tap-highlight-color: transparent;
}

/* iOS Status Bar Style */
@media (prefers-color-scheme: light) {
    body {
        background-color: #f8fafc;
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        --bg-primary: #1e293b;
        --bg-secondary: #0f172a;
        --text-primary: #f8fafc;
        --text-secondary: #cbd5e1;
        --text-muted: #64748b;
        --border-color: #334155;
    }

    body {
        background-color: #0f172a;
    }
}

/* iOS Notch Support */
@supports (padding: max(0px)) {
    body, .sidebar, .topbar, .main-content {
        padding-top: max(0px, env(safe-area-inset-top));
        padding-left: max(0px, env(safe-area-inset-left));
        padding-right: max(0px, env(safe-area-inset-right));
        padding-bottom: max(0px, env(safe-area-inset-bottom));
    }
}

/* Landscape Mode for iPad */
@media (orientation: landscape) and (max-height: 500px) {
    .sidebar {
        display: none;
    }

    .main-content {
        margin-left: 0;
    }

    .topbar {
        height: 48px;
    }

    .page-content {
        padding: 12px;
    }

    .form-group {
        margin-bottom: 12px;
    }
}

/* Prevent text selection except in inputs */
body {
    -webkit-user-select: none;
    user-select: none;
}

input,
textarea,
select,
button,
a {
    -webkit-user-select: text;
    user-select: text;
}

/* iOS Loading State */
.btn:active {
    opacity: 0.8;
}

/* List Item Touch Target */
.menu-item,
.dropdown-item,
.nav-link,
.btn {
    min-height: 44px;
    display: flex;
    align-items: center;
}

/* Modal/Dialog Support */
.modal-backdrop {
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1040;
}

.modal {
    z-index: 1050;
}

/* Prevent pinch zoom on iOS */
body {
    touch-action: manipulation;
}

/* Mobile Menu Fix */
@media (max-width: 768px) {
    .sidebar {
        width: 260px;
        transform: translateX(-100%);
        transition: transform 0.3s ease-in-out;
        will-change: transform;
    }

    .sidebar.mobile-open {
        transform: translateX(0);
    }

    .sidebar-overlay {
        display: none;
    }

    .sidebar-overlay.show {
        display: block;
    }
}

/* iPhone X+ Notch Support */
@supports (padding: max(0px)) {
    .topbar {
        padding-top: max(0px, env(safe-area-inset-top));
    }

    .sidebar {
        padding-top: max(0px, env(safe-area-inset-top));
    }
}

/* Consistent Input Heights */
.form-control {
    min-height: 44px;
}

.btn-sm {
    min-height: 40px;
}

.btn-lg {
    min-height: 52px;
}
