/* RegTech - Responsive Styles */

/* Mobile First Approach */

/* Small devices (phones, 576px and up) */
@media (max-width: 575.98px) {
  /* Navigation */
  .navbar-container {
    padding: 0 var(--space-4);
  }

  .navbar-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--surface);
    border-top: 1px solid var(--gray-200);
    box-shadow: var(--shadow-lg);
    flex-direction: column;
    padding: var(--space-4);
    gap: var(--space-2);
  }

  .navbar-nav.show {
    display: flex;
  }

  .nav-link {
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
  }

  .mobile-menu-toggle {
    display: flex;
  }

  .user-name {
    display: none;
  }

  /* Main Content */
  .main-content {
    padding: var(--space-4);
  }

  .page-header-content {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
  }

  .page-title {
    font-size: var(--font-size-2xl);
  }

  .page-actions {
    width: 100%;
    justify-content: flex-start;
  }

  /* Dashboard widgets stack on mobile */
  .dashboard-content > .dashboard-grid > .dashboard-card {
    flex: 1 1 100%;
  }

  .stats-grid {
    grid-template-columns: 1fr;
    gap: var(--space-4);
  }

  .stat-card {
    padding: var(--space-4);
  }

  .stat-value {
    font-size: var(--font-size-xl);
  }

  /* Quick Actions */
  .quick-actions {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .quick-action-btn {
    padding: var(--space-4);
  }

  /* Cards */
  .card-header {
    padding: var(--space-4);
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .card-content {
    padding: var(--space-4);
  }

  /* Forms */
  .form-row {
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  /* Modals */
  .modal-content {
    width: 95%;
    margin: var(--space-4);
    max-height: calc(100vh - 2rem);
  }

  .modal-header {
    padding: var(--space-4);
  }

  .modal-body {
    padding: var(--space-4);
  }

  .modal-footer {
    padding: var(--space-3) var(--space-4);
    justify-content: stretch;
  }

  .modal-footer .btn {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* Tables */
  .data-table {
    font-size: var(--font-size-sm);
  }

  .data-table th,
  .data-table td {
    padding: var(--space-2) var(--space-3);
  }

  /* Filter Bar */
  .filter-bar {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
  }

  .search-bar {
    max-width: none;
  }

  /* Toast */
  .toast-container {
    top: var(--space-4);
    right: var(--space-4);
    left: var(--space-4);
  }

  .toast {
    min-width: auto;
  }

  /* Audit Items */
  .audit-item {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .audit-meta {
    flex-wrap: wrap;
    gap: var(--space-2);
  }

  /* Checklist Items */
  .checklist-item {
    padding: var(--space-3);
  }

  .checklist-meta {
    flex-wrap: wrap;
    gap: var(--space-2);
  }

  /* Pagination */
  .pagination {
    flex-wrap: wrap;
    gap: var(--space-1);
  }

  .pagination-info {
    margin: 0 var(--space-2);
    order: -1;
    width: 100%;
    text-align: center;
  }
}

/* Medium devices (tablets, 768px and up) */
@media (min-width: 576px) and (max-width: 767.98px) {
  /* Navigation */
  .navbar-container {
    padding: 0 var(--space-5);
  }

  .navbar-nav {
    display: none;
  }

  .mobile-menu-toggle {
    display: flex;
  }

  /* Main Content */
  .main-content {
    padding: var(--space-5);
  }

  /* Dashboard */
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-5);
  }

  .quick-actions {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
  }

  /* Cards */
  .card-header {
    padding: var(--space-5);
  }

  .card-content {
    padding: var(--space-5);
  }

  /* Forms */
  .form-row {
    grid-template-columns: 1fr;
  }

  /* Modals */
  .modal-content {
    width: 90%;
  }

  .modal-content.modal-large {
    max-width: min(90vw, 48rem);
  }

  /* Tables */
  .data-table th,
  .data-table td {
    padding: var(--space-3) var(--space-4);
  }

  /* Filter Bar */
  .filter-bar {
    flex-wrap: wrap;
    gap: var(--space-3);
  }

  /* Audit Items */
  .audit-item {
    gap: var(--space-3);
  }

  /* Checklist Items */
  .checklist-item {
    padding: var(--space-4);
  }
}

/* Large devices (desktops, 992px and up) */
@media (min-width: 768px) and (max-width: 991.98px) {
  /* Navigation */
  .navbar-nav {
    display: flex;
  }

  .mobile-menu-toggle {
    display: none;
  }

  /* Main Content */
  .main-content {
    padding: var(--space-6);
  }

  /* Dashboard */
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-6);
  }

  .quick-actions {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-4);
  }

  /* Cards */
  .card-header {
    padding: var(--space-6);
  }

  .card-content {
    padding: var(--space-6);
  }

  /* Forms */
  .form-row {
    grid-template-columns: 1fr 1fr;
  }

  /* Tables */
  .data-table th,
  .data-table td {
    padding: var(--space-4);
  }

  /* Filter Bar */
  .filter-bar {
    flex-wrap: nowrap;
    gap: var(--space-4);
  }

  /* Audit Items */
  .audit-item {
    gap: var(--space-4);
  }

  /* Checklist Items */
  .checklist-item {
    padding: var(--space-4);
  }
}

