- Ajout système complet de gestion des secteurs avec contours géographiques - Import des contours départementaux depuis GeoJSON - API REST pour la gestion des secteurs (/api/sectors) - Service de géolocalisation pour déterminer les secteurs - Migration base de données avec tables x_departements_contours et sectors_adresses - Interface Flutter pour visualisation et gestion des secteurs - Ajout thème sombre dans l'application - Corrections diverses et optimisations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
117 lines
2.1 KiB
CSS
Executable File
117 lines
2.1 KiB
CSS
Executable File
@import "tailwindcss/base";
|
|
@import "tailwindcss/components";
|
|
@import "tailwindcss/utilities";
|
|
|
|
@font-face {
|
|
font-family: 'Figtree';
|
|
src: url('/fonts/Figtree-VariableFont_wght.ttf') format('truetype');
|
|
font-weight: 100 900;
|
|
font-style: normal;
|
|
font-display: swap;
|
|
}
|
|
|
|
:root {
|
|
font-family: 'Figtree', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
line-height: 1.5;
|
|
font-weight: 400;
|
|
color: #333333;
|
|
background-color: #ffffff;
|
|
font-synthesis: none;
|
|
text-rendering: optimizeLegibility;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
html, body {
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
body {
|
|
min-width: 320px;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
#app {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
/* Aspect ratio utilities */
|
|
.aspect-w-16 {
|
|
position: relative;
|
|
padding-bottom: calc(var(--tw-aspect-h) / var(--tw-aspect-w) * 100%);
|
|
--tw-aspect-w: 16;
|
|
}
|
|
|
|
.aspect-h-9 {
|
|
--tw-aspect-h: 9;
|
|
}
|
|
|
|
.aspect-w-16 > * {
|
|
position: absolute;
|
|
height: 100%;
|
|
width: 100%;
|
|
top: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
}
|
|
|
|
/* Animation utilities */
|
|
@keyframes fadeIn {
|
|
from { opacity: 0; }
|
|
to { opacity: 1; }
|
|
}
|
|
|
|
.animate-fadeIn {
|
|
animation: fadeIn 0.5s ease-in-out;
|
|
}
|
|
|
|
/* Custom container for sections */
|
|
.container {
|
|
width: 100%;
|
|
max-width: 1280px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/* Custom focus styles */
|
|
*:focus-visible {
|
|
outline: 2px solid #3b82f6;
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Responsive typography */
|
|
@media (max-width: 640px) {
|
|
h1 {
|
|
font-size: 2rem !important;
|
|
}
|
|
h2 {
|
|
font-size: 1.5rem !important;
|
|
}
|
|
h3 {
|
|
font-size: 1.25rem !important;
|
|
}
|
|
}
|
|
|
|
/* Cookie consent modal styles */
|
|
.blur-effect {
|
|
filter: blur(4px);
|
|
pointer-events: none;
|
|
user-select: none;
|
|
}
|
|
|
|
/* Animation pour la modal de cookies */
|
|
@keyframes slideUp {
|
|
from { transform: translateY(20px); opacity: 0; }
|
|
to { transform: translateY(0); opacity: 1; }
|
|
}
|
|
|
|
.cookie-modal {
|
|
animation: slideUp 0.3s ease-out forwards;
|
|
}
|