/* Responsive Styles */ /* Responsive */ @media (max-width: 1200px) { .sidebar { width: 350px; min-width: 350px; } } @media (max-width: 768px) { .fontmap-container { flex-direction: column; } /* Sidebar becomes a sticky top strip with just search + filters */ .sidebar { position: fixed; top: 0; left: 0; right: 0; width: 100%; min-width: 0; height: auto; max-height: none; border-right: none; border-bottom: 1px solid var(--color-border-primary); overflow: visible; z-index: 2000; } .dark-mode .sidebar { border-bottom-color: var(--color-border-primary-dark); } .sidebar-content { overflow: visible; padding: 0; } .sidebar-footer { display: none; } /* Hide focus hint and bottom controls on mobile */ .focus-hint, .bottom-controls { display: none !important; } /* ActiveFont becomes a slide-in drawer when a font is selected */ .font-details { position: fixed; top: 0; right: 0; bottom: 0; width: 100%; height: 100vh; background: var(--color-bg-primary); z-index: 3000; overflow-y: auto; transform: translateX(100%); transition: transform 0.28s ease; padding-top: 48px; } .dark-mode .font-details { background: var(--color-bg-primary-dark); } .fontmap-container.has-focus .font-details { transform: translateX(0); } /* Mobile back chevron — visible only on mobile inside the drawer */ .font-details-back { display: inline-flex; align-items: center; gap: 4px; position: absolute; top: 12px; left: 12px; padding: 6px 10px 6px 6px; border: none; background: transparent; color: var(--color-text-primary); font-family: inherit; font-size: 13px; cursor: pointer; z-index: 1; } .dark-mode .font-details-back { color: var(--color-text-primary-dark); } /* Map fills full viewport beneath the sticky sidebar */ .main-area { height: 100vh; width: 100%; } .sidebar-header { padding: var(--spacing-md); flex-direction: row; justify-content: space-between; align-items: center; } .map-title { font-size: 24px; top: 15px; left: 15px; /* Maintenir la bordure sur les écrans moyens */ -webkit-text-stroke: 12px var(--color-bg-primary); text-stroke: 12px var(--color-bg-primary); } .dark-mode .map-title { -webkit-text-stroke: 12px var(--color-bg-primary-dark); text-stroke: 12px var(--color-bg-primary-dark); } .map-title::before { -webkit-text-stroke: 13px var(--color-border-primary); text-stroke: 13px var(--color-border-primary); } .dark-mode .map-title::before { -webkit-text-stroke: 13px var(--color-border-primary-dark); text-stroke: 13px var(--color-border-primary-dark); } .sidebar-content { padding: var(--spacing-md); gap: var(--spacing-md); } .sidebar-separator { margin: var(--spacing-md) 0; } .top-controls { top: 12px; right: 12px; gap: 6px; } .bottom-controls { bottom: 12px; right: 12px; gap: 6px; } .filters-inline { font-size: 11px; } .toggle-btn { padding: 4px 8px; font-size: 12px; } .dataset-select { padding: 4px 8px; font-size: 10px; min-width: 150px; } .zoom-btn { padding: 3px 6px; font-size: 9px; } .font-details-section { padding: var(--spacing-md); } .font-preview { padding: var(--spacing-lg); } .font-preview-large { width: 80px; height: 80px; } .font-info .font-name { font-size: 20px; } } @media (max-width: 480px) { .sidebar-header { padding: var(--spacing-sm); flex-direction: column; gap: var(--spacing-sm); } .map-title { font-size: 20px; top: 10px; left: 10px; /* Maintenir la bordure sur les petits écrans */ -webkit-text-stroke: 8px var(--color-bg-primary); text-stroke: 8px var(--color-bg-primary); } .dark-mode .map-title { -webkit-text-stroke: 8px var(--color-bg-primary-dark); text-stroke: 8px var(--color-bg-primary-dark); } .map-title::before { -webkit-text-stroke: 9px var(--color-border-primary); text-stroke: 9px var(--color-border-primary); } .dark-mode .map-title::before { -webkit-text-stroke: 9px var(--color-border-primary-dark); text-stroke: 9px var(--color-border-primary-dark); } .sidebar-content { padding: var(--spacing-sm); gap: var(--spacing-sm); } .sidebar-separator { margin: var(--spacing-sm) 0; } .top-controls { top: 8px; right: 8px; gap: 4px; } .bottom-controls { bottom: 8px; right: 8px; gap: 4px; } .filters-inline { font-size: 10px; } .toggle-btn { padding: 3px 6px; font-size: 11px; } .dataset-select { padding: 3px 6px; font-size: 9px; min-width: 120px; } .zoom-btn { padding: 2px 4px; font-size: 8px; } .font-details-section { padding: var(--spacing-sm); } .font-preview { padding: var(--spacing-md); } .font-preview-large { width: 60px; height: 60px; } .font-info .font-name { font-size: 18px; } .preview-text { font-size: 14px; } } /* Responsive adjustments for dilation control */ @media (max-width: 768px) { .dilation-control, .size-control { min-width: 150px; } .dilation-label, .size-label { font-size: 10px; } .slider-labels { font-size: 9px; } } @media (max-width: 480px) { .dilation-control, .size-control { min-width: 120px; } .dilation-label, .size-label { font-size: 9px; } .slider-labels { font-size: 8px; } }