*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary-50: #f0f9ff;--primary-100: #e0f2fe;--primary-200: #bae6fd;--primary-300: #7dd3fc;--primary-400: #38bdf8;--primary-500: #0ea5e9;--primary-600: #0284c7;--primary-700: #0369a1;--primary-800: #075985;--primary-900: #0c4a6e;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--accent-purple: #8b5cf6;--accent-pink: #ec4899;--accent-green: #10b981;--accent-orange: #f59e0b;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-weight:400;line-height:1.6;color:var(--gray-800);background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);font-size:.95rem;font-weight:600;line-height:1.2;border:none;border-radius:var(--radius-xl);cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;font-family:var(--font-sans);letter-spacing:.025em;transform:translateZ(0);will-change:transform,box-shadow}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .6s cubic-bezier(.4,0,.2,1)}.btn:hover:before{left:100%}.btn-primary{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);background-size:200% 200%;box-shadow:0 8px 32px #667eea66,0 4px 16px #764ba24d,inset 0 1px #fff3;border:1px solid rgba(255,255,255,.1)}.btn-primary:hover{background-position:100% 0;transform:translateY(-3px) scale(1.02);box-shadow:0 16px 48px #667eea99,0 8px 24px #764ba266,inset 0 1px #ffffff4d}.btn-primary:active{transform:translateY(-1px) scale(.98);box-shadow:0 4px 16px #667eea66,0 2px 8px #764ba24d}.btn-secondary{color:var(--gray-700);background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #0000001a,inset 0 1px #fffc}.btn-secondary:hover{background:#fffffff2;color:var(--gray-800);transform:translateY(-3px) scale(1.02);box-shadow:0 16px 48px #00000026,inset 0 1px #ffffffe6;border-color:#ffffff80}.btn-secondary:active{transform:translateY(-1px) scale(.98);box-shadow:0 4px 16px #0000001a,inset 0 1px #fffc}.btn-ghost{color:#ffffffe6;background:transparent;border:2px solid rgba(255,255,255,.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-ghost:hover{color:#fff;background:#ffffff1a;border-color:#fff6;transform:translateY(-2px) scale(1.02);box-shadow:0 8px 32px #ffffff1a}.btn-ghost:active{transform:translateY(0) scale(.98);background:#ffffff0d}.btn-outline{color:var(--primary-600);background:#ffffffe6;border:2px solid var(--primary-500);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.btn-outline:hover{color:#fff;background:var(--primary-500);border-color:var(--primary-600);transform:translateY(-2px) scale(1.02);box-shadow:0 8px 32px #0ea5e94d}.btn-outline:active{transform:translateY(0) scale(.98);background:var(--primary-600)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:.875rem;border-radius:var(--radius-lg)}.btn-lg{padding:var(--space-5) var(--space-10);font-size:1.125rem;border-radius:var(--radius-2xl)}.btn-xl{padding:var(--space-6) var(--space-12);font-size:1.25rem;border-radius:var(--radius-2xl)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.w-full{width:100%}.w-auto{width:auto}.h-full{height:100%}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.m-2{margin:var(--space-2)}.m-4{margin:var(--space-4)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.text-xs{font-size:.75rem;line-height:1rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-white{color:#fff}.text-gray-50{color:var(--gray-50)}.text-gray-100{color:var(--gray-100)}.text-gray-200{color:var(--gray-200)}.text-gray-300{color:var(--gray-300)}.text-gray-400{color:var(--gray-400)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:var(--gray-600)}.text-gray-700{color:var(--gray-700)}.text-gray-800{color:var(--gray-800)}.text-gray-900{color:var(--gray-900)}.bg-white{background-color:#fff}.bg-gray-50{background-color:var(--gray-50)}.bg-gray-100{background-color:var(--gray-100)}.bg-primary-500{background-color:var(--primary-500)}.bg-primary-600{background-color:var(--primary-600)}.border{border-width:1px;border-style:solid;border-color:var(--gray-200)}.border-gray-200{border-color:var(--gray-200)}.border-gray-300{border-color:var(--gray-300)}.rounded{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:9999px}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.transform{transform:translateZ(0)}.scale-105{transform:scale(1.05)}.scale-110{transform:scale(1.1)}.translate-y-1{transform:translateY(.25rem)}.translate-y-2{transform:translateY(.5rem)}.-translate-y-1{transform:translateY(-.25rem)}.-translate-y-2{transform:translateY(-.5rem)}.transition-all{transition:all .3s cubic-bezier(.4,0,.2,1)}.transition-colors{transition:color .3s,background-color .3s,border-color .3s}.transition-transform{transition:transform .3s cubic-bezier(.4,0,.2,1)}.transition-opacity{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.glass-card{background:#ffffff1a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-card:hover{background:#ffffff26;transform:translateY(-4px);box-shadow:0 32px 64px -12px #00000040}.input-field{width:100%;padding:var(--space-4);font-size:1rem;line-height:1.5;color:var(--gray-800);background:#ffffffe6;border:2px solid transparent;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all .3s cubic-bezier(.4,0,.2,1);outline:none}.input-field:focus{background:#fff;border-color:var(--primary-500);box-shadow:var(--shadow-md),0 0 0 3px #0ea5e91a;transform:translateY(-1px)}.input-field::-moz-placeholder{color:var(--gray-400)}.input-field::placeholder{color:var(--gray-400)}.card{background:#fffffff2;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:var(--space-6);transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2xl);background:#fff}.nav-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:.875rem;font-weight:500;color:#fffc;text-decoration:none;border-radius:var(--radius-lg);transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-item:hover{color:#fff;background:#ffffff1a;transform:translateY(-1px)}.nav-item.active{color:#fff;background:#fff3;box-shadow:var(--shadow-md)}.top-bar{background:#ffffff1a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);padding:var(--space-4) 0;position:sticky;top:0;z-index:50}.leaflet-container{border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);overflow:hidden;border:2px solid rgba(255,255,255,.2)}.onboarding-slide{background:#fffffff2;border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);padding:var(--space-8);text-align:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.3)}.language-option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#ffffffe6;border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);text-decoration:none;color:var(--gray-700)}.language-option:hover{background:#fff;border-color:var(--primary-200);transform:translateY(-2px);box-shadow:var(--shadow-md)}.language-option.selected{background:var(--primary-50);border-color:var(--primary-500);color:var(--primary-700)}.search-bar{position:relative;width:100%;max-width:400px}.search-input{width:100%;padding:var(--space-4) var(--space-12) var(--space-4) var(--space-4);font-size:1rem;background:#fffffff2;border:2px solid transparent;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:all .3s cubic-bezier(.4,0,.2,1);outline:none}.search-input:focus{background:#fff;border-color:var(--primary-500);box-shadow:var(--shadow-xl),0 0 0 3px #0ea5e91a}.suggestion-card{background:#fffffff2;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-xl);padding:var(--space-4);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.suggestion-card:hover{background:#fff;transform:translateY(-2px);box-shadow:var(--shadow-lg)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .6s ease-out}.animate-slide-up{animation:slideUp .8s ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px;-webkit-transition:background .3s ease;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media (max-width: 768px){.container{padding:0 var(--space-3)}.grid-cols-2,.grid-cols-3{grid-template-columns:repeat(1,minmax(0,1fr))}.text-4xl{font-size:1.875rem;line-height:2.25rem}.text-3xl{font-size:1.5rem;line-height:2rem}.p-8{padding:var(--space-6)}.px-6{padding-left:var(--space-4);padding-right:var(--space-4)}}@media (max-width: 480px){.container{padding:0 var(--space-2)}.p-6{padding:var(--space-4)}.py-6{padding-top:var(--space-4);padding-bottom:var(--space-4)}}.btn-primary:focus,.btn-secondary:focus,.btn-ghost:focus,.btn-outline:focus,.input-field:focus,.nav-item:focus{outline:2px solid var(--primary-500);outline-offset:2px}@media print{body{background:#fff!important;color:#000!important}.glass-card,.card{background:#fff!important;border:1px solid #ccc!important;box-shadow:none!important}}
