@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0003;padding:40px;width:100%;max-width:400px;animation:slideUp .5s ease-out}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{color:#333;font-size:28px;font-weight:700;margin:0 0 8px}.auth-header p{color:#666;font-size:16px;margin:0}.auth-form,.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;color:#333;font-weight:500;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:16px;transition:border-color .3s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-group input::placeholder{color:#999}.auth-button{width:100%;padding:12px 24px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:12px}.auth-button.primary{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.auth-button.primary:hover:not(:disabled){background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-1px);box-shadow:0 4px 12px #2196f34d}.auth-button.secondary{background:#f5f5f5;color:#333;border:2px solid #e1e5e9}.auth-button.secondary:hover:not(:disabled){background:#e8e8e8;border-color:#d1d5db}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-divider{text-align:center;margin:20px 0;position:relative}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e1e5e9}.auth-divider span{background:#fff;padding:0 16px;color:#666;font-size:14px;position:relative}.auth-footer{text-align:center;margin-top:20px}.auth-footer p{color:#666;font-size:14px;margin:0}.link-button{background:none;border:none;color:#2196f3;font-size:14px;font-weight:600;cursor:pointer;text-decoration:underline;padding:0}.link-button:hover{color:#1976d2}@media (max-width: 480px){.auth-container{padding:10px}.auth-card{padding:30px 20px}.auth-header h1{font-size:24px}.form-group input{font-size:16px}}.auth-button:disabled{position:relative}.auth-button:disabled:after{content:"";position:absolute;width:16px;height:16px;margin:auto;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin 1s linear infinite;top:0;bottom:0;left:0;right:0}.feedback-form-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.feedback-form-container{background:#fff;border-radius:12px;box-shadow:0 10px 30px #0000004d;width:100%;max-width:600px;max-height:80vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.feedback-form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e1e5e9;background:#f8f9fa;border-radius:12px 12px 0 0}.feedback-form-header h3{margin:0;color:#333;font-size:20px;font-weight:600}.close-button{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.close-button:hover{background:#e1e5e9;color:#333}.feedback-form-content{padding:24px}.existing-feedback{margin-bottom:30px}.existing-feedback h4{margin:0 0 16px;color:#333;font-size:16px;font-weight:600}.feedback-list{max-height:200px;overflow-y:auto;border:1px solid #e1e5e9;border-radius:8px;padding:12px}.feedback-item{padding:12px 0;border-bottom:1px solid #f0f0f0}.feedback-item:last-child{border-bottom:none}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.feedback-user{display:flex;align-items:center;gap:8px}.feedback-user strong{color:#333;font-size:14px}.feedback-date{color:#666;font-size:12px}.feedback-comment{margin:0;color:#555;font-size:14px;line-height:1.4}.no-feedback{color:#666;font-style:italic;text-align:center;padding:20px;margin:0}.feedback-form{border-top:1px solid #e1e5e9;padding-top:20px}.feedback-form h4{margin:0 0 20px;color:#333;font-size:16px;font-weight:600}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.star-rating{display:flex;gap:4px}.star-rating.interactive .star{cursor:pointer;transition:all .2s ease}.star-rating.interactive .star:hover{transform:scale(1.1)}.star{font-size:20px;color:#ddd;transition:color .2s ease}.star.filled,.star-rating.interactive .star:hover,.star-rating.interactive .star.filled{color:#ffc107}textarea{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px;box-sizing:border-box;transition:border-color .3s ease}textarea:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}textarea::placeholder{color:#999}.error-message{background:#ffebee;color:#c62828;padding:12px 16px;border-radius:8px;font-size:14px;margin-bottom:16px;border-left:4px solid #f44336}.form-actions{display:flex;gap:12px;justify-content:flex-end}.cancel-button,.submit-button{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.cancel-button{background:#f5f5f5;color:#666;border:1px solid #e1e5e9}.cancel-button:hover{background:#e8e8e8}.submit-button{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-1px);box-shadow:0 4px 12px #2196f34d}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.signin-prompt{text-align:center;padding:20px;border:2px dashed #e1e5e9;border-radius:8px;background:#f8f9fa}.signin-prompt p{margin:0 0 16px;color:#666;font-size:14px}.signin-button{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.signin-button:hover{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-1px);box-shadow:0 4px 12px #2196f34d}.loading{text-align:center;color:#666;font-style:italic;padding:20px}@media (max-width: 768px){.feedback-form-overlay{padding:10px}.feedback-form-container{max-height:90vh}.feedback-form-header{padding:16px 20px}.feedback-form-content{padding:20px}.form-actions{flex-direction:column}.cancel-button,.submit-button{width:100%}}:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.layer-switcher{position:absolute;top:3.5em;right:.5em;text-align:left}.layer-switcher .panel{margin:0;border:4px solid #eee;border-radius:4px;background-color:#fff;display:none;max-height:inherit;height:100%;box-sizing:border-box;overflow-y:auto}.layer-switcher button{float:right;z-index:1;width:38px;height:38px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACE1BMVEX///8A//8AgICA//8AVVVAQID///8rVVVJtttgv98nTmJ2xNgkW1ttyNsmWWZmzNZYxM4gWGgeU2JmzNNr0N1Rwc0eU2VXxdEhV2JqytQeVmMhVmNoydUfVGUgVGQfVGQfVmVqy9hqy9dWw9AfVWRpydVry9YhVmMgVGNUw9BrytchVWRexdGw294gVWQgVmUhVWPd4N6HoaZsy9cfVmQgVGRrytZsy9cgVWQgVWMgVWRsy9YfVWNsy9YgVWVty9YgVWVry9UgVWRsy9Zsy9UfVWRsy9YgVWVty9YgVWRty9Vsy9aM09sgVWRTws/AzM0gVWRtzNYgVWRuy9Zsy9cgVWRGcHxty9bb5ORbxdEgVWRty9bn6OZTws9mydRfxtLX3Nva5eRix9NFcXxOd4JPeINQeIMiVmVUws9Vws9Vw9BXw9BYxNBaxNBbxNBcxdJexdElWWgmWmhjyNRlx9IqXGtoipNpytVqytVryNNrytZsjZUuX210k5t1y9R2zNR3y9V4lp57zth9zdaAnKOGoaeK0NiNpquV09mesrag1tuitbmj1tuj19uktrqr2d2svcCu2d2xwMO63N+7x8nA3uDC3uDFz9DK4eHL4eLN4eIyYnDX5OM5Z3Tb397e4uDf4uHf5uXi5ePi5+Xj5+Xk5+Xm5+Xm6OY6aHXQ19fT4+NfhI1Ww89gx9Nhx9Nsy9ZWw9Dpj2abAAAAWnRSTlMAAQICAwQEBgcIDQ0ODhQZGiAiIyYpKywvNTs+QklPUlNUWWJjaGt0dnd+hIWFh4mNjZCSm6CpsbW2t7nDzNDT1dje5efr7PHy9PT29/j4+Pn5+vr8/f39/f6DPtKwAAABTklEQVR4Xr3QVWPbMBSAUTVFZmZmhhSXMjNvkhwqMzMzMzPDeD+xASvObKePPa+ffHVl8PlsnE0+qPpBuQjVJjno6pZpSKXYl7/bZyFaQxhf98hHDKEppwdWIW1frFnrxSOWHFfWesSEWC6R/P4zOFrix3TzDFLlXRTR8c0fEEJ1/itpo7SVO9Jdr1DVxZ0USyjZsEY5vZfiiAC0UoTGOrm9PZLuRl8X+Dq1HQtoFbJZbv61i+Poblh/97TC7n0neCcK0ETNUrz1/xPHf+DNAW9Ac6t8O8WH3Vp98f5lCaYKAOFZMLyHL4Y0fe319idMNgMMp+zWVSybUed/+/h7I4wRAG1W6XDy4XmjR9HnzvDRZXUAYDFOhC1S/Hh+fIXxen+eO+AKqbs+wAo30zDTDvDxKoJN88sjUzDFAvBzEUGFsnADoIvAJzoh2BZ8sner+Ke/vwECuQAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:2px;background-color:#fff;color:#000;border:none}.layer-switcher button:focus,.layer-switcher button:hover{background-color:#fff}.layer-switcher.shown{overflow-y:hidden;display:flex;flex-direction:column;max-height:calc(100% - 5.5em)}.layer-switcher.shown.ol-control,.layer-switcher.shown.ol-control:hover{background-color:transparent}.layer-switcher.shown .panel{display:block}.layer-switcher.shown button{display:none}.layer-switcher.shown.layer-switcher-activation-mode-click>button{display:block;background-image:unset;right:2px;position:absolute;background-color:#eee;margin:1px}.layer-switcher.shown button:focus,.layer-switcher.shown button:hover{background-color:#fafafa}.layer-switcher ul{list-style:none;margin:1.6em .4em;padding-left:0}.layer-switcher ul ul{padding-left:1.2em;margin:.1em 0 0}.layer-switcher li.group+li.group{margin-top:.4em}.layer-switcher li.group>label{font-weight:700}.layer-switcher.layer-switcher-group-select-style-none li.group>label{padding-left:1.2em}.layer-switcher li{position:relative;margin-top:.3em}.layer-switcher li input{position:absolute;left:1.2em;height:1em;width:1em;font-size:1em}.layer-switcher li label{padding-left:2.7em;padding-right:1.2em;display:inline-block;margin-top:1px}.layer-switcher label.disabled{opacity:.4}.layer-switcher input{margin:0}.layer-switcher.touch ::-webkit-scrollbar{width:4px}.layer-switcher.touch ::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px}.layer-switcher.touch ::-webkit-scrollbar-thumb{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.5)}li.layer-switcher-base-group>label{padding-left:1.2em}.layer-switcher .group button{position:absolute;left:0;display:inline-block;vertical-align:top;float:none;font-size:1em;width:1em;height:1em;margin:0;background-position:center 2px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAW0lEQVR4nGNgGAWMyBwXFxcGBgaGeii3EU0tXHzPnj1wQRYsihqQ+I0ExDEMQAYNONgoAN0AmMkNaDSyQSheY8JiaCMOGzE04zIAmyFYNTMw4A+DRhzsUUBtAADw4BCeIZkGdwAAAABJRU5ErkJggg==);-webkit-transition:-webkit-transform .2s ease-in-out;-ms-transition:-ms-transform .2s ease-in-out;transition:transform .2s ease-in-out}.layer-switcher .group.layer-switcher-close button{transform:rotate(-90deg);-webkit-transform:rotate(-90deg)}.layer-switcher .group.layer-switcher-fold.layer-switcher-close>ul{overflow:hidden;height:0}.layer-switcher.shown.layer-switcher-activation-mode-click{padding-left:34px}.layer-switcher.shown.layer-switcher-activation-mode-click>button{left:0;border-right:0}.review-panel{width:380px;background:#fffffff2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:20px;box-shadow:-8px 0 32px #0000001a;border:1px solid rgba(255,255,255,.3);display:flex;flex-direction:column;height:100%;z-index:1000;animation:slideInRight .4s cubic-bezier(.16,1,.3,1);overflow:hidden;font-family:Outfit,sans-serif}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.review-panel-header{padding:20px;border-bottom:1px solid rgba(0,0,0,.05);display:flex;justify-content:space-between;align-items:center;background:#fff}.title-area{display:flex;align-items:center;gap:12px}.header-icon{color:#6366f1}.review-panel-header h3{margin:0;font-size:18px;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.close-panel-btn{background:transparent;color:#64748b;padding:6px;border-radius:50%}.close-panel-btn:hover{background:#f1f5f9;color:#ef4444}.review-panel-content{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:30px}.review-panel-content h4{margin:0 0 15px;font-size:14px;font-weight:600;text-transform:uppercase;color:#64748b;letter-spacing:.05em}.feedback-list{display:flex;flex-direction:column;gap:15px}.feedback-card{background:#fff;padding:15px;border-radius:14px;border:1px solid #f1f5f9;box-shadow:0 2px 4px #00000005}.feedback-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.user-info{display:flex;flex-direction:column;gap:2px}.user-name{font-size:14px;font-weight:600;color:#1e293b}.feedback-date{font-size:11px;color:#94a3b8}.feedback-text{margin:0;font-size:14px;line-height:1.5;color:#475569}.star-rating{display:flex;gap:2px}.star{color:#e2e8f0;font-size:14px}.star.filled{color:#fbbf24}.interactive .star{cursor:pointer;font-size:20px;transition:transform .2s}.interactive .star:hover{transform:scale(1.2)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0;color:#64748b;gap:12px;font-size:14px}.spinner{width:24px;height:24px;border:3px solid #f1f5f9;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}.no-reviews{text-align:center;padding:30px 10px;background:#f8fafc;border-radius:12px;color:#64748b;font-size:14px;border:1px dashed #cbd5e1}.add-review-section{background:#f8fafc;padding:20px;border-radius:16px;border:1px solid #f1f5f9}.review-form{display:flex;flex-direction:column;gap:15px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:13px;font-weight:500;color:#475569}.review-form textarea{padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;resize:none;background:#fff}.review-form textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.submit-review-btn{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;padding:12px;font-weight:600;border-radius:10px;transition:all .2s}.submit-review-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.submit-review-btn:disabled{opacity:.7;cursor:not-allowed}.name-input{padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;background:#fff}.name-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.guest-label{font-size:11px;color:#94a3b8;font-weight:400;font-style:italic}.error-box{padding:10px;background:#fef2f2;border:1px solid #fee2e2;color:#ef4444;font-size:12px;border-radius:8px}.app{display:flex;flex-direction:column;height:100vh;width:100%}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app-loading p{font-size:16px;font-weight:500;margin:0}.app{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}@media (max-width: 768px){.app-loading{padding:20px}.loading-spinner{width:32px;height:32px;border-width:3px}.app-loading p{font-size:14px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);height:100vh;margin:0;padding:0;color:#333;overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}select,input{font-family:inherit;font-size:14px;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px}.cog-layers{max-height:200px;overflow-y:auto;border:1px solid #e1e5e9;border-radius:8px;padding:8px;background:#fff}.cog-layer-item{display:flex;align-items:center;padding:4px 0;cursor:pointer;font-size:13px}.cog-layer-item input[type=checkbox]{margin-right:8px;width:auto;padding:0}select:focus,input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}select:hover,input:hover{border-color:#c1c1c1}button{font-family:inherit;font-weight:500;padding:12px 24px;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;outline:none}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.btn-secondary{background:#f8f9fa;color:#6c757d;border:2px solid #e1e5e9}.btn-secondary:hover{background:#e9ecef;border-color:#c1c1c1}.card{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;border:1px solid #e1e5e9}.loading{display:inline-block;width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes pulse-opacity{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.2);padding:16px 0;position:sticky;top:0;z-index:100}.header-content{display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:12px}.logo-icon{color:#667eea;width:32px;height:32px}.logo h1{font-size:24px;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-actions{display:flex;align-items:center;gap:32px}.btn-signout,.btn-signin{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e2e8f0;padding:8px 16px;border-radius:12px;font-size:13px;font-weight:600;color:#475569;cursor:pointer;transition:all .2s}.btn-signout:hover,.btn-signin:hover{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.layer-opacity-control{display:flex;align-items:center;gap:12px;background:#f1f5f9cc;padding:8px 16px;border-radius:12px;border:1px solid #e2e8f0}.layer-opacity-control span{font-size:13px;font-weight:600;color:#475569;white-space:nowrap}.layer-opacity-control svg{color:#6366f1}.layer-opacity-control input[type=range]{width:120px;height:6px;background:#cbd5e1;border-radius:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none}.layer-opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#6366f1;border-radius:50%;cursor:pointer;border:2px solid white;box-shadow:0 2px 4px #0000001a}.user-info{display:flex;align-items:center;gap:1rem}.user-details{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#2196f31a;border-radius:6px;color:#333}.user-name{font-weight:500;display:flex;align-items:center;gap:.5rem}.guest-badge{background:#ffc10733;color:#f57c00;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.btn-signout{background:#f44336;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;transition:all .2s ease}.btn-signout:hover{background:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 12px #f443364d}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.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;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.main-content{flex:1;padding:16px 0;height:calc(100vh - 140px);overflow:hidden}.container{width:100%;margin:0;padding:0;height:100%}.grid{display:grid;grid-template-columns:350px 1fr;gap:8px;height:100%;transition:all .3s ease;position:relative}.grid.collapsed{grid-template-columns:0 1fr}.grid.with-reviews{grid-template-columns:350px 1fr 380px}.grid.collapsed.with-reviews{grid-template-columns:0 1fr 380px}.review-side-panel{height:100%;overflow:hidden}.left-panel{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.2);height:100%;overflow-y:auto;position:relative}.toggle-panel-btn{position:absolute;left:350px;top:50%;transform:translateY(-50%);z-index:1001;background:#fff;border:1px solid #e1e5e9;border-left:none;border-radius:0 8px 8px 0;width:24px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:4px 0 8px #0000001a;transition:left .3s ease}.grid.collapsed .toggle-panel-btn{left:0}.left-panel.collapsed{visibility:hidden;padding:0;border:none;margin:0}.left-panel-content{display:flex;flex-direction:column;gap:24px}.panel-header h2{font-size:20px;font-weight:600;color:#2d3748;margin-bottom:8px}.panel-header p{color:#718096;font-size:14px}.search-section{margin-bottom:8px}.search-input{position:relative}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#a0aec0;z-index:1}.search-input input{padding-left:48px;width:100%}.dropdowns-section{display:flex;flex-direction:column;gap:20px}.dropdown-group{display:flex;flex-direction:column;gap:8px}.dropdown-label{display:flex;align-items:center;gap:8px;font-weight:500;color:#4a5568;font-size:14px}.dropdown-label svg{color:#667eea;width:16px;height:16px}.loading-indicator{display:flex;align-items:center;gap:12px;padding:16px;background:#f7fafc;border-radius:8px;color:#4a5568;font-size:14px}.selection-summary{background:#f7fafc;border-radius:12px;padding:20px;border:1px solid #e2e8f0}.selection-summary h3{font-size:16px;font-weight:600;color:#2d3748;margin-bottom:12px}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e2e8f0;font-size:14px}.summary-item:last-child{border-bottom:none}.summary-item strong{color:#4a5568;font-weight:500}.right-panel{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;height:100%}.map-container{display:flex;flex-direction:column;height:100%}.map-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.map-header h2{font-size:20px;font-weight:600;color:#2d3748}.map-controls{display:flex;gap:16px}.control-group{display:flex;align-items:center;gap:8px}.control-group label{font-size:14px;font-weight:500;color:#4a5568}.control-group select{padding:8px 12px;font-size:14px}.map{border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #0000001a;position:relative;flex:1;min-height:0}.map-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;background:#ffffffe6;padding:20px;border-radius:8px;color:#4a5568;font-size:14px}.footer{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.2);padding:20px 0;flex-shrink:0}.footer-content{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:#718096}.footer-links{display:flex;gap:24px}.footer-link{color:#718096;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:#667eea}@media (max-width: 1024px){.grid{grid-template-columns:350px 1fr;gap:8px}}@media (max-width: 768px){.main-content{padding:0;height:calc(100vh - 120px)}.container{padding:0}.grid{display:block;position:relative;height:100%;grid-template-columns:none;gap:0}.right-panel{height:100%;width:100%;order:1;border:none;border-radius:0;padding:0;position:absolute;top:0;left:0;z-index:10}.map-container,.map{border-radius:0}.left-panel{position:absolute;top:0;left:0;width:85%;max-width:320px;height:100%;z-index:1000;background:#fffffffa;border-radius:0 16px 16px 0;box-shadow:4px 0 16px #0003;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1);order:2}.left-panel.collapsed{transform:translate(-100%);visibility:visible!important;width:85%!important;padding:20px!important;margin:0!important;border:1px solid rgba(255,255,255,.2)!important}.toggle-panel-btn{top:20px;left:85%;width:40px;height:40px;background:#fff;box-shadow:2px 2px 8px #0003;border-radius:0 8px 8px 0;z-index:1001;transition:left .3s cubic-bezier(.4,0,.2,1)}.grid.collapsed .toggle-panel-btn{left:0;border-radius:0 8px 8px 0;background:#667eea;color:#fff}.header-content{flex-direction:column;gap:8px;padding:0 16px}.logo h1{font-size:20px}.footer{display:none}}.layer-controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.toggle-layers-btn{background:#2196f3;color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;transition:background-color .2s}.toggle-layers-btn:hover{background:#1976d2}.layer-controls-collapsible{max-height:300px;overflow-y:auto;border:1px solid #e1e5e9;border-radius:8px;padding:12px;background:#fffc}.layer-controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.layer-category h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#333;border-bottom:1px solid #e1e5e9;padding-bottom:4px}.layer-control-item{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;transition:background-color .2s;border-radius:4px;padding:6px 0 6px 8px}.layer-control-item:hover{background-color:#2196f31a}.layer-control-item input[type=checkbox]{margin:0;width:14px;height:14px}.layer-color{width:12px;height:12px;border-radius:2px;flex-shrink:0;display:inline-block}.opacity-control{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding-left:22px}.opacity-control input[type=range]{width:100%;height:4px;border-radius:2px;background:#ddd;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 4px #0003}.opacity-control input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 4px #0003}.map-legend-compact{position:absolute;top:20px;right:20px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;box-shadow:0 4px 16px #0000001a;border:1px solid rgba(255,255,255,.2);z-index:1000;min-width:120px}.legend-toggle{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;cursor:pointer;font-size:13px;font-weight:500;color:#333;border-bottom:1px solid rgba(0,0,0,.1)}.legend-toggle:hover{background-color:#0000000d}.legend-content{padding:8px 12px;max-height:200px;overflow-y:auto}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#555;margin-bottom:6px}.legend-color{border-radius:1px;flex-shrink:0;display:inline-block}.control-group{margin-bottom:12px}.control-group label{display:block;font-weight:500;margin-bottom:8px;color:#333;font-size:14px}.layer-controls-popup{position:absolute;top:20px;left:20px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;box-shadow:0 8px 32px #00000026;border:1px solid rgba(255,255,255,.2);z-index:1000;min-width:300px;max-width:400px;max-height:500px;overflow-y:auto}.layer-controls-header-popup{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(0,0,0,.1);font-weight:600;color:#333;font-size:14px}.layer-controls-content{padding:16px}.layer-controls-content .layer-controls-grid{display:grid;grid-template-columns:1fr;gap:20px}.layer-controls-content .layer-category h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#333;border-bottom:1px solid #e1e5e9;padding-bottom:6px}.layer-controls-content .layer-control-item{display:flex;flex-direction:column;gap:8px;font-size:13px;padding:8px 0;border-bottom:1px solid #f0f0f0}.layer-controls-content .layer-control-item:last-child{border-bottom:none}.layer-controls-content .layer-control-item label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}.layer-controls-content .opacity-control{display:flex;flex-direction:column;gap:4px;margin-top:4px;padding-left:22px}.layer-controls-content .opacity-control input[type=range]{width:100%;height:4px;border-radius:2px;background:#ddd;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.layer-controls-content .opacity-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 4px #0003}.layer-controls-content .opacity-control input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#4caf50;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 4px #0003}.feedback-list{max-height:400px;overflow-y:auto;padding:10px 0}.feedback-item{border:1px solid #e0e0e0;border-radius:8px;padding:15px;margin-bottom:15px;background:#f9f9f9}.feedback-rating{font-size:18px;color:gold;margin-bottom:8px;display:flex;align-items:center;gap:8px}.rating-number{font-size:14px;color:#666;font-weight:700}.feedback-comment{font-size:14px;color:#333;margin-bottom:10px;line-height:1.4}.feedback-meta{display:flex;justify-content:space-between;font-size:12px;color:#666}.feedback-user{font-weight:500}.feedback-date{font-style:italic}.search-type-selector{margin-bottom:16px}.search-type-label{display:flex;align-items:center;gap:8px;font-weight:500;margin-bottom:8px;color:#333}.search-type-dropdown{width:100%;padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;background:#fff;font-size:14px;cursor:pointer}.search-type-dropdown:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.coordinates-input{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.coordinate-group{display:flex;flex-direction:column;gap:6px}.coordinate-group label{font-weight:500;color:#333;font-size:14px}.coordinate-group input{padding:12px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:14px}.coordinate-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.search-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:16px}.search-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.search-button:disabled{opacity:.6;cursor:not-allowed}.search-results{background:#fff;border:1px solid #e1e5e9;border-radius:8px;margin-top:8px;box-shadow:0 2px 8px #00000014}.search-result-item{padding:12px 16px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:all .2s ease}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background-color:#f8f9fa}.search-error{background:#ffebee;color:#c62828;padding:12px;border-radius:8px;margin-bottom:16px;font-size:14px;border-left:4px solid #c62828}.search-results{background:#fff;border:1px solid #e1e5e9;border-radius:8px;padding:16px;margin-top:16px;max-height:300px;overflow-y:auto}.search-results h4{margin-bottom:12px;color:#333;font-size:16px}.search-result-item{padding:12px;border:1px solid #e1e5e9;border-radius:6px;margin-bottom:8px;cursor:pointer;transition:all .2s ease;background:#fafafa}.search-result-item:hover{background:#f0f0f0;border-color:#667eea;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.search-result-item:last-child{margin-bottom:0}.search-result-item strong{color:#333;font-weight:600}.search-result-item div{margin-top:4px;font-size:13px;color:#666}.get-direction-section{margin:16px 0;padding:12px;background:#f8f9fa;border-radius:8px;border:1px solid #e1e5e9}.get-direction-button{width:100%;background:linear-gradient(135deg,#4caf50,#45a049);color:#fff;border:none;padding:12px 16px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px}.get-direction-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d;background:linear-gradient(135deg,#45a049,#3d8b40)}.get-direction-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}@media (max-width: 768px){.layer-controls-grid{grid-template-columns:1fr}.map-legend-compact{top:10px;right:10px;min-width:100px}.layer-controls-popup{top:10px;left:10px;right:10px;min-width:auto;max-width:none}.coordinates-input{flex-direction:column}.search-results{max-height:200px}}.auth-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.auth-modal{background:#fff;border-radius:20px;width:100%;max-width:450px;position:relative;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;animation:modalEnter .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalEnter{0%{transform:scale(.9) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.auth-close{position:absolute;top:20px;right:20px;background:#f1f5f9;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;font-size:24px;z-index:10;transition:all .2s}.auth-close:hover{background:#e2e8f0;color:#0f172a}
