:root {
  --blue-600: #2563EB;
  --indigo-600: #4F46E5;
  --white: #ffffff;
  --gray-200: #E5E7EB;
  --gray-400: #9CA3AF;
  --gray-500: #6B7280;
  --gray-700: #374151;
  --gray-800: #1F2937;
  --gray-900: #111827;
  --gray-50:  #F9FAFB;
  --t: 0.25s ease;
}

/* ── Download Modal ── */
.modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(0,0,0,0.6); z-index: 9999;
    align-items: center; justify-content: center; backdrop-filter: blur(4px);
}
.modal-overlay.active { display: flex; }
.modal-box {
    background: var(--white); border-radius: 24px; padding: 40px 44px 36px;
    max-width: 500px; width: 92%; position: relative;
    box-shadow: 0 24px 80px rgba(0,0,0,0.25);
    animation: mIn 0.25s ease;
}
@keyframes mIn { from{transform:translateY(20px) scale(.96);opacity:0} to{transform:none;opacity:1} }
.modal-close { position: absolute; top: 16px; right: 20px; font-size: 22px; color: var(--gray-400); cursor: pointer; background: none; border: none; }
.modal-close:hover { color: var(--gray-700); }
.modal-logo img { height: 40px; width: auto; object-fit: contain; margin-bottom: 1.25rem; }
.modal-title { font-size: 1.4rem; font-weight: 800; color: var(--gray-900); margin-bottom: 0.5rem; }
.modal-desc  { font-size: 0.875rem; color: var(--gray-500); line-height: 1.7; margin-bottom: 1.5rem; }
.modal-meta  { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.78rem; color: var(--gray-400); margin-bottom: 1.5rem; }
.modal-meta span { display: flex; align-items: center; gap: 4px; }
.modal-btn {
    width: 100%; height: 54px; border: none; cursor: pointer;
    background: linear-gradient(135deg, var(--blue-600), var(--indigo-600));
    color: #fff; border-radius: 12px; font-size: 1rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    transition: opacity var(--t), transform var(--t);
    box-shadow: 0 4px 20px rgba(37,99,235,0.4);
}
.modal-btn:hover { opacity: 0.92; transform: translateY(-1px); }
.modal-note { text-align: center; font-size: 0.72rem; color: var(--gray-400); margin-top: 12px; }
.modal-note a { color: var(--gray-500); text-decoration: underline; }
.ios-guide-modal { padding: 24px; }
.ios-guide-box { max-width: 460px; padding: 34px 36px 32px; }
.ios-guide-steps {
    margin: 0 0 1.5rem;
    padding-left: 1.25rem;
    color: var(--gray-700);
    font-size: 0.9rem;
    line-height: 1.8;
}
.ios-guide-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.ios-guide-actions .modal-btn,
.ios-guide-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
}
.ios-guide-actions .modal-btn { text-decoration: none; }
.ios-guide-secondary {
    border: 1px solid var(--gray-200);
    color: var(--gray-800);
    background: var(--white);
    transition: all var(--t);
}
.ios-guide-secondary:hover {
    background: var(--gray-50);
    transform: translateY(-1px);
}
body.modal-open { overflow: hidden; }

