/* Mobile Responsive Styles - Only applies to mobile devices */
/* This file should be loaded conditionally for mobile devices only */

@media screen and (max-width: 768px) {
  /* Fix viewport and prevent overflow */
  html,
  body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
  }

  /* Main container mobile fixes */
  .main {
    padding: 0.5rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .main-container {
    padding: 0.5rem !important;
    gap: 1rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  /* Hero Section Mobile Optimization */
  .hero-section {
    padding: 1rem 0.5rem !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .hero-content {
    max-width: 100% !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  /* Main heading mobile optimization */
  .timezone-converter-heading {
    font-size: 1.4rem !important;
    line-height: 1.3 !important;
    text-align: center !important;
    margin-bottom: 0.5rem !important;
    padding: 0 0.5rem !important;
    word-wrap: break-word !important;
  }

  .hero-subtitle {
    font-size: 0.9rem !important;
    line-height: 1.4 !important;
    text-align: center !important;
    margin-bottom: 1rem !important;
    padding: 0 0.5rem !important;
  }

  h2.hero-subtitle {
    font-size: 0.85rem !important;
    text-align: center !important;
    margin-bottom: 1rem !important;
  }

  .hero-tagline {
    font-size: 0.8rem !important;
    text-align: center !important;
    margin-bottom: 0.75rem !important;
  }

  /* Hero converter container mobile */
  .hero-converter-container {
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    padding: 0 0.5rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  /* Simple Converter Mobile Styles */
  .simple-converter {
    padding: 1rem 0.5rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .converter-row {
    flex-direction: column !important;
    gap: 1rem !important;
    align-items: center !important;
  }

  .timezone-select-group {
    width: 100% !important;
    max-width: 100% !important;
    min-width: auto !important;
  }

  .timezone-select-group label {
    font-size: 0.9rem !important;
    text-align: center !important;
    display: block !important;
    margin-bottom: 0.5rem !important;
  }

  .swap-btn {
    order: 2 !important;
    transform: rotate(90deg) !important;
    margin: 0.5rem 0 !important;
    min-width: 44px !important;
    min-height: 44px !important;
  }

  .time-input-row {
    flex-direction: column !important;
    gap: 1rem !important;
    padding: 0 0.5rem !important;
  }

  .time-input-group {
    width: 100% !important;
  }

  .time-input-group label {
    font-size: 0.9rem !important;
    text-align: center !important;
    margin-bottom: 0.5rem !important;
  }

  .time-date-inputs {
    flex-direction: column !important;
    gap: 0.75rem !important;
    width: 100% !important;
  }

  .time-input,
  .date-input {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 1rem !important;
    padding: 0.75rem !important;
    min-height: 44px !important;
  }

  .quick-date-buttons {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    justify-content: center !important;
    margin-top: 0.75rem !important;
  }

  .quick-date-btn {
    flex: 1 !important;
    min-width: 80px !important;
    max-width: 120px !important;
    padding: 0.6rem 0.8rem !important;
    font-size: 0.8rem !important;
    min-height: 44px !important;
  }

  /* Quick dates container mobile styling */
  .quick-dates {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    gap: 0.75rem !important;
    justify-content: center !important;
    margin-bottom: 1rem !important;
    box-sizing: border-box !important;
  }

  .conversion-result {
    padding: 1rem 0.5rem !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .result-time {
    font-size: 1.8rem !important;
    line-height: 1.2 !important;
  }

  .result-timezone {
    font-size: 0.9rem !important;
    margin-top: 0.5rem !important;
  }

  /* Hero Quick Links Mobile */
  .hero-quick-links {
    min-width: auto !important;
    padding: 0 0.5rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .hero-quick-links h3 {
    font-size: 1rem !important;
    text-align: center !important;
    margin-bottom: 0.75rem !important;
  }

  .hero-quick-links-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.5rem !important;
    max-width: 100% !important;
  }

  .quick-link {
    padding: 0.6rem 0.4rem !important;
    font-size: 0.7rem !important;
    min-height: 44px !important;
    border-radius: 8px !important;
    margin: 0 !important;
  }

  .quick-link .from,
  .quick-link .to {
    font-size: 0.65rem !important;
    padding: 0.3rem 0.4rem !important;
  }

  /* Advanced Converter Mobile Styles */
  .converter-section {
    padding: 0.75rem 0.5rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .converter-header {
    flex-direction: column !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin-bottom: 0.75rem !important;
    padding: 0.5rem !important;
    text-align: center !important;
  }

  .converter-header h1,
  .converter-header h2 {
    font-size: 1.1rem !important;
    text-align: center !important;
    line-height: 1.3 !important;
    margin-bottom: 0.25rem !important;
  }

  .advanced-subtitle {
    font-size: 0.8rem !important;
    text-align: center !important;
    margin-bottom: 0.5rem !important;
  }

  .header-left {
    width: 100% !important;
    text-align: center !important;
  }

  .add-btn {
    width: 100% !important;
    max-width: 280px !important;
    margin: 0 auto !important;
    justify-content: center !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.9rem !important;
    min-height: 48px !important;
    border-radius: 12px !important;
    gap: 0.6rem !important;
  }

  .add-btn i {
    font-size: 1rem !important;
  }

  /* Multi-city converter mobile styles */
  .converter-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "controls"
      "timezone" !important;
    gap: 1rem !important;
    padding: 0 0.5rem !important;
  }

  .time-controls {
    order: 1 !important;
    max-width: 100% !important;
  }

  .timezone-display {
    order: 2 !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-top: 1rem !important;
    overflow: visible !important;
  }

  .timezones-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0.75rem !important;
    padding: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Timezone card mobile optimization */
  .timezone-card {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.75rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    min-height: 60px !important;
  }

  .timezone-info {
    flex: 1 !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .timezone-city {
    font-size: 0.9rem !important;
    text-align: center !important;
    margin-bottom: 0.25rem !important;
  }

  .timezone-time {
    font-size: 1.1rem !important;
    text-align: center !important;
    font-weight: 700 !important;
  }

  /* Time selector mobile optimization */
  .time-selector-section {
    padding: 0.75rem 0.5rem !important;
    margin-bottom: 1rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .time-selector-header {
    flex-direction: column !important;
    gap: 0.75rem !important;
    text-align: center !important;
  }

  .time-selector-header label {
    font-size: 1rem !important;
    text-align: center !important;
  }

  .header-controls {
    justify-content: center !important;
  }

  .live-time-display {
    text-align: center !important;
    width: 100% !important;
  }

  .toggle-time-input {
    padding: 0.6rem 1rem !important;
    font-size: 0.8rem !important;
    min-height: 44px !important;
  }

  /* World Clock Mobile Styles */
  .world-clocks-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.75rem !important;
    padding: 0.5rem !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .world-clock-card {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0.75rem 0.5rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  .world-clock-city {
    font-size: 0.9rem !important;
    text-align: center !important;
    margin: 0 auto 0.25rem auto !important;
    width: 100% !important;
    margin-left: 0 !important;
  }

  .world-clock-utc {
    font-size: 0.7rem !important;
    text-align: center !important;
    margin: 0 auto 0.5rem auto !important;
    width: 100% !important;
    margin-left: 0 !important;
  }

  .world-clock-time {
    font-size: 1.3rem !important;
    text-align: center !important;
    margin-bottom: 0.4rem !important;
  }

  .world-clock-date {
    font-size: 0.75rem !important;
    text-align: center !important;
  }

  .remove-clock-btn {
    top: 0.75rem !important;
    right: 0.75rem !important;
    width: 24px !important;
    height: 24px !important;
    font-size: 0.9rem !important;
  }

  /* Ensure all headings are center aligned on mobile */
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    text-align: center !important;
  }

  /* Fix any elements that might overflow */
  * {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* World Clock Control Buttons Mobile Styles */
  .world-clock-controls {
    flex-direction: column !important;
    gap: 0.5rem !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0.5rem !important;
  }

  .controls-right {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
    align-items: center !important;
    width: 100% !important;
  }

  .bulk-actions {
    display: flex !important;
    gap: 0.3rem !important;
    justify-content: center !important;
  }

  .bulk-btn {
    padding: 0.4rem !important;
    font-size: 0.7rem !important;
    min-width: 32px !important;
    min-height: 32px !important;
    border-radius: 6px !important;
  }

  .time-format-toggle {
    margin: 0 !important;
    transform: scale(0.8) !important;
  }

  .format-toggle-btn {
    width: 50px !important;
    height: 24px !important;
    font-size: 0.7rem !important;
  }

  .clock-type-toggle {
    display: flex !important;
    gap: 0.3rem !important;
    justify-content: center !important;
  }

  .toggle-btn {
    padding: 0.4rem 0.6rem !important;
    font-size: 0.7rem !important;
    min-height: 32px !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    background: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
    color: #64748b !important;
    transition: all 0.2s ease !important;
  }

  .toggle-btn.active {
    background: #3b82f6 !important;
    color: white !important;
    border-color: #3b82f6 !important;
  }

  .toggle-btn i {
    font-size: 0.6rem !important;
  }

  .add-clock-btn {
    padding: 0.5rem 0.8rem !important;
    font-size: 0.8rem !important;
    min-height: 36px !important;
    border-radius: 8px !important;
    background: #10b981 !important;
    color: white !important;
    border: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    transition: all 0.2s ease !important;
  }

  .add-clock-btn:hover {
    background: #059669 !important;
  }

  .add-clock-btn i {
    font-size: 0.7rem !important;
  }

  /* Ensure proper button sizing for touch */
  button,
  .btn,
  .quick-link,
  .add-btn {
    min-height: 44px !important;
    min-width: 44px !important;
    touch-action: manipulation !important;
  }

  /* Ensure proper spacing and padding */
  .container {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
    max-width: 100% !important;
  }
}

/* Extra small devices */
@media screen and (max-width: 480px) {
  .timezone-converter-heading {
    font-size: 1.2rem !important;
    padding: 0 0.25rem !important;
  }

  .hero-subtitle {
    font-size: 0.8rem !important;
    padding: 0 0.25rem !important;
  }

  .quick-link {
    padding: 0.5rem 0.3rem !important;
    font-size: 0.65rem !important;
  }

  .quick-link .from,
  .quick-link .to {
    font-size: 0.6rem !important;
    padding: 0.25rem 0.3rem !important;
  }

  .container {
    padding-left: 0.25rem !important;
    padding-right: 0.25rem !important;
  }

  /* Analog Clock Mobile Fixes */
  .analog-clock {
    width: 120px !important;
    height: 120px !important;
    margin: 0.5rem auto !important;
  }

  .hour-hand {
    width: 2.5px !important;
    height: 35px !important;
    left: 58.75px !important; /* (120px - 2.5px) / 2 = 58.75px */
    top: 24px !important; /* fine-tuned for alignment */
  }

  .minute-hand {
    width: 1.5px !important;
    height: 45px !important;
    left: 59.25px !important; /* (120px - 1.5px) / 2 = 59.25px */
    top: 14px !important; /* fine-tuned for alignment */
  }

  .second-hand {
    width: 1px !important;
    height: 50px !important;
    left: 59.5px !important; /* (120px - 1px) / 2 = 59.5px */
    top: 7px !important; /* moved up 3px from 10px */
  }

  .analog-clock::before {
    width: 8px !important;
    height: 8px !important;
  }
}
