@import"https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800;900&family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-ink: #f8fafc;--color-paper: #ffffff;--color-card: #ffffff;--color-card-hover: #f8fafc;--color-surface: #f1f5f9;--color-edge: rgba(15,23,42,.07);--color-edge-md: rgba(15,23,42,.13);--color-edge-hi: rgba(15,23,42,.24);--color-text: #0f172a;--color-text-sub: #334155;--color-text-muted: #94a3b8;--color-gold: #b45309;--color-ember: #c2410c;--color-danger: #ef4444;--color-success: #16a34a;--color-info: #2563eb;--color-sand: #92400e;--color-warning: #d97706;--grad-gold: linear-gradient(135deg, #d97706, #b45309);--grad-danger: linear-gradient(135deg, #ef4444, #b91c1c);--grad-avatar: linear-gradient(135deg, #d97706, #c2410c);--cat-route: #c2410c;--cat-eau: #0369a1;--cat-insalubrite: #4d7c0f;--cat-insecurite: #b91c1c;--cat-inondation: #0e7490;--cat-eclairage: #b45309;--cat-sante: #047857;--cat-incendie: #991b1b;--cat-marche: #6d28d9;--cat-electricite: #92400e;--cat-autre: #6b7280;--font-display: "Barlow Condensed", sans-serif;--font-body: "Inter", sans-serif;--t-2xs: .643rem;--t-xs: .75rem;--t-sm: .857rem;--t-base: 1rem;--t-md: 1.14rem;--t-lg: 1.28rem;--t-xl: 1.57rem;--t-2xl: 2rem;--t-3xl: 2.57rem;--text-xs: var(--t-xs);--text-sm: var(--t-sm);--text-base: var(--t-base);--text-md: var(--t-md);--text-lg: var(--t-lg);--text-xl: var(--t-xl);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--space-1: var(--sp-1);--space-2: var(--sp-2);--space-3: var(--sp-3);--space-4: var(--sp-4);--space-5: var(--sp-5);--space-6: var(--sp-6);--space-8: var(--sp-8);--space-10: var(--sp-10);--space-12: var(--sp-12);--touch: 2.75rem;--nav-h: 3.5rem;--card-p: 1rem;--page-x: 1rem;--page-y: 1rem;--inp-y: .5rem;--inp-x: .75rem;--btn-px: 1.25rem;--touch-target: var(--touch);--navbar-height: var(--nav-h);--input-py: var(--inp-y);--input-px: var(--inp-x);--btn-py: var(--inp-y);--page-px: var(--page-x);--page-py: var(--page-y);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 3px rgba(15,23,42,.06);--shadow-sm: 0 1px 4px rgba(15,23,42,.07), 0 1px 2px rgba(15,23,42,.04);--shadow-md: 0 4px 20px rgba(15,23,42,.09), 0 2px 6px rgba(15,23,42,.05);--shadow-lg: 0 12px 48px rgba(15,23,42,.12), 0 4px 10px rgba(15,23,42,.06);--shadow-xl: 0 24px 64px rgba(15,23,42,.14), 0 8px 16px rgba(15,23,42,.06);--shadow-gold: 0 4px 16px rgba(180,83,9,.2);--transition-fast: .12s ease;--transition-base: .2s ease;--transition-slow: .35s ease}[data-theme=dark]{--color-ink: #0f172a;--color-surface: #1e293b;--color-edge: rgba(255,255,255,.08);--color-edge-md: rgba(255,255,255,.12);--color-edge-hi: rgba(255,255,255,.18);--color-text: #f1f5f9;--color-text-sub: #cbd5e1;--color-text-muted: #64748b}[data-theme=dark] input,[data-theme=dark] textarea,[data-theme=dark] select,[data-theme=dark] button:not(.btn-p):not(.btn-s){background:#1e293b;color:var(--color-text);border-color:var(--color-edge-md)}[data-theme=dark] select option{background:#1e293b;color:var(--color-text)}[data-theme=dark] .leaflet-container{background:#0f172a!important}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden;font-size:clamp(11px,.43vw + 9.62px,14px)}body,#root{height:100%;overflow:hidden}body{background:var(--color-ink);color:var(--color-text);font-family:var(--font-body);font-size:var(--t-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px;border-radius:3px}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000040}input,textarea,select,button{font-family:var(--font-body)}input,textarea,select{background:#fff;border:1.5px solid var(--color-edge-md);color:var(--color-text);border-radius:var(--radius-md);padding:var(--inp-y) var(--inp-x);min-height:var(--touch);width:100%;outline:none;font-size:var(--t-base);transition:border-color var(--transition-base),box-shadow var(--transition-base)}input:focus,textarea:focus,select:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #b453091a}select option{background:#fff;color:var(--color-text)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}button{cursor:pointer;min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.fu{animation:fadeUp .25s ease both}.fi{animation:fadeIn .3s ease both}.pop{animation:pop .4s ease both}.pg{max-width:580px;margin:0 auto;padding:var(--page-y) var(--page-x)}.pg-lg{max-width:760px;margin:0 auto;padding:var(--page-y) var(--page-x)}.pg-xl{max-width:900px;margin:0 auto;padding:var(--page-y) var(--page-x)}.col{display:flex;flex-direction:column}.col.g2{gap:var(--sp-2)}.col.g3{gap:var(--sp-3)}.col.g4{gap:var(--sp-4)}.col.g5{gap:var(--sp-5)}.col.g6{gap:var(--sp-6)}.row{display:flex;align-items:center}.row.g2{gap:var(--sp-2)}.row.g3{gap:var(--sp-3)}.row.g4{gap:var(--sp-4)}.overline{font-family:var(--font-display);font-size:var(--t-2xs);font-weight:700;letter-spacing:.14em;color:var(--color-gold);text-transform:uppercase}.lbl{font-size:var(--t-xs);font-weight:600;color:var(--color-text-sub);letter-spacing:.04em;display:block;margin-bottom:var(--sp-1)}.cap{font-size:var(--t-xs);color:var(--color-text-muted)}.display{font-family:var(--font-display)}.display-sm{font-family:var(--font-display);font-size:var(--t-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase}.display-md{font-family:var(--font-display);font-size:var(--t-lg);font-weight:800;letter-spacing:.06em}.display-lg{font-family:var(--font-display);font-size:var(--t-xl);font-weight:800;letter-spacing:.04em}.display-xl{font-family:var(--font-display);font-size:var(--t-2xl);font-weight:800;letter-spacing:.04em}.text-gold{color:var(--color-gold)}.text-muted{color:var(--color-text-muted)}.text-sub{color:var(--color-text-sub)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.btn-p{background:var(--grad-gold);color:#fff;border:none;border-radius:var(--radius-md);padding:var(--inp-y) var(--btn-px);font-size:var(--t-sm);font-weight:600;width:100%;letter-spacing:.01em;min-height:var(--touch);transition:opacity var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 1px 4px #b4530940,0 2px 8px #b4530926}.btn-p:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 16px #b453094d}.btn-p:active:not(:disabled){transform:translateY(0)}.btn-p:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-s{background:#fff;color:var(--color-text-sub);border:1.5px solid var(--color-edge-md);border-radius:var(--radius-md);padding:var(--inp-y) var(--inp-x);font-size:var(--t-sm);font-weight:500;min-height:var(--touch);transition:all var(--transition-fast);box-shadow:var(--shadow-xs)}.btn-s:hover{background:var(--color-surface);border-color:var(--color-edge-hi);color:var(--color-text)}.btn-s:active{transform:translateY(1px)}.btn-ghost{background:none;border:none;color:var(--color-text-muted);min-height:0;font-size:var(--t-sm);padding:var(--sp-1) var(--sp-2);transition:color var(--transition-fast)}.btn-ghost:hover{color:var(--color-text-sub)}.alert{padding:var(--sp-3) var(--inp-x);border-radius:var(--radius-md);font-size:var(--t-sm);display:flex;align-items:flex-start;gap:var(--sp-2);line-height:1.5}.alert-err{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.alert-warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.alert-ok{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.card{background:var(--color-card);border:1px solid var(--color-edge);border-radius:var(--radius-lg);padding:var(--card-p);box-shadow:var(--shadow-sm)}.surf{background:var(--color-card);border:1px solid var(--color-edge-md);border-radius:var(--radius-lg);padding:var(--card-p);box-shadow:var(--shadow-xs)}.surf-gold{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--radius-md);padding:var(--card-p)}.surf-danger{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-md);padding:var(--inp-y) var(--inp-x)}.badge{display:inline-flex;align-items:center;padding:.2em .65em;border-radius:var(--radius-full);font-size:var(--t-2xs);font-weight:700;font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap}.skeleton{background:linear-gradient(90deg,#0000000d 25%,#0000001a,#0000000d 75%);background-size:400px 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@media (max-width: 600px){.nav-offline{display:none!important}}@media (max-width: 360px){.nav-label{display:none!important}}@media (max-width: 600px){.stats-status-legend{display:none!important}}.cat-grid{grid-template-columns:repeat(3,1fr)}@media (min-width: 480px){.cat-grid{grid-template-columns:repeat(4,1fr)}}.profile-stats-grid{grid-template-columns:repeat(2,1fr)}@media (min-width: 480px){.profile-stats-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 640px){.admin-event-row{flex-direction:column!important}.admin-event-actions{justify-content:flex-start!important}}@media (max-width: 600px){.install-prompt{bottom:max(var(--sp-4),env(safe-area-inset-bottom,var(--sp-4)))!important;width:calc(100vw - var(--sp-6))!important}}.list-bar-title{display:block}.list-bar-sort{flex:1;max-width:160px}@media (max-width: 600px){.list-bar-title{display:none}.list-bar-sort{flex:1;max-width:none}}.leaflet-container{background:#e2e8f0!important}.leaflet-control-zoom a{background:#fff!important;color:var(--color-text)!important;border-color:var(--color-edge-md)!important;font-weight:700!important;min-height:30px!important;box-shadow:var(--shadow-sm)!important}