/* Extra large devices (large desktops, 1200px and up) */
@media (min-width: 992px) {
  /* Navigation */
  .navbar-nav {
    display: flex;
  }

  .mobile-menu-toggle {
    display: none;
  }

  /* Main Content */
  .main-content {
    padding: var(--space-6);
  }

  /* Dashboard */
  .stats-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-6);
  }

  .quick-actions {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
  }

  /* Cards */
  .card-header {
    padding: var(--space-6);
  }

  .card-content {
    padding: var(--space-6);
  }

  /* Forms */
  .form-row {
    grid-template-columns: 1fr 1fr;
  }

  /* Tables */
  .data-table th,
  .data-table td {
    padding: var(--space-4);
  }

  /* Filter Bar */
  .filter-bar {
    flex-wrap: nowrap;
    gap: var(--space-4);
  }

  /* Audit Items */
  .audit-item {
    gap: var(--space-4);
  }

  /* Checklist Items */
  .checklist-item {
    padding: var(--space-4);
  }
}

/* Extra extra large devices (1200px and up) */
@media (min-width: 1200px) {
  .stats-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Landscape orientation adjustments */
@media (orientation: landscape) and (max-height: 500px) {
  .modal-content {
    max-height: calc(100vh - 1rem);
  }

  .modal-body {
    overflow-y: auto;
  }

  .navbar {
    height: 3.5rem;
  }

  .main-content {
    margin-top: 3.5rem;
  }

  .page-header {
    margin-bottom: var(--space-4);
  }

  .page-title {
    font-size: var(--font-size-xl);
  }
}

/* High DPI displays */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .logo {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }

  .user-avatar {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
  }
}

/* Reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .spinner {
    animation: none;
  }

  .loading-skeleton {
    animation: none;
  }
}

/* Dark mode — prefer color scheme */
@media (prefers-color-scheme: dark) {
  :root {
    --gray-50: #0f172a;
    --gray-100: #1e293b;
    --gray-200: #334155;
    --gray-300: #475569;
    --gray-400: #94a3b8;
    --gray-500: #cbd5e1;
    --gray-600: #e2e8f0;
    --gray-700: #f1f5f9;
    --gray-800: #f8fafc;
    --gray-900: #ffffff;

    --primary-50: #0f172a;
    --primary-100: #1e3a5f;

    --success-50: #052e16;
    --success-100: #14532d;
    --warning-50: #422006;
    --warning-100: #713f12;
    --error-50: #450a0a;
    --error-100: #7f1d1d;
    --error-200: #991b1b;

    --surface: #1e293b;
    --surface-muted: #0f172a;
    --overlay-bg: rgba(0, 0, 0, 0.65);

    --badge-success-bg: rgba(34, 197, 94, 0.2);
    --badge-success-fg: #86efac;
    --badge-warning-bg: rgba(245, 158, 11, 0.22);
    --badge-warning-fg: #fcd34d;
    --badge-error-bg: rgba(248, 113, 113, 0.22);
    --badge-error-fg: #fca5a5;
    --badge-info-bg: rgba(96, 165, 250, 0.22);
    --badge-info-fg: #93c5fd;
    --badge-neutral-bg: rgba(148, 163, 184, 0.18);
    --badge-neutral-fg: #e2e8f0;

    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.35);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.45), 0 2px 4px -2px rgb(0 0 0 / 0.35);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.4);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.55), 0 8px 10px -6px rgb(0 0 0 / 0.45);
  }

  body {
    background-color: var(--gray-50);
    color: var(--gray-700);
  }

  .card,
  .modal-content,
  .navbar,
  .dashboard-card,
  .stat-card,
  .template-card,
  .profile-card,
  .profile-section,
  .checklist-card,
  .data-table,
  .filters-section,
  .empty-state,
  .quick-action-btn,
  .user-dropdown,
  .toast,
  .audit-item-row {
    background-color: var(--surface);
    border-color: var(--gray-200);
    color: var(--gray-800);
  }

  .card-header h2,
  .dashboard-card .card-header h2,
  .stat-content .stat-label,
  .template-card h3,
  .template-meta,
  .empty-state,
  .compliance-metric .metric-label,
  .quick-action-btn span {
    color: var(--gray-700);
  }

  .stat-content .stat-value,
  .page-title,
  .template-card .template-title,
  .metric-value {
    color: var(--gray-900);
  }

  .form-control,
  .form-select,
  .form-input,
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  textarea,
  select {
    background-color: var(--gray-50);
    color: var(--gray-800);
    border-color: var(--gray-300);
  }

  .form-control::placeholder,
  .form-input::placeholder,
  input::placeholder,
  textarea::placeholder {
    color: var(--gray-400);
  }

  .btn-outline,
  .btn-secondary {
    background-color: var(--surface);
    color: var(--gray-800);
    border-color: var(--gray-300);
  }

  .btn-outline:hover,
  .btn-secondary:hover {
    background-color: var(--gray-100);
    color: var(--gray-900);
  }

  .data-table th {
    background: var(--gray-50);
    color: var(--gray-700);
  }

  .data-table tbody tr:hover {
    background: var(--gray-50);
  }

  /* Keep QR codes scannable */
  .inspector-qr,
  .mfa-qr,
  .mfa-qr-wrap {
    background: #ffffff !important;
  }

  .empty-state i,
  .empty-state .lucide,
  .empty-state-icon {
    color: var(--gray-400);
  }

  .detail-item,
  .template-description,
  .metric-label,
  .stat-label {
    color: var(--gray-500);
  }
}

/* Print styles */
@media print {
  .navbar,
  .page-actions,
  .btn,
  .modal,
  .toast-container {
    display: none !important;
  }

  .main-content {
    margin-top: 0;
    padding: 0;
  }

  .card {
    box-shadow: none;
    border: 1px solid #000;
    break-inside: avoid;
  }

  .page {
    display: block !important;
  }

  .audit-item,
  .checklist-item {
    break-inside: avoid;
  }

  .data-table {
    font-size: 12px;
  }

  .data-table th,
  .data-table td {
    padding: 4px 8px;
  }
}

/* Accessibility improvements */
@media (prefers-contrast: high) {
  :root {
    --gray-200: #000000;
    --gray-300: #000000;
    --gray-400: #000000;
    --gray-500: #000000;
    --gray-600: #000000;
    --gray-700: #000000;
    --gray-800: #000000;
    --gray-900: #000000;
  }

  .btn {
    border-width: 2px;
  }

  .form-input {
    border-width: 2px;
  }

  .card {
    border-width: 2px;
  }
}

/* Focus management for keyboard navigation */
@media (any-hover: none) {
  .nav-link:focus,
  .btn:focus,
  .form-input:focus,
  .table-action-btn:focus {
    outline: 2px solid var(--primary-500);
    outline-offset: 2px;
  }
}

/* Touch device optimizations */
@media (hover: none) and (pointer: coarse) {
  .btn {
    min-height: 44px;
    min-width: 44px;
  }

  .nav-link {
    min-height: 44px;
  }

  .table-action-btn {
    min-height: 44px;
    min-width: 44px;
  }

  .checkbox-custom {
    min-height: 44px;
    min-width: 44px;
  }

  .pagination-btn {
    min-height: 44px;
    min-width: 44px;
  }
}
