body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.city-selector{margin:0 auto;max-width:1200px;padding:1.5rem}.city-selector .city-selection{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}.city-selector .city-selection .city-card{-webkit-tap-highlight-color:rgba(0,0,0,0);background:#fff;background-position:50%;background-repeat:no-repeat;background-size:cover;border:3px solid #0000;border-radius:12px;box-shadow:0 2px 4px #0000001a;cursor:pointer;min-height:300px;overflow:hidden;padding:4rem 2rem;position:relative;text-align:center;touch-action:manipulation;transition:all .4s ease}.city-selector .city-selection .city-card:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border-radius:12px;bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.city-selector .city-selection .city-card:hover{box-shadow:0 12px 24px #0003;transform:translateY(-6px) scale(1.02)}.city-selector .city-selection .city-card:active{transform:translateY(-2px) scale(1.01);transition:all .1s ease}.city-selector .city-selection .city-card.selected{background:#e6f2ff;border-color:#007bff;transform:translateY(-4px)}.city-selector .city-selection .city-card.blurred{cursor:not-allowed;filter:grayscale(50%);opacity:.4}.city-selector .city-selection .city-card.blurred:hover{transform:none}.city-selector .city-selection .city-card.tallinn.selected{background:#b3d9ff;border-color:#06c}.city-selector .city-selection .city-card.istanbul.selected{background:#fff;border-color:#e74c3c}.city-selector .city-selection .city-card h2{color:#fff;font-size:2rem;font-weight:700;margin:0 0 1rem;position:relative;text-shadow:2px 2px 4px #000000b3;z-index:2}.city-selector .city-selection .city-card p{color:#fff;font-size:18px;font-weight:500;margin:0;position:relative;text-shadow:1px 1px 2px #000000b3;z-index:2}.city-selector .city-selection .city-card.tallinn{background-image:url(/static/media/tallinn.e55aa3d7e22fd36a1d4e.jpg)}.city-selector .city-selection .city-card.istanbul{background-image:url(/static/media/istanbul.0873cc765c483dec76e6.jpg)}.city-selector .parameters-section{animation:slideUp .4s ease;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;padding:2rem}.city-selector .parameters-section h3{color:#343a40;font-size:24px;font-weight:700;margin:0 0 1.5rem;text-align:center}.city-selector .parameters-section .parameter-group{margin-bottom:2rem}.city-selector .parameters-section .parameter-group h4{color:#343a40;font-size:18px;font-weight:600;margin:0 0 1rem}.city-selector .parameters-section .parameter-group .radio-group{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.city-selector .parameters-section .parameter-group .radio-group .radio-label{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;background:#f8f9fa;border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;padding:1rem;touch-action:manipulation;transition:all .3s ease}.city-selector .parameters-section .parameter-group .radio-group .radio-label:hover{background:#e6f2ff;border-color:#007bff;transform:translateY(-1px)}.city-selector .parameters-section .parameter-group .radio-group .radio-label:has(input:checked){background:#cce5ff;border-color:#007bff;box-shadow:0 4px 8px #007bff33;transform:translateY(-2px)}.city-selector .parameters-section .parameter-group .radio-group .radio-label input[type=radio]{accent-color:#007bff;margin-right:.5rem;transform:scale(1.2)}.city-selector .parameters-section .parameter-group .radio-group .radio-label span{color:#343a40;font-size:16px;font-weight:500;transition:all .2s ease}.city-selector .parameters-section .parameter-group .radio-group .radio-label:has(input:checked) span{color:#007bff;font-weight:700}.city-selector .parameters-section .apply-button{-webkit-tap-highlight-color:rgba(0,0,0,0);border:none;border-radius:12px;cursor:pointer;font-size:18px;font-weight:700;letter-spacing:1px;padding:1.5rem;text-transform:uppercase;touch-action:manipulation;transition:all .3s ease;width:100%}.city-selector .parameters-section .apply-button.enabled{background:linear-gradient(135deg,#28a745,#1e7e34);box-shadow:0 4px 12px #28a7454d;color:#fff}.city-selector .parameters-section .apply-button.enabled:hover{box-shadow:0 8px 20px #28a74566;transform:translateY(-3px)}.city-selector .parameters-section .apply-button.enabled:active{transform:translateY(-1px);transition:all .1s ease}.city-selector .parameters-section .apply-button.disabled{background:#6c757d;color:#fff;cursor:not-allowed;opacity:.6}@media(max-width:768px){.city-selector{padding:1rem}.city-selector .city-selection{gap:1.5rem;grid-template-columns:1fr}.city-selector .city-selection .city-card{min-height:250px;padding:3rem 2rem}.city-selector .city-selection .city-card h2{font-size:1.75rem}.city-selector .city-selection .city-card p{font-size:16px}.city-selector .parameters-section{padding:1.5rem}.city-selector .parameters-section .parameter-group .radio-group{gap:1rem;grid-template-columns:1fr}.city-selector .parameters-section .parameter-group .radio-group .radio-label{justify-content:center;padding:1.5rem;text-align:center}.city-selector .parameters-section .apply-button{font-size:24px;padding:2rem}}@media(max-width:1024px)and (min-width:769px){.city-selector .parameters-section .parameter-group .radio-group{grid-template-columns:repeat(2,1fr)}}.route-map{margin:1.5rem 0}.route-map .map-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.route-map .map-header h3{color:#343a40;font-size:24px;margin:0}.route-map .map-header .open-maps-btn{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:.5rem 1rem;transition:all .2s ease}.route-map .map-header .open-maps-btn:hover{background:#0062cc;transform:translateY(-1px)}.route-map .map-container{background:#fff;border-radius:12px;box-shadow:0 4px 8px #00000026;overflow:hidden;position:relative}.route-map .map-container .map{height:400px;width:100%}.route-map .map-container .map-sidebar{background:#fff;border-radius:8px;box-shadow:0 4px 8px #00000026;min-width:250px;padding:1rem;position:absolute;right:1rem;top:1rem;z-index:1000}.route-map .map-container .map-sidebar .selected-stop h4{color:#343a40;font-size:18px;margin:0 0 .5rem}.route-map .map-container .map-sidebar .selected-stop p{color:#6c757d;font-size:14px;margin:0 0 1rem}.route-map .map-container .map-sidebar .selected-stop .stop-actions{display:flex;gap:.5rem}.route-map .map-container .map-sidebar .selected-stop .stop-actions .street-view-btn{background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;flex:1 1;font-size:14px;padding:.25rem .5rem}.route-map .map-container .map-sidebar .selected-stop .stop-actions .street-view-btn:hover{background:#1e7e34}.route-map .map-container .map-sidebar .selected-stop .stop-actions .close-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;min-width:30px;padding:.25rem .5rem}.route-map .map-container .map-sidebar .selected-stop .stop-actions .close-btn:hover{background:#bd2130}:global(.custom-marker){background:#0000;border:none}:global(.custom-marker) .user-marker{filter:drop-shadow(2px 2px 4px rgba(0,0,0,.3));font-size:24px}:global(.custom-marker) .stop-marker{align-items:center;background:#007bff;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000004d;color:#fff;display:flex;font-size:14px;font-weight:700;height:30px;justify-content:center;width:30px}@media(max-width:768px){.route-map .map-header{flex-direction:column;gap:.5rem;text-align:center}.route-map .map-header .open-maps-btn{width:100%}.route-map .map-container .map{height:300px}.route-map .map-container .map-sidebar{margin:1rem;min-width:auto;position:relative;right:0;top:0}}.attraction-details-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:1.5rem;position:fixed;right:0;top:0;z-index:2000}.attraction-details-overlay .attraction-details{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 4px 8px #00000026;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.attraction-details-overlay .attraction-details .details-header{align-items:flex-start;border-bottom:1px solid #f8f9fa;display:flex;justify-content:space-between;padding:2rem}.attraction-details-overlay .attraction-details .details-header .header-content{flex:1 1}.attraction-details-overlay .attraction-details .details-header .header-content h2{color:#343a40;font-size:24px;font-weight:700;margin:0 0 .5rem}.attraction-details-overlay .attraction-details .details-header .header-content .address{color:#6c757d;font-style:italic;margin:0}.attraction-details-overlay .attraction-details .details-header .close-btn{background:none;border:none;color:#6c757d;cursor:pointer;font-size:24px;margin:-.5rem;padding:.5rem}.attraction-details-overlay .attraction-details .details-header .close-btn:hover{color:#343a40}.attraction-details-overlay .attraction-details .details-content{padding:2rem}.attraction-details-overlay .attraction-details .details-content h3{color:#343a40;font-size:18px;font-weight:600;margin:0 0 1rem}.attraction-details-overlay .attraction-details .details-content .description{margin-bottom:2rem}.attraction-details-overlay .attraction-details .details-content .description p{color:#343a40;line-height:1.6;margin:0 0 1.5rem}.attraction-details-overlay .attraction-details .details-content .description .visit-info{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.attraction-details-overlay .attraction-details .details-content .description .visit-info .info-item{display:flex;flex-direction:column;gap:.25rem}.attraction-details-overlay .attraction-details .details-content .description .visit-info .info-item .label{color:#6c757d;font-size:14px;font-weight:500}.attraction-details-overlay .attraction-details .details-content .description .visit-info .info-item .value{color:#007bff;font-weight:600}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn{border:none;border-radius:8px;cursor:pointer;font-weight:600;padding:1rem;text-align:center;transition:all .2s ease}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn.maps{background:#4285f4;color:#fff}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn.maps:hover{background:#1266f1}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn.street-view{background:#28a745;color:#fff}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn.street-view:hover{background:#1e7e34}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn.reviews{background:#00aa6c;color:#fff}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons .action-btn.reviews:hover{background:#00774c}@media(max-width:768px){.attraction-details-overlay{padding:1rem}.attraction-details-overlay .attraction-details .details-header{align-items:stretch;flex-direction:column;padding:1.5rem}.attraction-details-overlay .attraction-details .details-header .close-btn{align-self:flex-end;margin-bottom:1rem}.attraction-details-overlay .attraction-details .details-content{padding:1.5rem}.attraction-details-overlay .attraction-details .details-content .actions .action-buttons{grid-template-columns:1fr}}.route-display{margin:0 auto;max-width:900px;padding:1.5rem}.route-display .route-summary{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem;padding:2rem;text-align:center}.route-display .route-summary h2{color:#343a40;font-size:24px;margin:0 0 1.5rem}.route-display .route-summary .summary-stats{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.route-display .route-summary .summary-stats .stat{align-items:center;display:flex;flex-direction:column}.route-display .route-summary .summary-stats .stat .label{color:#6c757d;font-size:14px;font-weight:500;margin-bottom:.25rem;text-transform:uppercase}.route-display .route-summary .summary-stats .stat .value{color:#007bff;font-size:18px;font-weight:700}.route-display .route-summary .summary-actions .share-btn{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.5rem 1.5rem;transition:all .2s ease}.route-display .route-summary .summary-actions .share-btn:hover{background:#545b62;transform:translateY(-1px)}.route-display .route-steps h3{color:#343a40;font-size:24px;margin:0 0 1.5rem;text-align:center}.route-display .route-steps .route-step{grid-gap:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;cursor:pointer;display:grid;gap:1.5rem;grid-template-columns:auto 1fr;margin-bottom:1rem;padding:1.5rem;transition:all .3s ease}.route-display .route-steps .route-step:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.route-display .route-steps .route-step .step-number{align-items:center;align-self:flex-start;background:#007bff;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:18px;font-weight:700;height:40px;justify-content:center;width:40px}.route-display .route-steps .route-step .step-content .step-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.route-display .route-steps .route-step .step-content .step-header h4{color:#343a40;font-size:18px;font-weight:600;margin:0}.route-display .route-steps .route-step .step-content .step-header .step-meta{align-items:flex-end;display:flex;flex-direction:column;gap:.25rem}.route-display .route-steps .route-step .step-content .step-header .step-meta span{background:#f8f9fa;border-radius:4px;font-size:14px;padding:.25rem .5rem;white-space:nowrap}.route-display .route-steps .route-step .step-content .step-header .step-meta .walking-time{background:#cce5ff;color:#007bff}.route-display .route-steps .route-step .step-content .step-header .step-meta .cost{background:#afecbd;color:#28a745}.route-display .route-steps .route-step .step-content .step-header .step-meta .duration{background:#ffe7a0;color:#a07800}.route-display .route-steps .route-step .step-content .address{color:#6c757d;font-size:14px;font-style:italic;margin:.5rem 0}.route-display .route-steps .route-step .step-content .description{color:#343a40;line-height:1.5;margin:0 0 1rem}.route-display .route-steps .route-step .step-content .details-btn{background:#0000;border:1px solid #007bff;border-radius:4px;color:#007bff;cursor:pointer;font-size:14px;font-weight:600;padding:.25rem 1rem;transition:all .2s ease}.route-display .route-steps .route-step .step-content .details-btn:hover{background:#007bff;color:#fff}.route-display .route-actions{margin-top:2rem;text-align:center}.route-display .route-actions .new-route-button{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.route-display .route-actions .new-route-button:hover{background:#545b62;transform:translateY(-2px)}@media(max-width:768px){.route-display{padding:1rem}.route-display .route-summary .summary-stats{gap:1rem;grid-template-columns:1fr}.route-display .route-steps .route-step{gap:1rem;grid-template-columns:1fr;text-align:center}.route-display .route-steps .route-step .step-number{justify-self:center;margin-bottom:.5rem}.route-display .route-steps .route-step .step-content .step-header{align-items:center;flex-direction:column;text-align:center}.route-display .route-steps .route-step .step-content .step-header .step-meta{align-items:center;margin-top:.5rem}}@media(max-width:1024px)and (min-width:769px){.route-display .route-steps .route-step{grid-template-columns:auto 1fr}}.dancing-tourist{margin:1.5rem 0}.dancing-tourist,.dancing-tourist .character-container{align-items:center;display:flex;justify-content:center;position:relative}.dancing-tourist .moonwalk-character{animation:moonwalkSlide 4s ease-in-out infinite;background:#0000;filter:drop-shadow(0 8px 16px rgba(0,0,0,.2));height:auto;width:280px;z-index:10}.dancing-tourist .onnway-text{animation:onnwayReveal 4s ease-in-out infinite;position:absolute;right:60px;top:-30px;z-index:20}.dancing-tourist .onnway-text span{animation:textPulse 1s ease-in-out infinite;background:#ffffffe6;border:2px solid #4ecdc4;border-radius:20px;color:#4ecdc4;display:inline-block;font-size:18px;font-weight:700;padding:8px 12px;text-shadow:2px 2px 4px #0000004d}.dancing-tourist .moonwalk-effects{bottom:30px;height:20px;left:50%;position:absolute;transform:translateX(-50%);width:100px}.dancing-tourist .moonwalk-effects .dust-cloud{animation:dustFloat 4s ease-in-out infinite;background:#c8c8c899;border-radius:50%;height:8px;position:absolute;width:8px}.dancing-tourist .moonwalk-effects .dust-cloud.dust-1{animation-delay:0s;left:10px}.dancing-tourist .moonwalk-effects .dust-cloud.dust-2{animation-delay:1s;left:45px}.dancing-tourist .moonwalk-effects .dust-cloud.dust-3{animation-delay:2s;left:80px}@keyframes moonwalkSlide{0%{transform:translateX(40px) scaleX(1) skewX(0deg)}15%{transform:translateX(20px) scaleX(.95) skewX(-2deg) translateY(-2px)}30%{transform:translateX(0) scaleX(1.05) skewX(0deg) translateY(0)}45%{transform:translateX(-20px) scaleX(.95) skewX(2deg) translateY(-1px)}60%{transform:translateX(-40px) scaleX(1.02) skewX(0deg) translateY(0)}75%{transform:translateX(-20px) scaleX(.98) skewX(-1deg) translateY(-1px)}90%{transform:translateX(10px) scaleX(1.03) skewX(1deg) translateY(0)}to{transform:translateX(40px) scaleX(1) skewX(0deg) translateY(0)}}@keyframes onnwayReveal{0%,60%{opacity:0;transform:translateY(20px) scale(.5) rotate(-10deg)}70%,90%{opacity:1;transform:translateY(0) scale(1) rotate(0deg)}to{opacity:0;transform:translateY(-10px) scale(.8) rotate(5deg)}}@keyframes textPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes dotPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}@keyframes dustFloat{0%,to{opacity:0;transform:translateY(0) scale(.5)}25%{opacity:.8;transform:translateY(-5px) scale(1)}50%{opacity:.6;transform:translateY(-8px) scale(1.2)}75%{opacity:.3;transform:translateY(-3px) scale(.8)}}@media(max-width:768px){.dancing-tourist .moonwalk-character{width:200px}.dancing-tourist .onnway-text{right:40px;top:-25px}.dancing-tourist .onnway-text span{font-size:14px;padding:6px 10px}.dancing-tourist .moonwalk-trail{bottom:15px}.dancing-tourist .moonwalk-trail .trail-dot{height:6px;width:6px}}@media(prefers-reduced-motion:reduce){.dancing-tourist .dust-cloud,.dancing-tourist .moonwalk-character,.dancing-tourist .moonwalk-effects,.dancing-tourist .onnway-text{animation:none}.dancing-tourist .onnway-text{opacity:1;transform:none}.dancing-tourist .moonwalk-effects{opacity:.6}}.loading-overlay{align-items:center;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.loading-modal{animation:slideUp .4s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:2rem;position:relative;text-align:center;width:90%}.loading-modal .tourist-container{margin-bottom:1.5rem}.loading-modal .tourist-container:before{background:radial-gradient(circle,#4ecdc41a 0,#0000 70%);border-radius:50%;content:"";height:300px;left:50%;position:absolute;top:20px;transform:translateX(-50%);width:300px;z-index:-1}.loading-modal .loading-message{margin-bottom:1.5rem}.loading-modal .loading-message h3{align-items:center;animation:messageSlide .5s ease;color:#343a40;display:flex;font-size:18px;font-weight:600;justify-content:center;margin:0;min-height:60px}.loading-modal .loading-dots{display:flex;gap:.25rem;justify-content:center;margin-bottom:1.5rem}.loading-modal .loading-dots span{animation:dotBounce 1.4s ease-in-out infinite both;background:#007bff;border-radius:50%;height:8px;width:8px}.loading-modal .loading-dots span:first-child{animation-delay:-.32s}.loading-modal .loading-dots span:nth-child(2){animation-delay:-.16s}.loading-modal .loading-dots span:nth-child(3){animation-delay:0s}.loading-modal .cancel-button{background:#0000;border:1px solid #f8f9fa;border-radius:8px;color:#6c757d;cursor:pointer;font-size:14px;padding:.5rem 1.5rem;transition:all .3s ease}.loading-modal .cancel-button:hover{background:#f8f9fa;color:#343a40;transform:translateY(-1px)}.loading-modal .cancel-button:active{transform:translateY(0)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes dotBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@media(max-width:768px){.loading-modal{margin:1rem;padding:1.5rem}.loading-modal .loading-message h3{font-size:16px;min-height:50px}.loading-modal .tourist-container:before{height:250px;width:250px}}@media(prefers-color-scheme:dark){.loading-modal{background:#2d3748;color:#fff}.loading-modal .loading-message h3{color:#fff}.loading-modal .cancel-button{border-color:#4a5568;color:#a0aec0}.loading-modal .cancel-button:hover{background:#4a5568;color:#fff}}@media(prefers-reduced-motion:reduce){.loading-dots span,.loading-message h3,.loading-modal,.loading-overlay{animation:none}}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea,#764ba2);color:#343a40;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.app,body{min-height:100vh}.app{display:flex;flex-direction:column}.app .app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;box-shadow:0 2px 4px #0000001a;padding:1.5rem 2rem;text-align:center}.app .app-header .header-content{align-items:center;display:flex;gap:11rem;justify-content:center;margin-bottom:.5rem}.app .app-header .header-content .greeting{animation:cheerfulWave 3s ease-in-out infinite;color:#007bff;font-size:24px;font-weight:600}.app .app-header .header-content .greeting.left{animation-delay:0s}.app .app-header .header-content .greeting.right{animation-delay:1.5s}.app .app-header .header-content h1{color:#343a40;font-size:2.5rem;font-weight:700;margin:0}.app .app-header p{color:#6c757d;font-size:18px;margin:0}.app .app-main{flex:1 1;padding:2rem 0}.app .app-footer{background:#000c;color:#fff;padding:1.5rem;text-align:center}.app .app-footer p{font-size:14px;margin:0;opacity:.8}.app .loading-screen{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:2rem;text-align:center}.app .loading-screen .spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#007bff;height:50px;margin-bottom:1.5rem;width:50px}.app .loading-screen h2{color:#fff;font-size:24px;margin-bottom:1rem}.app .loading-screen p{color:#fffc;font-size:16px}.app .error-screen{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 8px #00000026;display:flex;flex-direction:column;justify-content:center;margin:2rem;min-height:60vh;padding:2rem;text-align:center}.app .error-screen h2{color:#dc3545;font-size:24px;margin-bottom:1.5rem}.app .error-screen p{color:#6c757d;line-height:1.6;margin-bottom:1rem;max-width:500px}.app .error-screen p:last-child{margin-bottom:0}.app .error-message{margin:1.5rem;text-align:center}.app .error-message p{background:#dc35451a;border:1px solid #dc354533;border-radius:8px;color:#dc3545;display:inline-block;padding:1rem 1.5rem}@keyframes cheerfulWave{0%,to{transform:scale(1) rotate(0deg)}25%{transform:scale(1.1) rotate(-5deg)}50%{transform:scale(1.05) rotate(0deg)}75%{transform:scale(1.1) rotate(5deg)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media(max-width:768px){.app .app-header{padding:1rem}.app .app-header .header-content{flex-direction:column;gap:.5rem}.app .app-header .header-content .greeting{font-size:16px}.app .app-header .header-content h1{font-size:2rem}.app .app-header p{font-size:16px}.app .app-main{padding:1rem 0}.app .error-screen,.app .loading-screen{margin:1rem;padding:1.5rem}}
/*# sourceMappingURL=main.24e3a494.css.map*/