/* Styles pour Map Generator */ /* Layout principal avec flexbox pour footer en bas */ body { display: flex; flex-direction: column; min-height: 100vh; margin: 0; padding: 0; } #global-header { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; } .sidebar { position: fixed; top: 56px; /* Hauteur de la navbar */ left: 0; width: 250px; height: calc(100vh - 56px); background-color: #343a40; color: white; overflow-y: auto; z-index: 1000; } .main-content { margin-left: 250px; margin-top: 15px; /* Espace pour le header fixe + padding */ padding-top: 20px; } /* Styles de la sidebar */ .sidebar .nav-link { color: rgba(255, 255, 255, 0.75); padding: 10px 20px; } .sidebar .nav-link:hover { color: white; background-color: rgba(255, 255, 255, 0.1); } .sidebar .nav-link.active { color: white; background-color: #0d6efd; } .tool-group { border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-bottom: 10px; padding-bottom: 10px; } .tool-group h6 { color: rgba(255, 255, 255, 0.6); text-transform: uppercase; font-size: 0.8rem; margin: 15px 20px 5px 20px; } .canvas-container { position: relative; border-radius: 8px; overflow: hidden; } .tool-active { background-color: #0d6efd !important; color: white !important; } .color-swatch.selected { border: 2px solid white !important; } .layer-item { background-color: rgba(255, 255, 255, 0.05); border-radius: 4px; margin-bottom: 2px; } .layer-item:hover { background-color: rgba(255, 255, 255, 0.1); } /* Styles du footer */ #global-footer .text-center { color: #343a40; font-size: small; } #global-footer { margin-left: 250px; /* Même marge que main-content */ background-color: transparent; padding: 30px 0 20px 0; } /* Styles pour l'éditeur de carte */ .map-editor-container { position: relative; } .map-toolbar { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 0.375rem; padding: 0.75rem; } .map-canvas-container { position: relative; overflow: hidden; background-color: #f2f3f5; /* gris clair */ } #mapCanvas { transform-origin: 0 0; transition: transform 0.1s ease-out; } .hexagon { transition: all 0.2s ease; user-select: none; /* Fond blanc franc et pas de bordure réelle pour éviter les interstices */ background-color: #ffffff; border: none !important; box-sizing: border-box; } .hexagon:hover { /* Pas de scale pour éviter les décalages visuels entre hexagones */ border-color: #007bff !important; background-color: rgba(0, 123, 255, 0.1); z-index: 10; } .hexagon.selected { box-shadow: 0 0 0 3px #2196f3, inset 0 0 0 2px #fff; border-color: #2196f3 !important; background-color: rgba(33, 150, 243, 0.2); z-index: 20; } /* Styles pour les informations de tuile */ #tileInfo { border: 1px solid #dee2e6; } /* Classes utilitaires pour remplacer styles inline dans les vues */ .map-canvas-container-custom { position: relative; overflow: hidden; height: 600px; background-color: #f8f9fa; } .map-canvas { position: absolute; top: 0; left: 0; cursor: grab; z-index: 1; } .map-loading-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255,255,255,0.8); z-index: 10; display: flex; align-items: center; justify-content: center; } .tile-info-hidden { display: none; } .editor-empty-custom { width: 100%; height: 600px; background-color: #e9ecef; } /* Animation de chargement */ .spinner-border { width: 3rem; height: 3rem; } /* Styles pour les boutons de zoom */ .btn-group .btn { border-radius: 0.25rem !important; } .btn-group .btn:not(:last-child) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; } .btn-group .btn:not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; } /* Responsive pour l'éditeur de carte */ @media (max-width: 768px) { .sidebar { width: 100%; height: auto; position: relative; top: 0; } .main-content { margin-left: 0; margin-top: 15px; } #global-footer { margin-left: 0; } .map-toolbar { flex-direction: column; gap: 0.5rem; } .map-toolbar .d-flex { justify-content: center; } } /* Forcer les dropdowns à rester visibles (ajustement de position) - .dropdown-menu-end sera utilisé par le JS si nécessaire - on ajoute une marge à droite pour éviter qu'il colle au bord */ .dropdown-menu.dropdown-menu-end { right: 5px !important; left: auto !important; } /* Forcer tous les dropdowns à s'afficher vers la gauche pour éviter qu'ils sortent de l'écran */ .dropdown-menu { left: auto !important; right: 0 !important; margin-right: 5px; } /* Fix: s'assurer que les dropdowns apparaissent au-dessus des éléments fixés (header/sidebar) */ .dropdown-menu { z-index: 2050 !important; } /* Styles pour les options de type de tuile dans la sidebar */ .tile-type-option { justify-content: flex-start; padding: 6px 40px; border: 1px solid transparent; } .tile-type-option svg { border-radius: 4px; background: white; box-shadow: 0 1px 2px rgba(0,0,0,0.05); } .tile-type-option.active, .tile-type-option:focus, .tile-type-option:hover { border-color: rgba(0,0,0,0.08); background-color: rgba(255,255,255,0.06); } .tile-type-option span { font-size: 0.9rem; color: #fff; }