:root{--primary-50:#f0f9f3;--primary-100:#dcf2e3;--primary-200:#bbe5cb;--primary-300:#8bd3a7;--primary-400:#55bd7c;--primary-500:#2e8b57;--primary-600:#1e6b42;--primary-700:#16573a;--primary-800:#154832;--primary-900:#133c2c;--secondary-50:#f0f8ff;--secondary-100:#e0f2fe;--secondary-200:#bae6fd;--secondary-300:#7dd3fc;--secondary-400:#38bdf8;--secondary-500:#0ea5e9;--secondary-600:#0284c7;--secondary-700:#0369a1;--secondary-800:#075985;--secondary-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;--success-500:#10b981;--success-50:#ecfdf5;--warning-500:#f59e0b;--warning-50:#fffbeb;--error-500:#ef4444;--error-50:#fef2f2;--error-200:#fecaca;--info-500:#3b82f6;--info-50:#eff6ff;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.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;--space-24:6rem;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--shadow-2xl:0 25px 50px -12px rgba(0,0,0,.25);--transition-fast:150ms ease-in-out;--transition-normal:250ms ease-in-out;--transition-slow:350ms ease-in-out;--z-base:0;--z-map-layers:1;--z-map-controls:10;--z-geological-controls:15;--z-popups:20;--z-modals:1000;--z-overlays:1100}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:linear-gradient(135deg,var(--primary-700) 0,var(--primary-500) 50%,var(--primary-300) 100%);background-attachment:fixed;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:var(--leading-normal);color:var(--gray-800);margin:0;padding:0;overflow-x:hidden}.container{max-width:1280px;margin:0 auto;padding:0 var(--space-6)}.header{background:hsla(0,0%,100%,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid hsla(0,0%,100%,.2);box-shadow:0 2px 20px rgba(0,0,0,.1);position:-webkit-sticky;position:sticky;top:0;z-index:100;padding:var(--space-4) 0}.header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="25" cy="25" r="1" fill="white" opacity="0.1"/><circle cx="75" cy="25" r="1" fill="white" opacity="0.1"/><circle cx="25" cy="75" r="1" fill="white" opacity="0.1"/><circle cx="75" cy="75" r="1" fill="white" opacity="0.1"/></svg>') repeat;animation:drift 20s linear infinite}@keyframes drift{0%{transform:translateX(0)}to{transform:translateX(100px)}}.header h1{font-size:clamp(var(--text-2xl),4vw,var(--text-4xl));font-weight:800;margin:0;text-shadow:none;color:var(--gray-800)}.header p{font-size:var(--text-lg);margin:var(--space-2) 0 0 0;opacity:.9;max-width:600px;margin-left:auto;margin-right:auto}.nav,.nav-link,.nav-list,.nav-menu-overlay,.nav-toggle{display:none}.main-content{padding:var(--space-8) 0 var(--space-12);min-height:calc(100vh - 200px)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;text-decoration:none;cursor:pointer;transition:all var(--transition-normal);position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.025em}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left var(--transition-fast)}.btn:hover:before{left:100%}.btn-primary{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,var(--primary-600),var(--primary-700))}.btn-secondary{background:linear-gradient(135deg,var(--gray-100),var(--gray-200));color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:linear-gradient(135deg,var(--gray-200),var(--gray-300));transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-success{background:linear-gradient(135deg,var(--success-500),#059669)}.btn-success,.btn-warning{color:#fff;box-shadow:var(--shadow-md)}.btn-warning{background:linear-gradient(135deg,var(--warning-500),#d97706)}.btn-error{background:linear-gradient(135deg,var(--error-500),#dc2626);color:#fff}.btn-error,.card{box-shadow:var(--shadow-md)}.card{background:#fff;border-radius:var(--radius-xl);border:1px solid var(--gray-200);overflow:hidden;transition:all var(--transition-normal);position:relative}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--primary-200)}.card-header{border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--gray-50),#fff)}.card-body,.card-footer,.card-header{padding:var(--space-6)}.card-footer{border-top:1px solid var(--gray-200);background:var(--gray-50)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--gray-700);font-size:var(--text-sm)}.form-input,.form-select{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-300);border-radius:var(--radius-lg);font-size:var(--text-base);transition:all var(--transition-normal);background:#fff}.form-input:focus,.form-select:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(46,139,87,.1);transform:translateY(-1px)}.form-input::placeholder{color:var(--gray-400)}.grid{display:grid;grid-gap:var(--space-6);gap:var(--space-6)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.fossil-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:var(--space-6);gap:var(--space-6);margin-top:var(--space-8)}@media (max-width:768px){.fossil-grid{grid-template-columns:1fr;gap:var(--space-4);margin-top:var(--space-4)}}@media (max-width:480px){.fossil-grid{gap:var(--space-3);margin:var(--space-4) calc(-1 * var(--space-3)) 0}}.fossil-card{background:#fff;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md);transition:all var(--transition-normal);border:1px solid var(--gray-200);position:relative}.fossil-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary-500),var(--secondary-500));transform:scaleX(0);transition:transform var(--transition-normal)}.fossil-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-2xl);border-color:var(--primary-300)}.fossil-card:hover:before{transform:scaleX(1)}.fossil-card-image{width:100%;height:220px;object-fit:cover;transition:transform var(--transition-slow)}.fossil-card:hover .fossil-card-image{transform:scale(1.05)}.fossil-card-content{padding:var(--space-6)}.fossil-card h3{margin-bottom:var(--space-3);color:var(--gray-800);font-size:var(--text-xl);font-weight:700}.fossil-card p{color:var(--gray-600);margin-bottom:var(--space-2);line-height:var(--leading-relaxed)}.fossil-card .species{font-style:italic;color:var(--gray-700);font-weight:500}.fossil-card .age{font-weight:600;color:var(--error-500)}.fossil-card .location{color:var(--success-500);font-weight:500}.controls-panel{background:#fff;padding:var(--space-8);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-8);border:1px solid var(--gray-200)}.controls-panel h3{margin-bottom:var(--space-6);color:var(--gray-800);font-size:var(--text-2xl);font-weight:700}.control-group{margin-bottom:var(--space-5)}.control-group label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--gray-700);font-size:var(--text-sm)}.control-group input,.control-group select{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--gray-300);border-radius:var(--radius-lg);font-size:var(--text-base);transition:all var(--transition-normal);background:#fff}.control-group input:focus,.control-group select:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(46,139,87,.1);transform:translateY(-1px)}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--space-6);gap:var(--space-6)}.map-container{height:500px;width:100%;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl);margin-bottom:var(--space-8);border:1px solid var(--gray-200)}.map-header{padding:var(--space-4);background:#fff;border-bottom:1px solid var(--gray-200);position:-webkit-sticky;position:sticky;top:0;z-index:10}.header-top{margin-bottom:var(--space-4)}.header-top,.map-controls{flex-direction:column;gap:var(--space-3)}.map-stats{gap:var(--space-3);margin-bottom:var(--space-3)}.stat{flex:1 1;min-width:120px;text-align:center;padding:var(--space-2) var(--space-3);background:var(--gray-50);border-radius:var(--radius-md);font-weight:"600";color:var(--gray-700);border:1px solid var(--gray-200)}.layer-controls{gap:var(--space-2)}.add-marker-toggle,.manage-markers-button,.marker-toggle,.property-lines-toggle,.stratigraphy-toggle{padding:var(--space-3) var(--space-4);border:2px solid var(--gray-300);background:#fff;color:var(--gray-700);border-radius:var(--radius-lg);font-weight:"600";min-height:48px;min-width:120px;justify-content:center;position:relative;overflow:hidden}.add-marker-toggle:hover,.manage-markers-button:hover,.marker-toggle:hover,.property-lines-toggle:hover,.stratigraphy-toggle:hover{background:var(--gray-50);border-color:var(--primary-400);color:var(--primary-700);transform:translateY(-2px);box-shadow:var(--shadow-md)}.add-marker-toggle.active,.marker-toggle.active,.property-lines-toggle.active,.stratigraphy-toggle.active{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;border-color:var(--primary-600);box-shadow:var(--shadow-lg)}.toggle-indicator{position:absolute;top:-8px;right:-8px;padding:2px 6px;font-weight:"700";box-shadow:var(--shadow-sm)}.location-search-container{width:100%;max-width:400px}.geological-legend{padding:var(--space-6);box-shadow:var(--shadow-lg);margin-bottom:var(--space-8)}.geological-legend h3{margin-bottom:var(--space-5);color:var(--gray-800);font-size:var(--text-xl);font-weight:700}.geological-periods{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.period-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);transition:all var(--transition-normal);border:1px solid transparent}.period-item:hover{background:var(--gray-50);border-color:var(--gray-200);transform:translateX(4px)}.period-color{width:20px;height:20px;border-radius:50%;border:2px solid #fff;box-shadow:var(--shadow-sm);flex-shrink:0}.period-name{font-weight:600;color:var(--gray-800)}.period-age{color:var(--gray-500);font-size:var(--text-sm);margin-left:auto}.loading-spinner{width:40px;height:40px;border-top:4px solid var(--gray-200);border:4px solid var(--gray-200);border-top-color:var(--primary-500);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-primary{color:var(--primary-500)}.text-secondary{color:var(--secondary-500)}.text-gray{color:var(--gray-600)}.text-success{color:var(--success-500)}.text-warning{color:var(--warning-500)}.text-error{color:var(--error-500)}.bg-primary{background-color:var(--primary-500)}.bg-secondary{background-color:var(--secondary-500)}.bg-gray-50{background-color:var(--gray-50)}.bg-white{background-color:#fff}.animate-fade-in{animation:fadeIn .6s ease-in-out}.animate-slide-up{animation:slideUp .5s ease-out}.animate-bounce{animation:bounce 2s infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,53%,80%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1);transform:translateZ(0)}40%,43%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-8px,0)}70%{animation-timing-function:cubic-bezier(.755,.05,.855,.06);transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:1024px){.container{padding:0 var(--space-4)}.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.container{padding:0 var(--space-3)}.header h1{font-size:var(--text-3xl)}.header p{font-size:var(--text-base)}.nav{position:relative}.nav-toggle{display:block;position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);z-index:70}.nav-list{position:fixed;top:0;right:-100%;width:80%;max-width:300px;height:100vh;background:#fff;flex-direction:column;gap:var(--space-2);padding:var(--space-16) var(--space-6) var(--space-6);box-shadow:var(--shadow-2xl);transition:right var(--transition-normal);z-index:70;overflow-y:auto}.nav-list.active{right:0}.nav-link{text-align:left;padding:var(--space-4);font-size:var(--text-base);width:100%;margin-bottom:var(--space-2);border-radius:var(--radius-lg)}.nav-link button{justify-content:flex-start;gap:var(--space-3)}.control-grid,.fossil-grid{grid-template-columns:1fr;gap:var(--space-4)}.geological-periods{gap:var(--space-2)}.geological-periods,.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.map-container{height:350px;margin:0 calc(-1 * var(--space-3))}.map-content{height:400px}.map-wrapper{height:400px;min-height:400px}section[id=map]{min-height:calc(100vh - 120px)!important;overflow:visible!important;margin:var(--space-4);border-radius:var(--radius-xl)}button{min-height:48px;min-width:48px;padding:var(--space-3) var(--space-4);font-size:var(--text-base)}input[type=range]{height:48px}input[type=number],input[type=search],input[type=text],select{min-height:48px;font-size:var(--text-base)}.controls-panel,.fossil-card-content{padding:var(--space-4)}.controls-panel{margin:0 calc(-1 * var(--space-3)) var(--space-6);border-radius:0}.card-body,.card-footer,.card-header{padding:var(--space-4)}.map-controls{flex-direction:column;gap:var(--space-3);align-items:stretch}.layer-controls{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.map-controls-compact{padding:var(--space-2) var(--space-3)}.map-controls-compact .layer-controls{gap:var(--space-1);justify-content:space-between;grid-template-columns:repeat(2,1fr)}.map-controls-compact .add-marker-toggle,.map-controls-compact .manage-markers-button,.map-controls-compact .marker-toggle,.map-controls-compact .property-lines-toggle,.map-controls-compact .stratigraphy-toggle{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);min-height:32px;justify-content:center}.map-stats{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-3)}.stat{flex:1 1;min-width:120px;text-align:center;padding:var(--space-2);background:hsla(0,0%,100%,.9);border-radius:var(--radius-md);font-size:var(--text-sm)}}@media (max-width:480px){.header{padding:var(--space-5) 0}.header h1{font-size:var(--text-2xl)}.main-content{padding:var(--space-5) 0 var(--space-8)}.fossil-grid{gap:var(--space-4)}.btn{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);min-height:48px}section[id=map] div[style*=gridTemplateColumns]{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))!important;gap:8px!important}.container{padding:0 var(--space-3)}.btn,button,input[type=button],input[type=submit]{min-height:48px;min-width:48px;touch-action:manipulation}li,p,span{font-size:var(--text-base);line-height:1.6}body{overflow-x:hidden}.fossil-card{margin-bottom:var(--space-4);border-radius:var(--radius-lg)}.fossil-card-content{padding:var(--space-4)}.map-wrapper{touch-action:pan-x pan-y}}@media (min-width:769px){.mobile-only{display:none}.desktop-only{display:block}}@media (max-width:768px){.mobile-only{display:block}.desktop-only{display:none}h1,h2,h3,h4,h5,h6{line-height:1.3;margin-bottom:var(--space-3)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{margin-bottom:var(--space-3);line-height:1.6}ol,ul{padding-left:var(--space-4);margin-bottom:var(--space-4)}li{margin-bottom:var(--space-1);line-height:1.5}input,select,textarea{font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none}table{font-size:var(--text-sm);overflow-x:auto;display:block;white-space:nowrap}.mobile-text-center{text-align:center}.mobile-hidden{display:none}.mobile-full-width{width:100%!important}.mobile-spacing>*+*{margin-top:var(--space-4)}.mobile-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.fossil-card-image{image-rendering:-webkit-optimize-contrast}}@media print{.controls-panel,.map-container,.nav,button{display:none!important}.fossil-card{break-inside:avoid;page-break-inside:avoid}body{font-size:12pt;line-height:1.4;background:#fff!important}.header{background:none!important;color:#000!important}.card{box-shadow:none!important;border:1px solid #ccc!important}}.btn:focus,:focus,button:focus{outline:2px solid var(--primary-500);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.geological-legend{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--gray-200)}.legend-section{padding:var(--space-5)}.legend-section:not(:last-child){border-bottom:1px solid var(--gray-200)}.legend-title{margin:0 0 var(--space-4) 0;color:var(--primary-700);font-size:var(--text-xl);font-weight:600;display:flex;align-items:center;gap:var(--space-2)}.legend-description{margin:0 0 var(--space-4) 0;color:var(--gray-600);font-size:var(--text-sm);line-height:var(--leading-relaxed);font-style:italic}.geological-periods,.stratigraphic-units{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.geological-periods{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stratigraphic-units{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.period-item,.unit-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);background:var(--gray-50);border-radius:var(--radius-md);transition:background-color var(--transition-fast);border:1px solid var(--gray-200)}.period-item:hover,.unit-item:hover{background:var(--gray-100);border-color:var(--primary-200)}.period-color,.unit-color{width:20px;height:20px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.1);flex-shrink:0;box-shadow:var(--shadow-sm)}.period-info,.unit-info{flex:1 1;display:flex;flex-direction:column;gap:var(--space-1)}.period-name,.unit-name{font-weight:600;color:var(--primary-700);font-size:var(--text-sm)}.period-age{font-weight:500}.period-age,.unit-description{font-size:var(--text-xs);color:var(--gray-600)}.unit-description{line-height:var(--leading-tight)}.unit-age{font-size:var(--text-xs);color:var(--gray-500);font-style:italic}.data-source{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--gray-200)}.data-source p{margin:0 0 var(--space-1) 0;font-size:var(--text-xs);color:var(--gray-600)}.data-source em{color:var(--gray-500)}@media (max-width:768px){.legend-section{padding:var(--space-4)}.geological-periods,.stratigraphic-units{grid-template-columns:1fr}.period-item,.unit-item{padding:var(--space-3)}.legend-title{font-size:var(--text-lg)}}.pbdb-map-container{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);margin-bottom:var(--space-8)}.map-header,.pbdb-map-container{overflow:hidden;position:relative}.map-header{background:linear-gradient(135deg,var(--primary-700) 0,var(--primary-500) 50%,var(--secondary-600) 100%);color:#fff;padding:var(--space-5)}.map-header:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="25" cy="25" r="1" fill="white" opacity="0.1"/><circle cx="75" cy="25" r="1" fill="white" opacity="0.1"/><circle cx="25" cy="75" r="1" fill="white" opacity="0.1"/><circle cx="75" cy="75" r="1" fill="white" opacity="0.1"/></svg>') repeat;animation:drift 20s linear infinite}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);gap:var(--space-5);position:relative;z-index:1}.map-header h3{margin:0;font-size:var(--text-2xl);font-weight:700;flex-shrink:0}.map-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4);position:relative;z-index:1}.map-controls-compact{background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:var(--space-3) var(--space-4);border-bottom:1px solid #e5e7eb;position:relative;z-index:var(--z-geological-controls)}.map-controls-compact .layer-controls{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;justify-content:center}.map-controls-compact .add-marker-toggle,.map-controls-compact .manage-markers-button,.map-controls-compact .marker-toggle,.map-controls-compact .property-lines-toggle,.map-controls-compact .stratigraphy-toggle{background:hsla(0,0%,100%,.9);color:var(--gray-700);border:2px solid var(--gray-300);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:all var(--transition-normal);display:flex;align-items:center;gap:var(--space-2);min-height:36px}.map-controls-compact .add-marker-toggle:hover,.map-controls-compact .manage-markers-button:hover,.map-controls-compact .marker-toggle:hover,.map-controls-compact .property-lines-toggle:hover,.map-controls-compact .stratigraphy-toggle:hover{background:#fff;border-color:var(--primary-400);color:var(--primary-700);transform:translateY(-1px);box-shadow:var(--shadow-md)}.map-controls-compact .stratigraphy-toggle.active{background:var(--success-500);color:#fff;border-color:var(--success-500);box-shadow:0 0 15px rgba(76,175,80,.4)}.map-controls-compact .property-lines-toggle.active{background:var(--warning-500);color:#fff;border-color:var(--warning-500);box-shadow:0 0 15px rgba(255,165,0,.4)}.map-controls-compact .marker-toggle.active{background:#228b22;color:#fff;border-color:#228b22;box-shadow:0 0 15px rgba(34,139,34,.4)}.map-controls-compact .add-marker-toggle.active{background:#ff6b6b;color:#fff;border-color:#ff6b6b;box-shadow:0 0 15px hsla(0,100%,71%,.4)}.map-stats{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.stat{background:hsla(0,0%,100%,.1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-2xl);font-size:var(--text-sm);font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.2);transition:all var(--transition-fast)}.stat:hover{background:hsla(0,0%,100%,.2);transform:translateY(-2px)}.layer-controls{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.add-marker-toggle,.manage-markers-button,.marker-toggle,.property-lines-toggle,.stratigraphy-toggle{background:hsla(0,0%,100%,.1);color:#fff;border:2px solid hsla(0,0%,100%,.3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-2xl);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:all var(--transition-normal);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;gap:var(--space-2);min-height:44px}.add-marker-toggle:hover,.manage-markers-button:hover,.marker-toggle:hover,.property-lines-toggle:hover,.stratigraphy-toggle:hover{background:hsla(0,0%,100%,.2);border-color:hsla(0,0%,100%,.5);transform:translateY(-1px)}.stratigraphy-toggle.active{background:rgba(76,175,80,.8);border-color:var(--success-500);box-shadow:0 0 15px rgba(76,175,80,.4)}.property-lines-toggle.active{background:rgba(255,165,0,.8);border-color:var(--warning-500);box-shadow:0 0 15px rgba(255,165,0,.4)}.marker-toggle.active{background:rgba(34,139,34,.8);border-color:#228b22;box-shadow:0 0 15px rgba(34,139,34,.4)}.add-marker-toggle.active{background:hsla(0,100%,71%,.8);border-color:#ff6b6b;box-shadow:0 0 15px hsla(0,100%,71%,.4)}.add-marker-toggle:disabled,.marker-toggle:disabled,.property-lines-toggle:disabled,.stratigraphy-toggle:disabled{opacity:.6;cursor:not-allowed;transform:none}.toggle-indicator{background:var(--success-500);color:#fff;padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:700;margin-left:var(--space-1)}.map-wrapper{border-radius:0;overflow:hidden;min-height:600px}.map-content,.map-wrapper{position:relative;height:600px}.map-content{width:100%}.location-search{width:100%;max-width:400px}.location-search,.search-container{position:relative}.search-input-container{position:relative;display:flex;align-items:center;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.search-input{padding:var(--space-3) var(--space-4);border:none;outline:none;background:transparent}.search-input::placeholder{color:var(--gray-400)}.search-actions{display:flex;align-items:center;padding:0 var(--space-2);gap:var(--space-1)}.loading-indicator{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.spinner{width:16px;height:16px;border-top:2px solid var(--gray-200);border:2px solid var(--gray-200);border-top-color:var(--primary-600);border-radius:50%;animation:spin 1s linear infinite}.clear-button,.current-location-button{background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);font-size:var(--text-base);transition:background-color var(--transition-fast);display:flex;align-items:center;justify-content:center}.clear-button:hover,.current-location-button:hover{background:var(--gray-100)}.current-location-button:disabled{opacity:.5;cursor:not-allowed}.search-type-indicator{position:absolute;top:100%;left:0;right:0;background:linear-gradient(135deg,var(--primary-600) 0,var(--secondary-600) 100%);color:#fff;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-popups)}.coordinate-hint{font-weight:500}.address-hint{opacity:.9}.error-message{position:absolute;top:100%;left:0;right:0;color:var(--error-600);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);border-radius:0 0 var(--radius-lg) var(--radius-lg);z-index:var(--z-popups)}.search-result-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;transition:background-color var(--transition-fast);border-bottom:1px solid var(--gray-100)}.search-result-item:hover{background:var(--primary-50)}.search-result-item:last-child{border-bottom:none}.result-icon{font-size:var(--text-lg);width:24px;text-align:center}.result-content{flex:1 1;min-width:0}.result-name{font-weight:500;color:var(--gray-900);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-coordinates{font-size:var(--text-xs);color:var(--gray-500);font-family:monospace}.marker-manager-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:var(--z-overlays);padding:var(--space-5)}.marker-manager-modal{background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column;animation:modalSlideIn .3s ease-out}.manager-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--primary-600) 0,var(--secondary-600) 100%);color:#fff;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.manager-header h2{margin:0;font-size:var(--text-xl);font-weight:600}.close-button{background:none;border:none;color:#fff;font-size:var(--text-xl);cursor:pointer;padding:var(--space-1);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast)}.close-button:hover{background:hsla(0,0%,100%,.2)}.manager-content{padding:var(--space-6);overflow-y:auto;flex:1 1}.manager-controls{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}.search-section{display:flex;gap:var(--space-3);align-items:center}.search-input{flex:1 1;padding:var(--space-3);border:2px solid var(--gray-200);border-radius:var(--radius-lg);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(59,130,246,.1)}.sort-controls{display:flex;gap:var(--space-1)}.sort-select{background:#fff}.sort-order-button,.sort-select{padding:var(--space-2) var(--space-3);border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:var(--text-sm)}.sort-order-button{background:var(--gray-100);cursor:pointer;transition:all var(--transition-fast)}.sort-order-button:hover{background:var(--gray-200)}.action-buttons{display:flex;gap:var(--space-3);flex-wrap:wrap}.clear-button,.export-button,.import-button{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast);border:none}.import-button{background:linear-gradient(135deg,var(--success-500) 0,var(--success-600) 100%);color:#fff}.export-button{background:linear-gradient(135deg,var(--info-500) 0,var(--info-600) 100%);color:#fff}.clear-button{background:linear-gradient(135deg,var(--error-500) 0,var(--error-600) 100%);color:#fff}.clear-button:disabled{opacity:.5;cursor:not-allowed}.clear-button:hover:not(:disabled),.export-button:hover:not(:disabled),.import-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-lg)}.markers-list{min-height:300px}.empty-state{display:flex;align-items:center;justify-content:center;height:200px;color:var(--gray-500);font-style:italic}.markers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.marker-card{background:var(--gray-50);border:2px solid var(--gray-200);border-radius:var(--radius-xl);padding:var(--space-4);transition:all var(--transition-fast)}.marker-card:hover{border-color:var(--gray-300);box-shadow:var(--shadow-lg)}.marker-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.marker-title{display:flex;align-items:center;gap:var(--space-2);flex:1 1}.marker-color-indicator{width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:var(--shadow-sm)}.marker-title h3{margin:0;font-size:var(--text-base);font-weight:600;color:var(--gray-900)}.marker-actions{display:flex;gap:var(--space-1)}.delete-button,.edit-button,.locate-button{background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition-fast);font-size:var(--text-sm)}.locate-button:hover{background:var(--info-50)}.edit-button:hover{background:var(--primary-50)}.delete-button:hover{background:var(--error-50)}.marker-card-content{font-size:var(--text-sm)}.marker-notes{color:var(--gray-700);line-height:var(--leading-relaxed);margin-bottom:var(--space-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.marker-images-preview{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.images-count{font-size:var(--text-xs);color:var(--gray-500)}.images-thumbnail{position:relative}.thumbnail-image{width:40px;height:40px;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--gray-200)}.more-images{position:absolute;top:-2px;right:-2px;background:var(--primary-500);color:#fff;font-size:var(--text-xs);padding:1px var(--space-1);border-radius:var(--radius-lg);font-weight:700}.marker-meta{border-top:1px solid var(--gray-200);padding-top:var(--space-2);color:var(--gray-500);font-size:var(--text-xs)}.coordinates{margin-bottom:var(--space-1)}.manager-summary{text-align:center;padding-top:var(--space-4);border-top:1px solid var(--gray-200);color:var(--gray-500);font-size:var(--text-sm)}.add-marker-instruction{position:absolute;top:20px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,rgba(59,130,246,.95),rgba(16,185,129,.95));color:#fff;padding:var(--space-4) var(--space-6);border-radius:var(--radius-xl);z-index:1000;box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid hsla(0,0%,100%,.3);animation:fadeIn .3s ease-out}.add-marker-instruction,.instruction-content{display:flex;align-items:center;gap:var(--space-3)}.instruction-content{font-size:var(--text-base);font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.cancel-instruction{background:var(--error-500);color:#fff;border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);transition:all var(--transition-fast);box-shadow:0 2px 4px rgba(0,0,0,.2)}.cancel-instruction:hover{background:var(--error-600);transform:scale(1.1);box-shadow:0 4px 8px rgba(0,0,0,.3)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:var(--z-modals);padding:var(--space-4);animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:modalSlideIn .3s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--gray-200);background:linear-gradient(135deg,var(--primary-600) 0,var(--secondary-600) 100%);color:#fff;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.modal-header h2{margin:0;font-size:var(--text-xl);font-weight:600}.modal-header .close-button{background:none;border:none;color:#fff;font-size:var(--text-xl);cursor:pointer;padding:var(--space-2);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast)}.modal-header .close-button:hover{background:hsla(0,0%,100%,.2)}.marker-form{padding:var(--space-6)}.marker-form .form-group{margin-bottom:var(--space-5)}.marker-form .form-group label{display:block;margin-bottom:var(--space-2);font-weight:600;color:var(--gray-700);font-size:var(--text-sm)}.marker-form .form-group input,.marker-form .form-group textarea{width:100%;padding:var(--space-3);border:2px solid var(--gray-200);border-radius:var(--radius-lg);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.marker-form .form-group input:focus,.marker-form .form-group textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px rgba(46,139,87,.1)}.location-display{background:var(--gray-50);padding:var(--space-3);border-radius:var(--radius-md);font-family:monospace;font-size:var(--text-sm);color:var(--gray-600);border:1px solid var(--gray-200)}.color-picker{display:flex;gap:var(--space-2);flex-wrap:wrap}.color-option{width:32px;height:32px;border:3px solid transparent;border-radius:50%;cursor:pointer;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:var(--gray-800);transform:scale(1.2)}.character-count{text-align:right;font-size:var(--text-xs);color:var(--gray-500);margin-top:var(--space-1)}.upload-button{background:var(--primary-500);color:#fff;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:background-color var(--transition-fast)}.upload-button:hover:not(:disabled){background:var(--primary-600)}.upload-button:disabled{opacity:.5;cursor:not-allowed}.image-preview{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-3)}.image-preview-item{position:relative;width:80px;height:80px}.image-preview-item img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--gray-200)}.remove-image{position:absolute;top:-8px;right:-8px;background:var(--error-500);color:#fff;border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:var(--text-xs);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast)}.remove-image:hover{background:var(--error-600)}.error-messages{margin-bottom:var(--space-4)}.error-message{background:var(--error-50);color:var(--error-700);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);font-size:var(--text-sm);border:1px solid var(--error-200)}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--gray-200)}.cancel-button{background:var(--gray-100);color:var(--gray-700);border:2px solid var(--gray-200);padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:all var(--transition-fast)}.cancel-button:hover{background:var(--gray-200);border-color:var(--gray-300)}.save-button{background:linear-gradient(135deg,var(--primary-500) 0,var(--primary-600) 100%);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:600;transition:all var(--transition-fast);min-width:120px}.save-button:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-600) 0,var(--primary-700) 100%);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.save-button:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.modal-overlay{padding:var(--space-2)}.modal-content{max-width:95%;max-height:95vh}.marker-form,.modal-header{padding:var(--space-4)}.form-actions{flex-direction:column}.cancel-button,.save-button{width:100%;text-align:center}}.current-location-marker{position:relative;width:20px;height:20px;pointer-events:none}.current-location-pulse{width:40px;height:40px;background:rgba(59,130,246,.3);animation:pulse 2s infinite}.current-location-dot,.current-location-pulse{position:absolute;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.current-location-dot{width:12px;height:12px;background:var(--info-500);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3);z-index:10}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}50%{transform:translate(-50%,-50%) scale(1.2);opacity:.6}to{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.header-nav{display:flex;align-items:center}.header-nav-list{display:flex;list-style:none;margin:0;padding:0;gap:var(--space-2)}.header-nav-list li{margin:0}.header-nav .nav-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:none;border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:600;color:var(--gray-700);cursor:pointer;transition:all var(--transition-normal);text-decoration:none;position:relative}.header-nav .nav-link:hover{background:var(--primary-50);color:var(--primary-700);transform:translateY(-1px)}.header-nav .nav-link.active{background:var(--primary-500);color:#fff;box-shadow:0 2px 8px rgba(46,139,87,.3)}.header-nav .nav-link span{font-size:var(--text-lg)}@media (max-width:768px){.header-nav .nav-toggle{display:block;background:none;border:none;font-size:var(--text-xl);color:var(--gray-700);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md)}.header-nav .nav-toggle:hover{background:var(--gray-100)}.header-nav-list{position:fixed;top:0;right:-100%;height:100vh;width:280px;background:#fff;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:var(--space-20) var(--space-6) var(--space-6);box-shadow:-5px 0 20px rgba(0,0,0,.1);transition:right var(--transition-normal);z-index:1000;gap:var(--space-3)}.header-nav-list.active{right:0}.header-nav .nav-link{width:100%;justify-content:flex-start;padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-base)}}