body,html{overscroll-behavior:none;overscroll-behavior-y:none;overflow:hidden;width:100%;height:100%;position:fixed}#goal-results-modal-content,.course-list-container,.message-scrollable-content,.modal-content,.popup-content,.popup-scroll-body,.scrollable-help-content{display:flex;flex-direction:column;overflow:hidden}#goal-results-scrollable-content{overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}#close-goal-results-btn-bottom:hover{background-color:#0056b3!important;box-shadow:0 4px 12px rgba(0,123,255,.4)!important}#close-goal-results-btn-bottom:active{background-color:#004085!important;box-shadow:0 1px 4px rgba(0,123,255,.3)!important}:root{--primary-color:#009999;--text-on-primary:#ffffff;--primary-darkened:#006666;--primary-hover-color:#007373;--success-color:#28a745;--success-hover-color:#218838;--danger-color:#dc3545;--danger-hover-color:#c82333;--warning-color:#ffc107;--warning-hover-color:#e0a800;--text-primary:#1d1d1f;--text-secondary:#4a4a4f;--white-color:#ffffff;--body-bg:#f5f5f7;--component-bg:#ffffff;--border-color:#d1d1d6;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md:0 4px 12px rgba(0, 0, 0, 0.1);--border-radius-sm:8px;--border-radius-md:12px;--stamp-rally-color:#42A5F5;--stamp-rally-hover-color:#1E88E5;--gold-color:#FFD700;--dark-purple-bg:#4A148C;--light-purple-bg:#6A1B9A;--stats-panel-height:0px}body,html{margin:0;padding:0;height:100%;display:flex;flex-direction:column;font-family:'Noto Sans JP',sans-serif;color:var(--text-primary);overscroll-behavior:none;-webkit-font-smoothing:antialiased;box-sizing:border-box}html{background-color:var(--primary-color)}body{background-color:var(--primary-color);padding-bottom:calc(24px + env(safe-area-inset-bottom))}h1{height:56px;flex-shrink:0;padding:0 16px;padding-top:env(safe-area-inset-top);box-sizing:content-box;margin:0;background:var(--primary-color);color:var(--text-on-primary)!important;font-size:1.2em;display:flex;align-items:center;box-shadow:var(--shadow-md);z-index:100;gap:16px}h1 img{height:85%;width:auto;max-width:48px;object-fit:contain;aspect-ratio:1/1}.title-wrapper{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:0;margin-right:auto;line-height:1.2;min-width:0}.main-title{font-size:1em;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.subtitle{font-size:.6em;font-weight:400;color:var(--text-on-primary);opacity:.9;display:flex;align-items:center;gap:.6em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.manual-link-header{color:var(--text-on-primary);opacity:.8;text-decoration:underline;font-size:.7em;font-weight:400;margin-left:8px;transition:opacity .2s}.manual-link-header:hover{opacity:1}.header-help-btn{background:0 0;border:none;color:var(--text-on-primary);cursor:pointer;padding:8px;min-width:48px;min-height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.header-button-group{display:flex;align-items:center;gap:8px}.header-help-btn:hover{background-color:rgba(255,255,255,.25)}.header-help-btn svg{width:28px;height:28px}#top-left-info-cluster{position:fixed;left:16px;z-index:1000;display:none;flex-direction:column;align-items:flex-start;gap:12px;transition:top .4s cubic-bezier(.4, 0, .2, 1)}body[data-app-state=paused] #top-left-info-cluster,body[data-app-state=tour] #top-left-info-cluster{display:flex;top:calc(56px + env(safe-area-inset-top) + 2px)}body.stats-panel-shown[data-app-state=paused] #top-left-info-cluster,body.stats-panel-shown[data-app-state=tour] #top-left-info-cluster{top:calc(56px + env(safe-area-inset-top) + 99px)}.header-hidden[data-app-state=paused] #top-left-info-cluster,.header-hidden[data-app-state=tour] #top-left-info-cluster{top:calc(env(safe-area-inset-top) + 16px)}.stats-panel-shown.header-hidden[data-app-state=paused] #top-left-info-cluster,.stats-panel-shown.header-hidden[data-app-state=tour] #top-left-info-cluster{top:calc(env(safe-area-inset-top) + 95px)}body.stats-panel-shown:not(.header-hidden)[data-app-state=paused] #top-left-info-cluster,body.stats-panel-shown:not(.header-hidden)[data-app-state=tour] #top-left-info-cluster{top:155px}#map-controls-container{position:fixed;top:calc(env(safe-area-inset-top) + 4px);left:50%;transform:translateX(-50%);z-index:1001;pointer-events:none;padding:10px 0;box-sizing:border-box;width:100%;display:flex;justify-content:center;align-items:center;transition:top .3s ease-in-out}#gps-status-indicator{font-size:.75em;font-weight:400;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;transition:background-color .3s,color .3s;white-space:nowrap;pointer-events:auto}body.stats-panel-shown #map-controls-container{top:calc(env(safe-area-inset-top) + var(--stats-panel-height) + 4px)}#gps-status-indicator.idle{background-color:rgba(0,0,0,.5);color:#f0f0f0}#gps-status-indicator.idle::before{background-color:#f0f0f0}#gps-status-indicator.searching{background-color:#ffc107;color:#333}#gps-status-indicator.searching::before{background-color:#333;animation:pulse 1.5s infinite;will-change:opacity}#gps-status-indicator.good{background-color:#28a745;color:#fff}#gps-status-indicator.good::before{background-color:#fff}#gps-status-indicator.poor{background-color:#ffc107;color:#333}#gps-status-indicator.poor::before{background-color:#333}#gps-status-indicator.error{background-color:#dc3545;color:#fff}#gps-status-indicator.error::before{background-color:#fff}@keyframes pulse{0%{opacity:1}50%{opacity:.3}100%{opacity:1}}#wrap_map{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background-color:#f0f0f0}#map{width:100%;height:100%;flex-grow:1}footer{display:none!important}#button-container{display:none;justify-content:center;padding:8px 16px;background-color:#fff;border-top:1px solid var(--border-color);z-index:20;transition:gap .3s,padding .3s}#button-container[data-state=finished]{background:linear-gradient(135deg,#077 0,#00b3b3 100%);padding:16px 12px;gap:12px;border-top:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch}#button-container>.button-wrapper,#button-container>.speed-controls{display:none}#button-container[data-state~=finished]>.button-wrapper[data-state~=finished],#button-container[data-state~=finished]>.speed-controls[data-state~=finished]{display:flex}.button-wrapper{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center}.button-wrapper button{width:52px;height:52px;border-radius:16px;border:1px solid var(--border-color);background-color:var(--component-bg);cursor:pointer;display:flex;justify-content:center;align-items:center;padding:0;transition:all .2s ease}.button-wrapper button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--primary-color)}.button-wrapper button:active{transform:translateY(-2px) scale(.95)}.button-wrapper button svg{width:28px;height:28px;color:var(--primary-color)}.button-wrapper .button-label{font-size:11px;margin-top:6px;color:var(--text-secondary);white-space:normal;text-align:center}.speed-controls{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:4px;border-radius:12px;background-color:var(--body-bg);border:1px solid var(--border-color)}.speed-controls button{width:48px;height:48px;min-width:48px;min-height:48px;border:none;border-radius:8px;background-color:transparent;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:background-color .2s,color .2s}.speed-controls button.active{background-color:var(--primary-color);color:var(--text-on-primary)}#stats-panel{position:fixed;top:calc(56px + env(safe-area-inset-top));left:0;width:100%;display:flex;justify-content:space-evenly;padding:12px 4px;background-color:var(--component-bg);border-bottom:1px solid var(--border-color);z-index:99;transform:translateY(-100%);transition:transform .4s cubic-bezier(.4, 0, .2, 1);box-sizing:border-box;flex-wrap:nowrap;gap:8px;overflow:hidden}.stat-item{display:flex;align-items:center;gap:8px;text-align:left;flex:1;min-width:0;justify-content:center}#stats-panel.stats-visible{transform:translateY(0)}body.header-hidden #stats-panel{top:0}body[data-app-state=finished] #stats-panel{position:static;transform:none;top:auto}.stat-icon{color:var(--primary-color)}.stat-icon svg{width:28px;height:28px;opacity:.8}.stat-text{display:flex;flex-direction:column;align-items:flex-start}.stat-label{font-size:11px;color:var(--text-secondary);white-space:nowrap}.stat-value{font-size:clamp(16px, 4.5vw, 20px);font-weight:700;color:var(--text-primary);white-space:nowrap}.hidden{display:none!important}#fab-center-guide.hidden,#navi-mode-btn.hidden,#orientation-btn.hidden,#pitch-toggle-btn.hidden,#recenter-map-btn.hidden,.fab.hidden,.fab.secondary.fab-with-label.hidden,.fab.secondary.hidden{display:none!important}#fab-container,#fab-container-animation-stop{position:fixed;right:16px;bottom:calc(40px + env(safe-area-inset-bottom));z-index:1100;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:12px;transition:bottom .3s ease-in-out,top .3s ease-in-out,opacity .3s,visibility .3s}#fab-container-left{position:fixed;left:16px;bottom:calc(40px + env(safe-area-inset-bottom));z-index:1100;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:12px;transition:bottom .3s ease-in-out,opacity .3s,visibility .3s}#fab-container-top-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px;position:fixed;top:calc(56px + env(safe-area-inset-top) + 14px);right:10px;z-index:1100;transition:top .3s ease-in-out,visibility .3s}.fab{width:56px;height:56px;border-radius:50%;border:none;color:var(--white-color);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:transform .2s ease,background-color .2s ease,color .2s ease,opacity .3s,width .3s,height .3s}.fab{will-change:transform}.fab:hover{transform:scale(1.05)}.fab:active{transform:scale(.95)}.fab:disabled{opacity:.5;cursor:not-allowed;background-color:var(--text-secondary)}.fab svg{width:24px;height:24px;transition:width .3s,height .3s}#fab-lock-screen,#fab-pause,#fab-reset,#fab-resume,#fab-start,#fab-stop,#fab-track-reload{width:64px;height:64px;flex-direction:column;justify-content:center;padding:8px 4px;gap:8px;box-sizing:border-box}#fab-lock-screen svg,#fab-pause svg,#fab-reset svg,#fab-resume svg,#fab-start svg,#fab-stop svg{width:28px;height:28px}#fab-lock-screen .fab-label{font-size:9px}#fab-start{background-color:var(--success-color)}#fab-start:hover:not(:disabled){background-color:var(--success-hover-color)}#fab-pause{background-color:var(--warning-color)}#fab-pause:hover{background-color:var(--warning-hover-color)}#fab-resume{background-color:var(--success-color)}#fab-resume:hover{background-color:var(--success-hover-color)}#fab-stop,#fab-stop-animation{background-color:var(--danger-color)}#fab-stop-animation:hover,#fab-stop:hover{background-color:var(--danger-hover-color)}#fab-reset{background-color:var(--primary-color);color:var(--text-on-primary)!important}#fab-reset:hover{background-color:var(--primary-hover-color)}#fab-reset svg{stroke:currentColor;fill:none}#fab-lock-screen{background-color:#343a40}#fab-lock-screen:hover{background-color:#23272b}#fab-lock-screen svg{stroke:var(--white-color)}#fab-track-reload{background-color:#007aff}#fab-track-reload:hover{background-color:#0062cc}#fab-track-reload svg{stroke:var(--white-color)}.fab.secondary{width:48px;height:48px;background-color:var(--component-bg);color:var(--text-primary);border:1px solid var(--border-color)}.fab.secondary.fab-with-label{flex-direction:column!important;justify-content:center!important;padding:4px 2px!important;gap:2px!important;box-sizing:border-box!important;display:flex!important}.fab.secondary:hover{border-color:var(--primary-color);color:var(--primary-color)}.fab.secondary.active{background-color:var(--primary-color);color:var(--text-on-primary);border-color:var(--primary-color)}.fab.secondary svg{width:22px;height:22px;stroke:currentColor;fill:currentColor}.fab.secondary.fab-with-label svg{width:24px!important;height:24px!important}#fab-center-guide svg,#fab-help svg,#fab-opacity-toggle svg,#fab-settings svg,#navi-mode-btn svg,#orientation-btn svg,#pitch-toggle-btn svg,#recenter-map-btn svg{fill:none}#fab-stamp-rally{width:64px;height:64px;background-color:var(--stamp-rally-color);color:var(--white-color);border:2px solid var(--white-color);box-shadow:0 4px 12px rgba(0,0,0,.3);flex-direction:column;justify-content:center;align-items:center;padding:8px;box-sizing:border-box;height:auto}#fab-stamp-rally:hover{background-color:var(--stamp-rally-hover-color);border-color:var(--white-color);color:var(--white-color);transform:scale(1.05)}#fab-stamp-rally svg{width:28px;height:28px;stroke:var(--white-color);fill:none}#stamp-rally-count-display{font-size:16px;font-weight:700;color:var(--white-color);margin-top:2px;line-height:1;text-shadow:1px 1px 2px rgba(0,0,0,.4)}#fab-container-delete-guide,#fab-container-plotting,#fab-container-spot-creation{position:fixed;bottom:calc(40px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:1011;display:flex;gap:16px;background-color:rgba(255,255,255,.8);padding:12px 16px;border-radius:34px;box-shadow:var(--shadow-md);-webkit-backdrop-filter:none;backdrop-filter:none;transition:opacity .3s,bottom .3s}#fab-container-delete-guide .fab,#fab-container-plotting .fab,#fab-container-spot-creation .fab{width:52px;height:52px}#fab-plotting-confirm{background-color:var(--success-color)}#fab-plotting-confirm:hover{background-color:var(--success-hover-color)}#fab-plotting-undo{background-color:var(--warning-color)}#fab-plotting-undo:hover{background-color:var(--warning-hover-color)}#fab-plotting-cancel{background-color:var(--danger-color)}#fab-plotting-cancel:hover{background-color:var(--danger-hover-color)}#fab-delete-guide-confirm{background-color:var(--primary-color)}#fab-delete-guide-confirm:hover{background-color:var(--primary-hover-color)}#fab-delete-guide-cancel{background-color:var(--danger-color)}#fab-delete-guide-cancel:hover{background-color:var(--danger-hover-color)}#fab-spot-creation-exit{background-color:var(--danger-color)}#fab-spot-creation-exit:hover{background-color:var(--danger-hover-color)}#countdown-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);z-index:2000;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}#countdown-overlay.visible{opacity:1;visibility:visible}#countdown-number{font-size:25vw;font-weight:700;color:#fff;text-shadow:0 0 20px rgba(0,0,0,.5);transform:scale(1.5);opacity:0}#countdown-overlay.visible #countdown-number{animation:countdown-tick 1s forwards;will-change:transform,opacity}@keyframes countdown-tick{0%{transform:scale(1.5);opacity:0}20%{transform:scale(1);opacity:1}80%{transform:scale(1);opacity:1}100%{transform:scale(.8);opacity:0}}#image-message-container{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:2001;display:flex;justify-content:center;align-items:center;padding:15px;box-sizing:border-box;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}#image-message-container.visible{opacity:1;visibility:visible}.message-content-wrapper{position:relative;background-color:var(--component-bg);color:var(--text-primary);padding:0;border-radius:16px;width:100%;max-width:450px;height:85vh;max-height:650px;display:flex;flex-direction:column;overflow:hidden;text-align:center;border:none;box-shadow:0 8px 32px rgba(0,0,0,.2);transform:translateY(20px) scale(.95);opacity:0;will-change:transform,opacity;transition:transform .4s cubic-bezier(.25, .8, .25, 1),opacity .3s ease-out}#image-message-container.visible .message-content-wrapper{transform:translateY(0) scale(1);opacity:1}.message-scrollable-content{padding:50px 24px 24px 24px;overflow-y:auto;flex-grow:1;min-height:0}#image-message-container .close-message-btn{position:absolute;top:10px;right:10px;width:54px;height:54px;background-color:rgba(0,0,0,.25);border:none;border-radius:50%;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .1s;z-index:1000;touch-action:manipulation}#image-message-container .close-message-btn:active{background-color:rgba(0,0,0,.35);transform:scale(.9)}#stamp-get-title{color:var(--primary-darkened)!important;font-size:1.6em;font-weight:700;text-align:center;margin:0 0 15px 0;padding-bottom:12px;border-bottom:2px solid var(--border-color)}#myImage{max-width:100%;height:auto;max-height:30vh;border-radius:8px;margin-bottom:15px;display:block;margin-left:auto;margin-right:auto;object-fit:contain}#mess{margin-top:0;margin-bottom:24px;font-size:1.1em;line-height:1.6}.spot-points-info{display:flex;gap:12px;margin:12px 0 16px 0;flex-wrap:wrap}.point-badge{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:20px;font-size:.9em;font-weight:600;box-shadow:0 2px 4px rgba(0,0,0,.1);flex:0 0 auto}.point-badge svg{flex-shrink:0}.point-label{font-size:.85em;opacity:.9}.point-value{font-size:1.1em;font-weight:700;margin:0 2px}.point-unit{font-size:.8em;opacity:.8}.arrival-points{background:linear-gradient(135deg,#4caf50 0,#45a049 100%);color:#fff}.quiz-points{background:linear-gradient(135deg,#ff9800 0,#f57c00 100%);color:#fff}#spot-description{text-align:left;font-size:.95em;line-height:1.7;color:var(--text-secondary);margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color);white-space:pre-wrap}#spot-description ruby{display:inline-flex;flex-direction:column;align-items:center;white-space:normal!important;ruby-position:over}#spot-description rt{display:block;font-size:.6em;line-height:1;text-align:center;white-space:nowrap;font-feature-settings:"liga" 0;-webkit-text-emphasis-style:none;text-emphasis-style:none}#quiz-explanation{white-space:pre-wrap;text-align:left;font-size:.9em;line-height:1.5;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:8px;margin-bottom:15px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1}#quiz-explanation ruby{display:inline-flex;flex-direction:column;align-items:center;white-space:normal!important;ruby-position:over}#quiz-explanation rt{display:block;font-size:.6em;line-height:1;text-align:center;white-space:nowrap;font-feature-settings:"liga" 0;-webkit-text-emphasis-style:none;text-emphasis-style:none}.message-footer{padding:16px 24px;border-top:1px solid var(--border-color);background-color:var(--component-bg);flex-shrink:0;display:flex;justify-content:center;align-items:center;gap:24px}#guideline{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:2px dashed rgba(255,0,0,.8);box-shadow:0 0 10px rgba(0,0,0,.5);pointer-events:none;display:none;z-index:10}#toast-notification{visibility:hidden;min-width:250px;background-color:#333;color:#fff;text-align:center;border-radius:25px;padding:14px 22px;position:fixed;z-index:3500;left:50%;bottom:calc(160px + env(safe-area-inset-bottom));transform:translate(-50%,20px);font-size:1em;opacity:0;transition:all .4s cubic-bezier(.25, .8, .25, 1)}#toast-notification.show{visibility:visible;opacity:1;bottom:calc(180px + env(safe-area-inset-bottom));transform:translateX(-50%)}#toast-notification.toast-top{bottom:auto!important;top:calc(env(safe-area-inset-top) + 100px)!important;transform:translate(-50%,-20px)!important}#toast-notification.toast-top.show{transform:translate(-50%,0)!important}#export-confirm-popup{position:fixed;bottom:calc(34px + env(safe-area-inset-bottom));left:10px;right:10px;transform:translateX(0);max-width:500px;margin:0 auto;background-color:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;padding:16px;border-radius:16px;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 20px rgba(0,0,0,.4);z-index:1100;display:flex;flex-direction:column;align-items:center;gap:12px;transition:opacity .3s,bottom .3s}#export-confirm-popup p{margin:0;font-size:.95em;font-weight:700;text-align:center;line-height:1.5;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.export-buttons{display:flex;gap:8px;flex-shrink:0}#export-confirm-popup button{padding:8px 16px;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background-color .2s}#export-confirm-popup #execute-export-btn{background-color:#007aff;color:#fff}#export-confirm-popup #cancel-export-btn{background-color:#555;color:#fff}body[data-app-state=finished] .maplibregl-user-location-accuracy-circle,body[data-app-state=finished] .maplibregl-user-location-dot{display:none!important}.popup-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(30,30,30,.85);-webkit-backdrop-filter:none;backdrop-filter:none;display:flex;justify-content:center;align-items:center;z-index:9000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s .3s}.popup-overlay:not(.hidden){opacity:1;visibility:visible;transition:opacity .3s ease}.popup-content{position:relative;background-color:var(--component-bg);padding:24px;border-radius:12px;box-shadow:var(--shadow-md);text-align:center;max-width:90%;width:300px;opacity:0;transform:scale(.95) translateY(10px);transition:transform .3s cubic-bezier(.25, .8, .25, 1),opacity .3s ease-out}.popup-overlay:not(.hidden) .popup-content{opacity:1;transform:scale(1) translateY(0)}.popup-content p,.popup-section label{margin:0 0 12px 0;font-size:1.1em;color:var(--text-primary);font-weight:700;display:block}.popup-content h3{margin:0 0 12px 0;font-size:1.1em;font-weight:700;display:block;color:var(--primary-darkened)!important}.popup-content p small{font-size:.8em;color:var(--text-secondary);font-weight:400}.popup-section{margin-bottom:24px}.popup-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:0}.popup-buttons button{padding:12px;min-height:48px;border-radius:8px;border:1px solid var(--border-color);font-size:1em;font-weight:700;cursor:pointer;transition:background-color .2s,color .2s,transform .1s}.popup-buttons button:active{transform:scale(.96)}.popup-buttons button.popup-btn-primary{background-color:var(--primary-color);color:var(--text-on-primary);border-color:var(--primary-color)}.popup-buttons button.popup-btn-primary:hover{background-color:var(--primary-hover-color)}.popup-buttons button.popup-btn-secondary{background-color:var(--component-bg);color:var(--primary-color)}.popup-buttons button.popup-btn-secondary:hover{background-color:#f0f0f0}.popup-buttons button.popup-btn-cancel:hover{background-color:#f0f0f0}.popup-buttons button.popup-btn-danger{background-color:var(--danger-color);color:var(--white-color);border-color:var(--danger-color)}.popup-buttons button.popup-btn-danger:hover{background-color:var(--danger-hover-color)}.speed-controls-popup{display:flex;justify-content:center;gap:8px}.speed-controls-popup button{flex:1;padding:10px 0;min-height:48px;border:1px solid var(--border-color);background-color:transparent;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:background-color .2s,color .2s}.speed-controls-popup button.active{background-color:var(--primary-color);color:var(--text-on-primary);border-color:var(--primary-color)}body[data-app-state=finished] #fab-container,body[data-app-state=finished] #fab-container-left{bottom:calc(115px + env(safe-area-inset-bottom))}body[data-app-state=finished] #toast-notification{bottom:calc(195px + env(safe-area-inset-bottom))}body[data-app-state=finished] #toast-notification.show{bottom:calc(215px + env(safe-area-inset-bottom))}body[data-app-state=finished] #export-confirm-popup{bottom:calc(100px + env(safe-area-inset-bottom))}.maplibregl-ctrl-logo{display:none!important}.maplibregl-ctrl-top-left .maplibregl-ctrl{margin-top:10px;transition:margin-top .3s ease-in-out}body[data-app-state=finished] #fab-container-top-right{top:70px}#qr-scanner-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.9);z-index:4000;display:flex;flex-direction:column;justify-content:center;align-items:center}#qr-reader{width:80vw;max-width:400px;border:2px solid var(--primary-color);border-radius:var(--border-radius-md);overflow:hidden}#close-qr-scanner{margin-top:20px;padding:10px 20px;background:var(--danger-color);color:#fff;border:none;border-radius:var(--border-radius-sm);font-weight:700;cursor:pointer}body[data-app-state=finished] h1,body[data-app-state=paused] h1,body[data-app-state=tour] h1{display:none!important}.header-hidden h1{display:none!important}body.stats-panel-shown.header-hidden .maplibregl-ctrl-top-left .maplibregl-ctrl{margin-top:69px}body.stats-panel-shown:not(.header-hidden) .maplibregl-ctrl-top-left .maplibregl-ctrl{margin-top:65px}#initial-panel{position:fixed;bottom:0;left:0;right:0;background-color:var(--component-bg);z-index:3100;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-top-left-radius:var(--border-radius-md);border-top-right-radius:var(--border-radius-md);box-shadow:0 -4px 12px rgba(0,0,0,.15);transform:translateY(100%);transition:transform .4s cubic-bezier(.4, 0, .2, 1)}#initial-panel.visible{transform:translateY(0)}#initial-panel-content p{text-align:center;margin-top:0;margin-bottom:24px;font-size:1.1em;line-height:1.6}#loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:var(--body-bg);z-index:9000;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:20px;transition:opacity .5s ease,visibility .5s ease;opacity:1;visibility:visible}#loading-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}#loading-overlay .spinner{width:50px;height:50px;border:5px solid rgba(0,0,0,.1);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}#loading-overlay p{font-size:1em;color:var(--text-secondary);font-weight:700}@keyframes spin{to{transform:rotate(360deg)}}#help-modal.popup-overlay{align-items:flex-start;padding:20px 0}.popup-content.help-content{width:360px;max-width:95vw;text-align:left;max-height:calc(100% - 60px);overflow-y:auto;display:flex;flex-direction:column}.popup-content.help-content .help-section{flex-shrink:0}#help-modal .close-message-btn{position:absolute;top:12px;right:12px;left:auto;width:48px;height:48px;background-color:rgba(0,0,0,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .2s;cursor:pointer;z-index:10;min-width:48px;min-height:48px}#help-modal .close-message-btn:hover{background-color:rgba(0,0,0,.25)}.popup-content.help-content h2{text-align:center;margin-top:0;margin-right:40px}.help-section{margin-bottom:20px}.help-section+.help-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--border-color)}.help-section h3{font-size:1em;color:var(--primary-darkened)!important;border-bottom:2px solid var(--primary-darkened)!important;padding-bottom:4px;margin-bottom:12px}.help-section p{font-size:.9em;line-height:1.6;margin:0;font-weight:400}.help-item{display:flex;align-items:center;gap:15px;margin-bottom:12px}.help-item .icon-placeholder{flex-shrink:0;width:40px;height:40px;display:flex;justify-content:center;align-items:center;background-color:var(--body-bg);border-radius:8px;color:var(--text-primary)}.help-item .icon-placeholder svg{width:24px;height:24px;stroke-width:2;stroke:currentColor;color:currentColor}.help-item p{flex-grow:1;font-size:.85em;line-height:1.5}.help-item p b{font-weight:700;color:var(--text-primary);display:block}.user-manual-link{display:block;text-align:center;margin-top:16px;margin-bottom:16px;font-size:.9em;color:var(--primary-darkened)!important;text-decoration:underline}#confirm-help-btn{width:100%;padding:14px;font-size:1.1em;margin-top:10px}#gpx-download-modal .popup-content p{font-weight:400;text-align:center;line-height:1.6}#gpx-download-modal .popup-content p a{color:var(--primary-darkened)!important;font-weight:700}#paused-overlay{position:absolute;bottom:0;left:0;width:100%;padding:10px;background-color:rgba(0,0,0,.6);color:#fff;text-align:center;font-weight:700;font-size:1.1em;z-index:1000;pointer-events:none;transition:opacity .3s,visibility .3s}.loading-intro-image{width:80%;max-width:280px;height:auto;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}.popup-input{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);box-sizing:border-box;font-size:1em}#trash-stat-item.hidden{display:none}#plogging-collect-button-container{position:fixed;bottom:calc(40px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:1011;transition:opacity .3s,transform .3s}#plogging-collect-btn{width:64px;height:64px;background-color:var(--primary-color);border:2px solid #fff;border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.3);cursor:pointer;transition:transform .2s cubic-bezier(.34, 1.56, .64, 1);display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;padding:8px;box-sizing:border-box}#plogging-collect-btn:active{transform:scale(.92)}#plogging-collect-btn svg{width:28px;height:28px}#plogging-count-display{font-size:16px;font-weight:700;margin-top:2px;text-shadow:1px 1px 2px rgba(0,0,0,.4)}#camera-overlay{z-index:4500;background-color:rgba(0,0,0,.95);backdrop-filter:none;-webkit-backdrop-filter:none}.camera-container{position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}#camera-canvas,#camera-video{width:100%;max-height:100%;object-fit:contain}#camera-canvas{display:none}#camera-shutter-button{position:absolute;bottom:10%;left:50%;transform:translateX(-50%);width:70px;height:70px;border-radius:50%;background-color:#fff;border:5px solid rgba(0,0,0,.3);cursor:pointer;z-index:10}#camera-shutter-button:active{background-color:#ccc}#camera-cancel-btn{position:absolute;top:40px;right:20px;background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:8px;padding:10px 15px;font-weight:700;cursor:pointer;z-index:10}#camera-controls{position:absolute;bottom:10%;width:100%;display:flex;justify-content:space-around;align-items:center;z-index:10}#camera-controls button{padding:12px 24px;border-radius:8px;border:none;font-size:1em;font-weight:700;cursor:pointer;background-color:rgba(255,255,255,.9);color:var(--text-primary)}#camera-controls button#camera-save-btn{background-color:var(--primary-color);color:#fff}#permission-help-modal .popup-content{max-width:360px}#permission-modal-instructions{text-align:left;font-size:.9em;line-height:1.6;background-color:var(--body-bg);padding:12px 16px;border-radius:var(--border-radius-sm);margin:16px 0;border:1px solid var(--border-color)}#permission-modal-instructions ol{padding-left:20px;margin:0}#permission-modal-instructions li{margin-bottom:12px}#permission-modal-instructions li:last-child{margin-bottom:0}#permission-modal-instructions strong{color:var(--primary-darkened)!important;font-weight:700}#permission-modal-instructions .os-instructions{margin-top:15px;padding-top:15px;border-top:1px solid var(--border-color)}#permission-modal-instructions .os-instructions h4{margin:0 0 8px 0;font-size:1.1em;color:var(--text-primary)}.mode-selection-options{margin:24px 0;display:flex;flex-direction:column;gap:12px}.mode-selection-option{display:flex;align-items:center;gap:12px;padding:12px;background-color:var(--body-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color)}.mode-selection-option input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary-color);flex-shrink:0}.mode-selection-option label{font-weight:700;font-size:1em;margin:0;line-height:1.4;flex-grow:1}.mode-selection-option input[type=color]{width:44px;height:44px;border:none;background:0 0;padding:0;border-radius:8px;cursor:pointer}#stamp-rally-popup .popup-content.stamp-rally-content{background:var(--component-bg);border:2px solid var(--primary-color);box-shadow:var(--shadow-md);color:var(--text-primary);width:90vw;max-width:500px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column}#stamp-rally-popup #close-stamp-rally-popup{position:absolute;top:15px;right:15px;width:48px;height:48px;min-width:48px;min-height:48px;background-color:rgba(0,0,0,.25);border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:background-color .2s}#stamp-rally-popup #close-stamp-rally-popup:hover{background-color:rgba(0,0,0,.35)}#stamp-rally-popup .popup-content h3{font-family:'Noto Sans JP',sans-serif;font-size:1.6em;color:var(--primary-darkened)!important;text-shadow:none;border-bottom:2px solid var(--primary-darkened)!important;padding-bottom:10px;margin-bottom:20px;margin-right:40px}.stamp-sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:15px;padding:15px;background-color:var(--body-bg);border-radius:var(--border-radius-sm);border:1px solid var(--border-color);min-height:120px;flex-grow:1}.stamp-card{border:2px dashed var(--border-color);border-radius:var(--border-radius-sm);aspect-ratio:1/1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transition:all .4s ease-in-out;padding:8px;box-sizing:border-box;background-color:transparent;box-shadow:none}.stamp-card.stamped{border-style:solid;border-color:var(--primary-darkened)!important;border-width:3px;background-color:var(--component-bg);transform:scale(1.05);box-shadow:0 4px 12px rgba(0,153,153,.25)}.stamp-card .stamp-image{width:60%;height:60%;object-fit:contain;border-radius:4px}.stamp-card .stamp-name{font-size:.75em;font-weight:700;color:var(--text-secondary);margin:4px 0 0 0;line-height:1.3}.stamp-card.stamped .stamp-name{font-family:'Noto Sans JP',sans-serif;color:var(--primary-darkened)!important;font-weight:700}.stamp-card.empty{background-color:rgba(0,0,0,.1)}#stamp-get-animation{position:absolute;top:15px;left:50%;width:60%;max-width:200px;transform:translateX(-50%);pointer-events:none;z-index:15;opacity:0}#stamp-get-animation.animate{animation:stamp-animation 1.2s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes stamp-animation{0%{transform:translateX(-50%) scale(2.5) rotate(-15deg);opacity:0}40%{transform:translateX(-50%) scale(1) rotate(5deg);opacity:1}70%{transform:translateX(-50%) scale(1.1) rotate(0);opacity:1}100%{transform:translateX(-50%) scale(1.1) translateY(-10px);opacity:0}}.popup-content.course-select-content{width:95vw;max-width:1200px;height:80vh;padding-top:20px;display:flex;flex-direction:column;overflow:hidden}.course-select-content h2{text-align:center;margin-top:0;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.course-filters{display:flex;gap:15px;margin-bottom:15px;flex-shrink:0}.course-filters label{display:none}.course-filters select{flex-grow:1;padding:10px;font-size:1em;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background-color:var(--component-bg)}.course-list-container{flex-grow:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;border:1px solid var(--border-color);border-radius:var(--border-radius-sm)}#course-list-table{width:100%;border-collapse:collapse;table-layout:auto}#course-list-table td,#course-list-table th{padding:12px 15px;text-align:left;border-bottom:1px solid var(--border-color);word-wrap:break-word;word-break:break-word;vertical-align:top}#course-list-table td:first-child,#course-list-table th:first-child{width:45%;max-width:none}#course-list-table td:nth-child(2),#course-list-table th:nth-child(2){width:8%;text-align:center;white-space:normal;word-break:keep-all;overflow-wrap:normal;vertical-align:top!important;padding:12px 15px!important}#course-list-table td:nth-child(3),#course-list-table th:nth-child(3){width:32%;max-width:none}#course-list-table td:nth-child(4),#course-list-table th:nth-child(4){width:15%;white-space:nowrap;text-align:center}#course-list-table th{background-color:var(--body-bg);position:sticky;top:0;font-size:.9em}#course-list-table tbody tr:hover{background-color:#f0f8ff}#course-list-table .course-name{font-weight:700}#course-list-table .course-meta{font-size:.8em;color:var(--text-secondary)}#course-list-table .course-distance-cell{display:table-cell;text-align:center;line-height:1.2;white-space:normal;word-break:keep-all;overflow-wrap:normal;vertical-align:top;padding:12px 15px}#course-list-table .course-distance-cell .distance-value{display:block;font-size:1em;font-weight:700;white-space:nowrap;word-break:keep-all;line-height:1.2}#course-list-table .course-distance-cell .distance-unit{display:block;font-size:.85em;margin-top:2px;white-space:nowrap;word-break:keep-all;line-height:1.2}#course-list-table .load-course-btn{padding:12px 6px;font-size:1.1em;font-weight:700;color:var(--white-color);background-color:var(--primary-color);border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .2s;writing-mode:vertical-rl;text-orientation:upright;min-width:2.5em;height:auto}#course-list-table .load-course-btn:hover{background-color:var(--primary-hover-color)}.footer-btn-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}.footer-btn-wrapper a,.footer-btn-wrapper button{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background-color:var(--primary-color);color:var(--text-on-primary)!important;border:none;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .2s ease;text-decoration:none;padding:0}.footer-btn-wrapper a:hover,.footer-btn-wrapper button:hover{background-color:var(--primary-hover-color);transform:translateY(-2px);box-shadow:var(--shadow-md)}.footer-btn-wrapper svg{width:28px;height:28px;stroke:currentColor!important;fill:none}.footer-btn-wrapper #camera-btn svg{fill:currentColor!important;stroke:none!important}.footer-btn-caption{font-size:12px;color:var(--text-secondary);font-weight:500}#fab-container-creation-tools{position:fixed;top:calc(56px + env(safe-area-inset-top) + 16px);left:16px;z-index:1011;display:flex;flex-direction:column;align-items:flex-start;gap:12px}#fab-container-creation-tools.open #fab-create-toggle{transform:rotate(45deg)}#fab-creation-options{display:flex;flex-direction:column;gap:12px;transition:opacity .2s ease-out,transform .2s ease-out}#fab-creation-options.hidden{opacity:0;transform:translateY(-10px);pointer-events:none}.fab-creation{display:flex;align-items:center;gap:10px;padding:8px 14px;background-color:var(--component-bg);border:1px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-md);cursor:pointer;font-size:.9em;font-weight:700;color:var(--text-primary);transition:all .2s ease;white-space:nowrap}.fab-creation:hover{transform:scale(1.05);border-color:var(--primary-color);color:var(--primary-color)}.fab-creation svg{width:20px;height:20px;flex-shrink:0}#top-left-fab-container{position:fixed;top:calc(env(safe-area-inset-top) + 4px);left:16px;z-index:1010;display:flex;flex-direction:column;align-items:flex-start;gap:12px;transition:top .4s cubic-bezier(.4, 0, .2, 1)}body.stats-panel-shown #top-left-fab-container{top:calc(env(safe-area-inset-top) + var(--stats-panel-height) + 4px)}#opacity-toggle-container{position:absolute;left:50%;bottom:calc(10px + 54px + 24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:400;transition:opacity .3s,bottom .3s}#opacity-toggle-container.hidden{opacity:0;pointer-events:none}#historical-map-switcher{position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background-color:rgba(255,255,255,.85);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:4px 12px;border-radius:25px;box-shadow:var(--shadow-md);z-index:1050;display:flex;align-items:center;gap:12px;color:var(--text-primary);font-weight:700;transition:opacity .3s,bottom .3s;min-height:40px;box-sizing:border-box}#historical-map-switcher.hidden{opacity:0;pointer-events:none}#historical-map-label{white-space:normal;font-size:.85em;line-height:1.3;max-width:120px;min-width:100px;text-align:center}.hist-nav-btn{background-color:var(--component-bg);border:1px solid var(--border-color);color:var(--text-primary);width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;font-size:1.1em;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background-color .2s,color .2s,transform .1s}.hist-nav-btn:hover:not(:disabled){background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.hist-nav-btn:active:not(:disabled){transform:scale(.9)}.hist-nav-btn:disabled{opacity:.4;cursor:not-allowed;background-color:rgba(200,200,200,.5)}#safe-area-top-bar{display:none;position:fixed;top:0;left:0;width:100%;height:env(safe-area-inset-top);background-color:var(--primary-color);z-index:1100}body.native-app #safe-area-top-bar{display:block!important}.header-hidden #fab-container-top-right{top:calc(env(safe-area-inset-top) + 4px)}.stats-panel-shown.header-hidden #fab-container-top-right{top:calc(env(safe-area-inset-top) + var(--stats-panel-height) + 4px)}#safe-area-bottom-bar{display:flex;position:fixed;bottom:0;left:0;width:100%;height:calc(24px + env(safe-area-inset-bottom));background-color:var(--primary-color);z-index:1100;justify-content:center;align-items:flex-start;box-sizing:border-box;padding-top:5px}#safe-area-bottom-bar p{margin:0;color:var(--text-on-primary)!important;font-size:.7em;white-space:nowrap}#safe-area-bottom-bar a{color:var(--text-on-primary)!important;text-decoration:underline}.mode-selection-option.disabled{opacity:.6;cursor:not-allowed;background-color:var(--body-bg)}.mode-selection-option.disabled label{color:var(--text-secondary)}@keyframes pulse-lock{0%{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}100%{transform:scale(1);opacity:.8}}.swipe-arrow{position:absolute;bottom:20%;opacity:.7;animation:swipe-up-animation 1.5s infinite}@keyframes swipe-up-animation{0%{transform:translateY(10px);opacity:0}50%{opacity:.8}100%{transform:translateY(-10px);opacity:0}}#tutorial-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);z-index:9990;transition:opacity .3s}#tutorial-step{position:absolute;background-color:var(--component-bg);padding:16px;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);width:280px;max-width:80vw;z-index:9999;border:2px solid var(--primary-color)}#tutorial-step h3{margin-top:0;font-size:1.2em;color:var(--primary-darkened)!important}#tutorial-step p{font-size:.95em;line-height:1.6;margin-bottom:20px}#tutorial-navigation{display:flex;justify-content:space-between;align-items:center}.tutorial-btn{padding:8px 16px;border-radius:var(--border-radius-sm);border:none;font-weight:700;cursor:pointer}.tutorial-btn.primary{background-color:var(--primary-color);color:#fff}.tutorial-btn.secondary{background-color:#e0e0e0;color:var(--text-primary)}.tutorial-btn.close{background-color:transparent;color:var(--text-secondary);font-weight:400;padding:8px;min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center}.tutorial-icon-inline{width:1.2em;height:1.2em;vertical-align:middle;margin:0 .1em -.2em .1em;fill:currentColor;stroke:currentColor;stroke-width:2}.tutorial-icon-inline path{stroke-width:0;fill:var(--primary-color)}.tutorial-icon-inline circle,.tutorial-icon-inline line,.tutorial-icon-inline path[d*='m21 15-5-5L5 21'],.tutorial-icon-inline rect{stroke:var(--primary-color);fill:none}.fab-label{font-size:10px;font-weight:700;color:var(--text-on-primary)!important;line-height:1;text-align:center;white-space:nowrap;letter-spacing:-.5px;display:block}#fab-create-toggle,#fab-load-course,#fab-lock-screen,#fab-pause,#fab-reset,#fab-resume,#fab-spot-create-toggle,#fab-start,#fab-stop{width:64px;height:64px;border-radius:20px;flex-direction:column;justify-content:center;padding:8px 4px;gap:8px;box-sizing:border-box;transition:transform .3s cubic-bezier(.4, 0, .2, 1)}#fab-create-toggle,#fab-load-course,#fab-spot-create-toggle{background-color:var(--primary-color);color:var(--text-on-primary)!important}#fab-create-toggle:hover,#fab-load-course:hover,#fab-spot-create-toggle:hover{background-color:var(--primary-hover-color)}#fab-create-toggle svg,#fab-load-course svg,#fab-spot-create-toggle svg{width:28px;height:28px;stroke:currentColor!important;fill:none}#fab-lock-screen svg,#fab-pause svg,#fab-reset svg,#fab-resume svg,#fab-start svg,#fab-stop svg{width:28px;height:28px}#fab-container-plotting .button-wrapper button svg,#fab-container-spot-creation .button-wrapper button svg{color:var(--white-color)}.os-prompt-instructions{text-align:left;margin:20px 0;padding:15px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background-color:var(--body-bg)}.os-prompt-instructions p{font-size:1em;line-height:1.5;margin:10px 0;font-weight:400}.os-prompt-instructions b{color:var(--primary-darkened)!important}.inline-icon{width:20px;height:20px;vertical-align:middle;margin:0 4px}.finish-tutorial-section{margin:20px 0;text-align:left}.tutorial-item{display:flex;align-items:center;gap:15px;margin-bottom:20px}.tutorial-item:last-child{margin-bottom:0}.tutorial-icon{flex-shrink:0;width:48px;height:48px;display:flex;justify-content:center;align-items:center;background-color:var(--body-bg);border-radius:12px;color:var(--primary-darkened)!important;border:1px solid var(--border-color)}.tutorial-icon svg{width:28px;height:28px}.tutorial-description h4{margin:0 0 4px 0;font-size:1.1em;color:var(--text-primary)}.tutorial-description p{margin:0;font-size:.9em;line-height:1.5;color:var(--text-secondary);font-weight:400}.popup-buttons.choice-buttons{flex-direction:column;gap:12px}.popup-buttons.choice-buttons button{flex:none;width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm,8px)}.popup-buttons.choice-buttons button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.maplibregl-ctrl-geolocate{display:none!important}.target-marker{width:24px;height:24px;background-color:#ff4e4e;border:2px solid #fff;border-radius:50%;box-shadow:0 0 10px rgba(255,78,78,.8);animation:pulse-marker 2s infinite}@keyframes pulse-marker{0%{transform:scale(.9);opacity:1}50%{transform:scale(1.2);opacity:.7}100%{transform:scale(.9);opacity:1}}.target-marker-icon{transform-origin:center;transition:transform .5s ease-out}#course-loaded-info p{text-align:center;margin-top:0;margin-bottom:0;font-size:1.1em;line-height:1.6}#course-loaded-info p small{font-size:.9em;color:var(--text-secondary)}#delete-point-confirm-popup .popup-buttons{flex-direction:row;gap:12px}#delete-point-confirm-popup .popup-buttons button{flex:1}.toggle-switch-container{position:relative;width:52px;height:30px;margin-bottom:2px}.toggle-switch-container input[type=checkbox]{opacity:0;width:0;height:0}.toggle-switch-label{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:34px}.toggle-switch-label:before{position:absolute;content:"";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-switch-label{background-color:var(--success-color)}input:checked+.toggle-switch-label:before{transform:translateX(22px)}#plotting-distance-display{display:flex;align-items:center;padding:0 16px;font-size:14px;font-weight:700;color:var(--text-primary);background-color:rgba(245,245,247,.7);border-radius:16px;height:32px;white-space:nowrap;border:1px solid var(--border-color)}#fab-container-plotting{align-items:center}#plotting-info-controls{display:flex;flex-direction:column;align-items:center;gap:8px}#plotting-info-controls .button-wrapper .button-label{margin-top:2px}.popup-buttons button.with-icon{display:flex;align-items:center;justify-content:center;gap:8px}#fab-container-plotting-help{position:fixed;top:calc(env(safe-area-inset-top) + 16px);right:16px;left:auto;z-index:1011;transition:opacity .3s}#button-container[data-state=finished]{display:flex;flex-wrap:wrap;background:linear-gradient(135deg,#077 0,#00b3b3 100%);padding-top:16px;padding-bottom:16px;gap:8px;border-top:none}.popup-content{position:relative;background-color:var(--white-color);padding:20px;border-radius:10px;box-shadow:0 2px 10px rgba(0,0,0,.2);text-align:center;max-width:90%;margin:20px auto;overflow-y:auto;max-height:80vh}#layout-choice-popup .popup-content{width:320px}#layout-choice-popup .popup-section{margin-bottom:12px;text-align:left}#layout-choice-popup .popup-section:first-of-type{margin-top:0}#layout-choice-popup .popup-section:last-of-type{margin-bottom:0}#layout-choice-popup .popup-section label{font-weight:700;font-size:.9em;color:var(--text-secondary);margin-bottom:8px;display:block}.layout-icon-buttons{display:flex;flex-wrap:nowrap;gap:10px;justify-content:flex-start}.layout-icon-btn{flex:0 0 auto;width:50px;height:50px;padding:8px;border:2px solid var(--border-color);border-radius:var(--border-radius-sm);background-color:var(--component-bg);cursor:pointer;transition:all .2s ease}.layout-icon-btn:hover{border-color:var(--primary-hover-color);background-color:#f5f5f5}.layout-icon-btn.active{border-color:var(--primary-color);background-color:var(--primary-color)}.layout-icon-btn svg{width:100%;height:100%}.layout-icon-btn svg rect{fill:var(--text-secondary);transition:fill .2s ease}.layout-icon-btn.active svg rect{fill:var(--white-color)}#layout-preview-container{position:relative;width:100%;aspect-ratio:1.25/1;background-color:var(--body-bg);border-radius:var(--border-radius-sm);overflow:hidden;border:1px solid var(--border-color)}#layout-preview-thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}#track-preview-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;padding:12px;box-sizing:border-box;transition:all .3s ease-in-out}#track-preview-image.layout-center{top:50%;left:50%;transform:translate(-50%,-50%);width:65%;height:65%;padding:6px}#track-preview-image.layout-full{top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;padding:0}#track-preview-image.layout-top-left{top:0;left:0;transform:none;width:50%;height:50%;padding:6px}#track-preview-image.layout-top-center{top:0;left:50%;transform:translateX(-50%);width:50%;height:50%;padding:6px}#track-preview-image.layout-top-right{top:0;right:0;left:auto;transform:none;width:50%;height:50%;padding:6px}.background-change-buttons{display:flex;gap:12px;justify-content:center;margin:8px 0}.background-change-buttons button,.background-change-buttons button.popup-btn-secondary{flex:1;padding:14px 16px!important;font-size:.95em!important;font-weight:600!important;border:2px solid var(--primary-color)!important;border-radius:8px!important;background-color:var(--white-color)!important;color:var(--primary-color)!important;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px rgba(0,0,0,.1)!important;min-height:48px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.background-change-buttons button.popup-btn-secondary:hover,.background-change-buttons button:hover{background-color:var(--primary-color)!important;color:var(--white-color)!important;box-shadow:0 4px 8px rgba(0,153,153,.3)!important;transform:translateY(-1px)}.background-change-buttons button.popup-btn-secondary:active,.background-change-buttons button:active{background-color:var(--primary-hover-color)!important;box-shadow:0 2px 4px rgba(0,153,153,.2)!important;transform:translateY(0)}#export-color-picker{width:100%;height:44px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;padding:0}#fab-edit-profile{display:none!important}.top-control-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;box-shadow:var(--shadow-md);transition:background-color .2s ease,transform .2s ease;background-color:#87cefa;color:#fff;font-size:24px;font-weight:700;line-height:1}.top-control-button:hover{background-color:#64b5f6;transform:scale(1.05)}.top-control-button:active{transform:scale(.95)}.button-row-secondary{display:flex;flex-direction:row;gap:12px}.button-row-secondary>button{flex:1}#update-notification{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%) translateY(100px);background-color:#4a148c;color:#fff;padding:16px 20px;border-radius:28px;box-shadow:var(--shadow-md);z-index:5000;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:280px;max-width:90%;opacity:0;visibility:hidden;transition:all .4s cubic-bezier(.4, 0, .2, 1)}#update-notification:not(.hidden){opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}#update-notification p{margin:0;font-weight:700;font-size:.95em;text-align:center}#update-notification .update-buttons{display:flex;gap:10px;width:100%;justify-content:center}#update-notification button{padding:10px 20px;border-radius:20px;border:none;color:#fff;font-weight:700;cursor:pointer;white-space:nowrap;transition:background-color .2s,transform .1s;flex:1;min-width:100px}#update-notification #update-now-btn{background-color:#6a1b9a}#update-notification #update-now-btn:hover{background-color:#7b1fa2;transform:scale(1.05)}#update-notification #update-now-btn:active{transform:scale(.95)}#update-notification #update-later-btn{background-color:rgba(255,255,255,.35)}#update-notification #update-later-btn:hover{background-color:rgba(255,255,255,.45);transform:scale(1.05)}#update-notification #update-later-btn:active{transform:scale(.95)}.fab-with-label{flex-direction:column;justify-content:center;padding:4px 2px;gap:2px;box-sizing:border-box}.fab-with-label svg{width:24px!important;height:24px!important}.fab-with-label.secondary .fab-label{color:var(--text-primary);display:block!important}#fab-opacity-toggle{flex-direction:column!important;justify-content:center!important;padding:4px 2px!important;gap:2px!important;box-sizing:border-box!important;display:flex!important}#fab-opacity-toggle svg{width:24px!important;height:24px!important;flex-shrink:0}#fab-opacity-toggle .fab-label{display:block!important;color:var(--text-primary)!important;font-size:8px!important;font-weight:700!important;line-height:1!important;text-align:center!important;white-space:nowrap!important;letter-spacing:-.5px!important;margin-top:0!important;padding:0!important;visibility:visible!important;opacity:1!important}#opacity-toggle-container .fab-label{display:block!important;visibility:visible!important;opacity:1!important}.large-action-button.hidden{display:none}#track-preview-compact-container{display:none!important}#fab-container-rerouting-controls{background-color:rgba(0,0,0,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);width:95%;max-width:400px;padding:0 10px;gap:0}#fab-container-rerouting-controls .button-group{display:flex;justify-content:space-around;align-items:flex-end;width:100%;padding:10px 0}#fab-container-rerouting-controls .button-label{color:var(--white-color);text-shadow:1px 1px 2px rgba(0,0,0,.7)}#rerouting-confirm-btn{background-color:var(--success-color)}#rerouting-confirm-btn:hover{background-color:var(--success-hover-color)}#rerouting-next-btn{background-color:var(--primary-color)}#rerouting-next-btn:hover{background-color:var(--primary-hover-color)}#rerouting-cancel-btn{background-color:var(--danger-color)}#rerouting-cancel-btn:hover{background-color:var(--danger-hover-color)}#fab-container-rerouting-controls .button-wrapper button svg{color:var(--white-color)}#my-courses-table{width:100%;border-collapse:collapse}#my-courses-table td,#my-courses-table th{padding:12px 15px;text-align:left;border-bottom:1px solid var(--border-color)}#my-courses-table th{background-color:var(--body-bg);position:sticky;top:0;font-size:.9em}#my-courses-table tbody tr:hover{background-color:#f0f8ff}#my-courses-table .my-course-name{font-weight:700}#my-courses-table .my-course-meta{font-size:.8em;color:var(--text-secondary)}.my-course-actions{display:grid;grid-template-columns:repeat(2,auto);gap:8px;width:max-content;margin-left:auto}.my-course-action-btn{padding:6px 10px;font-size:.85em;font-weight:700;border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s}.my-course-action-btn.primary{background-color:var(--primary-color);color:#fff}.my-course-action-btn.primary:hover{background-color:var(--primary-hover-color)}.my-course-action-btn.secondary{background-color:#e9ecef;color:var(--text-primary)}.my-course-action-btn.secondary:hover{background-color:#dee2e6}.my-course-action-btn.danger{background-color:var(--danger-color);color:#fff}.my-course-action-btn.danger:hover{background-color:var(--danger-hover-color)}body[data-app-state=plotting] #fab-container-left{bottom:calc(180px + env(safe-area-inset-bottom))}body[data-app-state=plotting] #fab-container-left>.fab:not(#changeMapStyleButton){display:none}.story-link-button{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;margin-bottom:20px;width:100%;box-sizing:border-box;background:linear-gradient(135deg,var(--gold-color),#ffc107);color:var(--dark-purple-bg);border-radius:var(--border-radius-md);text-decoration:none;font-size:1.1em;font-weight:700;box-shadow:0 4px 15px rgba(0,0,0,.2);transition:all .2s ease-in-out}.story-link-button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px rgba(0,0,0,.25)}.story-link-button svg{width:24px;height:24px;stroke-width:2.5;flex-shrink:0}.popup-section-divider{height:1px;background-color:var(--border-color);margin:0 -24px 20px -24px}#create-course-choice-popup .popup-content h3{margin-top:0}#button-container[data-state=finished]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:stretch;padding:10px 12px;gap:10px;background:linear-gradient(160deg,rgba(0,30,30,.6) 0,rgba(0,10,10,.6) 100%);border-top:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.3)}#exportCombinedButton{order:-1;flex:1.8;min-width:90px;background:linear-gradient(135deg,#00c9c9 0,#00f2f2 100%);border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 15px rgba(0,242,242,.6),0 8px 20px rgba(0,0,0,.3);transition:all .3s ease-out}#exportCombinedButton span,#exportCombinedButton svg{color:#033;text-shadow:1px 1px 2px rgba(255,255,255,.2)}#exportCombinedButton:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 8px 25px rgba(0,242,242,.8),0 12px 30px rgba(0,0,0,.4);background:linear-gradient(135deg,#00f2f2 0,#00c9c9 100%)}#button-container[data-state=finished] .large-action-button{flex:1;min-width:0;height:55px;padding:6px 2px;font-size:10px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);box-shadow:0 2px 5px rgba(0,0,0,.3);transition:all .2s ease-in-out;border-radius:var(--border-radius-md);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;cursor:pointer}#button-container[data-state=finished] .large-action-button:not(#exportCombinedButton):hover{background-color:rgba(255,255,255,.25);transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.4)}#button-container[data-state=finished] .large-action-button svg{width:26px;height:26px;margin-bottom:3px;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.5)}#button-container[data-state=finished] .large-action-button span{color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:center;font-weight:700;line-height:1.2;text-shadow:1px 1px 2px rgba(0,0,0,.5)}#layout-preview-container.loading::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);z-index:5;opacity:1;visibility:visible;transition:opacity .2s,visibility .2s}.spinner-local{position:absolute;top:50%;left:50%;width:40px;height:40px;margin-top:-20px;margin-left:-20px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;z-index:10}#my-courses-table td,#my-courses-table th{padding:12px 15px;border-bottom:1px solid var(--border-color);vertical-align:middle}#my-courses-table td:first-child,#my-courses-table th:first-child{text-align:left}#my-courses-table .my-course-col-numeric{text-align:right;width:1%;white-space:nowrap}#my-courses-table th.my-course-col-actions{text-align:right}#my-courses-table td.my-course-col-actions{display:flex;justify-content:flex-end}.my-course-actions{display:grid;grid-template-columns:repeat(2,auto);gap:8px}#custom-confirm-popup .popup-content{width:300px;max-width:90%}#custom-confirm-popup #custom-confirm-message{font-weight:400;font-size:1em;line-height:1.6;margin-bottom:24px;white-space:pre-wrap}#custom-confirm-popup .popup-buttons{flex-direction:row;gap:12px}#custom-confirm-popup .popup-buttons button{flex:1}#custom-confirm-popup{z-index:3001}#fab-container-rerouting-controls{flex-direction:column;align-items:center;gap:12px;z-index:10!important;position:relative}.rerouting-explanation-box{background-color:rgba(255,255,255,.9);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);color:var(--text-primary);padding:12px 16px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.2);width:100%;max-width:380px;box-sizing:border-box;text-align:center;z-index:10!important;position:relative}.rerouting-explanation-box h4{margin:0 0 8px 0;font-size:1.1em;color:var(--primary-darkened)!important}.rerouting-explanation-box p{margin:0;font-size:.85em;line-height:1.6;color:var(--text-secondary)}.popup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.popup-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:background-color .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}.popup-btn-icon{margin-right:8px}.popup-btn.primary{background-color:var(--primary-color,#007aff);color:#fff}.popup-btn.primary:hover{background-color:var(--primary-hover-color);box-shadow:0 4px 12px rgba(0,0,0,.2)}.popup-btn.secondary{background-color:#f0f0f0;color:#000}.popup-btn.secondary:hover{background-color:#e0e0e0;color:#000}.popup-content.help-content{display:flex;flex-direction:column;max-height:85vh}.scrollable-help-content{flex:1;overflow-y:auto;padding:0 15px;margin:0 -15px}.popup-footer{padding-top:15px;text-align:center}.user-manual-link{display:block;margin-bottom:15px}.mode-selection-group{margin:12px 0}.mode-selection-group-label{font-weight:700;font-size:.9em;color:var(--text-secondary);margin-bottom:8px;display:block;text-align:left}.mode-selection-option input[type=radio]{width:20px;height:20px;accent-color:var(--primary-color);flex-shrink:0}#add-to-home-popup{background-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}#web-ar-link-wrapper #web-ar-link{background-color:#6a1b9a}#web-ar-link-wrapper #web-ar-link:hover{background-color:#4a148c}#fab-load-course{background-color:var(--primary-color)}#fab-load-course:hover{background-color:var(--primary-hover-color)}#fab-course-list{display:none!important}#layout-choice-popup .popup-content{display:flex;flex-direction:column;padding:0;max-height:90vh;overflow:hidden;width:340px}#layout-choice-popup .popup-content>p{margin:0;padding:16px;border-bottom:1px solid var(--border-color);background-color:var(--white-color);flex-shrink:0;font-size:1.1em}.popup-scroll-body{flex:1;overflow-y:auto;padding:20px;-webkit-overflow-scrolling:touch}#layout-choice-popup .popup-buttons{margin:0;padding:12px 16px;border-top:1px solid var(--border-color);background-color:var(--white-color);flex-shrink:0;box-shadow:0 -2px 10px rgba(0,0,0,.05);gap:12px}@media (max-height:600px){#layout-choice-popup .popup-content{height:95vh}#layout-preview-container{max-height:180px;object-fit:contain}}#lock-screen-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:2147483647!important;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;color:#fff;padding-bottom:calc(30px + env(safe-area-inset-bottom));box-sizing:border-box;touch-action:none;transition:background-color .5s ease,backdrop-filter .5s ease}#lock-screen-overlay p{order:1;font-size:1.1em;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.7);margin:0;margin-bottom:5px;padding:8px 16px;background-color:rgba(0,0,0,.5);border-radius:20px}#lock-screen-overlay .lock-icon{order:2;margin-bottom:0;animation:pulse-lock 2s infinite;color:gold}#lock-screen-overlay.low-power-blackout{background-color:#000!important;backdrop-filter:none!important;cursor:pointer}#lock-screen-overlay.low-power-blackout>*{display:none!important}#fab-tutorial{display:flex!important;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;min-height:48px;background:0 0;border:none;color:#fff;cursor:pointer;border-radius:50%;transition:background-color .2s ease}#fab-tutorial:hover{background-color:rgba(255,255,255,.25)}#fab-tutorial svg{width:24px;height:24px;stroke:currentColor;fill:none}body.header-hidden #fab-tutorial{display:none!important}body[data-app-state=initial] #fab-tutorial{display:flex!important;visibility:visible!important;opacity:1!important;z-index:9999}.maplibregl-ctrl-bottom-right{right:90px!important;bottom:2px!important;margin:0!important;z-index:1000!important;max-width:calc(100vw - 160px)!important}.maplibregl-ctrl-attrib.maplibregl-compact{min-height:24px!important;margin:0!important;background-color:rgba(255,255,255,.9)!important}.maplibregl-ctrl-attrib-inner{white-space:normal!important;line-height:1.2!important;display:inline-block}.custom-marker{width:32px;height:32px;background-color:#f78b27!important;border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.3)}.marker-number{transform:rotate(45deg);color:#fff;font-weight:700;font-size:14px;pointer-events:none}.custom-marker.collected{background-color:#888!important}.popup-no{display:inline-block;background:#333;color:#fff;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:700;margin-bottom:4px}.footer-btn-wrapper a,.footer-btn-wrapper button{color:var(--text-on-primary)!important}#fab-create-toggle,#fab-load-course,#fab-reset,#fab-spot-create-toggle{color:var(--text-on-primary)!important}#fab-create-toggle svg,#fab-load-course svg,#fab-reset svg,#fab-spot-create-toggle svg,.footer-btn-wrapper svg{stroke:currentColor!important;color:currentColor!important;fill:none}.footer-btn-wrapper #camera-btn svg{fill:currentColor!important;stroke:none!important}#camera-btn-wrapper{display:none!important}.message-footer{display:flex!important;justify-content:center!important;align-items:flex-start!important;gap:15px!important;padding:10px 0!important;flex-wrap:wrap!important}#audio-replay-btn-wrapper,#quiz-btn-wrapper,#spot-url-link-wrapper,#web-ar-link-wrapper,.footer-btn-wrapper{flex-direction:column!important;justify-content:center!important;align-items:center!important;width:60px!important;margin:0!important;padding:0!important}#audio-replay-btn,#quiz-btn,#spot-url-link,#web-ar-link{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;border-radius:50%!important;padding:0!important;margin:0 0 4px 0!important;font-size:0!important;display:flex!important;align-items:center;justify-content:center;border:none!important;color:#fff!important;box-shadow:0 4px 8px rgba(0,0,0,.2)!important;text-decoration:none!important;transition:transform .2s,box-shadow .2s}#audio-replay-btn:hover,#quiz-btn:hover,#spot-url-link:hover,#web-ar-link:hover{transform:translateY(-3px);box-shadow:0 6px 12px rgba(0,0,0,.3)!important;filter:brightness(1.1)}#audio-replay-btn svg,#quiz-btn svg,#spot-url-link svg,#web-ar-link svg{width:24px!important;height:24px!important;stroke:#ffffff!important;fill:none;margin:0!important}.footer-btn-caption{display:block!important;font-size:10px!important;color:#333!important;text-align:center!important;font-weight:700!important;line-height:1.2!important;white-space:nowrap!important}#spot-url-link-wrapper .footer-btn-caption{font-size:0!important}#spot-url-link-wrapper .footer-btn-caption::after{content:"URL";font-size:10px!important}#web-ar-link-wrapper .footer-btn-caption{font-size:0!important}#web-ar-link-wrapper .footer-btn-caption::after{content:"AR";font-size:10px!important}#audio-replay-btn-wrapper .footer-btn-caption{font-size:0!important}#audio-replay-btn-wrapper .footer-btn-caption::after{content:"ガイド";font-size:10px!important}#quiz-btn-wrapper .footer-btn-caption{font-size:0!important}#quiz-btn-wrapper .footer-btn-caption::after{content:"クイズ";font-size:10px!important}#spot-url-link{background-color:#1565c0!important}#web-ar-link{background-color:#6a1b9a!important}#quiz-btn{background-color:#00695c!important}#audio-replay-btn{background-color:#c2185b!important}#quiz-modal{z-index:9500!important}#quiz-modal .popup-content{max-height:85vh;overflow:visible;display:flex;flex-direction:column}#quiz-result-area{margin-top:20px;border-top:1px solid #ddd;padding-top:15px;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}#quiz-result-title{margin:0 0 10px 0;flex-shrink:0}#quiz-result-area .popup-buttons{flex-shrink:0!important;margin-top:15px!important;position:relative!important;z-index:1000!important;pointer-events:auto!important;display:flex!important;flex-direction:column!important;gap:12px!important}#close-quiz-btn,#quiz-result-area .popup-buttons button{pointer-events:auto!important;position:relative!important;z-index:1001!important;cursor:pointer!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(0,0,0,0.1)!important;user-select:none!important}#quiz-modal #close-quiz-btn,#quiz-result-area #close-quiz-btn,#quiz-result-area .popup-buttons #close-quiz-btn{pointer-events:auto!important;cursor:pointer!important;z-index:1001!important;position:relative!important;touch-action:manipulation!important;-webkit-tap-highlight-color:rgba(0,0,0,0.1)!important;user-select:none!important}#quiz-question{text-align:left;font-weight:700;margin-bottom:15px;word-wrap:break-word;overflow-wrap:break-word}#completion-popup,#export-choice-popup,#goal-popup,#image-message-container,#image-message-popup,.popup-overlay{z-index:9000!important}#finish-tutorial-popup{z-index:10000!important}.maplibregl-ctrl-attrib,.maplibregl-ctrl-bottom-right{z-index:0!important}#historical-map-switcher,#opacity-toggle-container{z-index:100!important}#fab-container-left,#fab-container-top-right,.fab-container{z-index:1100!important}#fab-ar-camera,#fab-create-toggle,#fab-load-course,#fab-lock-screen,#fab-pause,#fab-plotting-cancel,#fab-plotting-confirm,#fab-plotting-undo,#fab-reset,#fab-resume,#fab-spot-create-toggle,#fab-stamp-rally,#fab-start,#fab-stop,#fab-stop-animation,#fab-track-reload{color:#fff!important}#fab-create-toggle .fab-label,#fab-load-course .fab-label,#fab-lock-screen .fab-label,#fab-pause .fab-label,#fab-reset .fab-label,#fab-resume .fab-label,#fab-spot-create-toggle .fab-label,#fab-stamp-rally .fab-label,#fab-start .fab-label,#fab-stop .fab-label,#fab-track-reload .fab-label{color:#fff!important}#fab-ar-camera svg,#fab-create-toggle svg,#fab-load-course svg,#fab-lock-screen svg,#fab-pause svg,#fab-plotting-cancel svg,#fab-plotting-confirm svg,#fab-plotting-undo svg,#fab-reset svg,#fab-resume svg,#fab-spot-create-toggle svg,#fab-stamp-rally svg,#fab-start svg,#fab-stop svg,#fab-stop-animation svg,#fab-track-reload svg{stroke:#ffffff!important;color:#fff!important;stroke-width:3!important;fill:none}#camera-btn svg{fill:#ffffff!important;stroke:none!important}#fab-container-left .fab,#fab-container-left .fab-label,#fab-container-left button,#fab-container-top-right .fab,#fab-container-top-right .fab-label,#fab-container-top-right button,.fab.secondary:not(.active){color:#333!important}#fab-container-left svg,#fab-container-top-right svg,.fab.secondary:not(.active) svg{stroke:#333333!important;color:#333!important}#fab-reset{background-color:#546e7a!important;border:none!important}#fab-reset:hover{background-color:#455a64!important}#fab-create-toggle,#fab-load-course,#fab-spot-create-toggle{background-color:#3949ab!important;border:none!important}#fab-create-toggle:hover,#fab-load-course:hover,#fab-spot-create-toggle:hover{background-color:#283593!important}#fab-ar-camera .fab-label,#fab-ar-camera span{display:none!important}#navi-mode-btn.active,#orientation-btn.active,#pitch-toggle-btn.active,#recenter-map-btn.active{background-color:#099!important;border-color:#099!important;color:#fff!important}#navi-mode-btn.active svg,#orientation-btn.active svg,#pitch-toggle-btn.active svg,#recenter-map-btn.active svg{stroke:#ffffff!important;color:#fff!important;fill:none}.maplibregl-ctrl-attrib{position:fixed!important;right:90px!important;bottom:calc(25px + env(safe-area-inset-bottom))!important;transition:bottom .3s ease-in-out!important;top:auto!important;left:auto!important;z-index:0!important;display:flex!important;flex-direction:row!important;align-items:flex-end!important;min-height:14px!important;padding:0 8px 0 8px!important;background-color:rgba(255,255,255,.8)!important;border-radius:10px;font-size:10px!important;line-height:1.1!important;color:#000!important;visibility:visible!important;opacity:1!important}.maplibregl-ctrl-attrib.is-finished{bottom:calc(100px + env(safe-area-inset-bottom))!important}.maplibregl-ctrl-attrib-button{display:none!important}.maplibregl-ctrl-attrib a,.maplibregl-ctrl-attrib-inner{color:#06c!important;text-decoration:underline!important;font-weight:700;display:inline-block!important;vertical-align:bottom!important;line-height:1!important}.maplibregl-marker{z-index:900!important}#fab-container-left,.fab-container{position:fixed!important;transition:bottom .3s ease-in-out!important;z-index:1100!important}#historical-map-switcher,#opacity-toggle-container,.maplibregl-ctrl-attrib{position:fixed!important;transition:bottom .3s ease-in-out!important;z-index:100!important}#fab-container-left,#historical-map-switcher,.fab-container{bottom:calc(40px + env(safe-area-inset-bottom))!important}#fab-container-left.is-finished,#historical-map-switcher.is-finished,.fab-container.is-finished{bottom:calc(120px + env(safe-area-inset-bottom))!important}#opacity-toggle-container{bottom:calc(100px + env(safe-area-inset-bottom))!important}#opacity-toggle-container.is-finished{bottom:calc(180px + env(safe-area-inset-bottom))!important}.maplibregl-ctrl-attrib{bottom:calc(25px + env(safe-area-inset-bottom))!important;z-index:1!important;right:90px!important;top:auto!important;left:auto!important;display:flex!important}.maplibregl-ctrl-attrib.is-finished{bottom:calc(105px + env(safe-area-inset-bottom))!important}.goal-results-section{margin-bottom:24px}.goal-results-info-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width:600px){.goal-results-info-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:900px){.goal-results-info-grid{grid-template-columns:repeat(3,1fr)}}.goal-results-info-item{display:flex;flex-direction:column;padding:8px 12px;background-color:#fff;border-radius:6px;border:1px solid #e0e0e0}.goal-results-info-label{font-size:.85em;color:#666;margin-bottom:4px}.goal-results-info-value{font-size:1.1em;font-weight:700;color:#333}.goal-results-spot-card{padding:12px;margin-bottom:12px;background-color:#fff;border-radius:8px;border:1px solid #e0e0e0;border-left:4px solid #2196f3}.goal-results-spot-card.not-arrived{opacity:.6;border-left-color:#9e9e9e}.goal-results-spot-name{font-size:1.1em;font-weight:700;color:#333;margin-bottom:8px}.goal-results-spot-details{display:flex;flex-direction:column;gap:4px;font-size:.9em;color:#666}.goal-results-spot-detail-item{display:flex;align-items:center;gap:8px}.goal-results-score-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:8px;background-color:#fff;border-radius:6px}.goal-results-score-item.bonus{color:#4caf50}.goal-results-score-item.penalty{color:#f44336}.goal-results-score-item.total{border-top:2px solid #e0e0e0;margin-top:12px;padding-top:12px;font-weight:700;font-size:1.1em}.goal-results-download-btn:hover{opacity:.9;transform:translateY(-1px);transition:all .2s}.goal-results-download-btn:active{transform:translateY(0)}#initial-loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fff;z-index:99999;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:opacity .5s ease}#loading-logo-img{display:none!important}#initial-loading-screen .spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #333;border-radius:50%;animation:spin 1s linear infinite}#myImage{display:none}#spot-points-info{display:none}#quiz-points-badge{display:none}#camera-btn-wrapper{display:none}#spot-url-link-wrapper{display:none}#web-ar-link-wrapper{display:none}#audio-replay-btn-wrapper{display:none}#quiz-btn-wrapper{display:none}#quiz-btn{background-color:#ff9800}#share-popup .popup-section{margin-bottom:16px}#share-url-input-label{display:none}#share-url-input-container{display:flex;gap:8px}#share-url-input{flex-grow:1}#copy-share-url-btn{flex-shrink:0;padding:8px 12px;font-size:.9em}#share-popup .popup-section-center{text-align:center}#share-qrcode-caption{font-size:.8em;color:var(--text-secondary);margin-top:8px}#share-course-native-btn{display:none}#questionnaire-popup .popup-content{width:320px}#questionnaire-popup .popup-content p{font-weight:400;font-size:.9em;line-height:1.6;margin-bottom:20px}#questionnaire-popup label{text-align:left;margin-bottom:4px}.footer-link-section{margin:10px 24px 20px 24px;text-align:center}.footer-link-section a{display:inline-flex;align-items:center;justify-content:center;color:var(--primary-color);text-decoration:none;font-size:.9em;padding:8px 12px;border-radius:4px;transition:background-color .2s}.footer-link-section a:hover{background-color:rgba(0,153,153,.1)}.footer-link-section svg{margin-right:8px}.footer-link-section p{font-size:.8rem;color:#888;margin-top:5px}#share-popup .popup-section{margin-bottom:16px}#share-popup .popup-section-center{text-align:center}#share-url-input-label{display:none}#share-url-input-container{display:flex;gap:8px}#share-url-input{flex-grow:1}#copy-share-url-btn{flex-shrink:0;padding:8px 12px;font-size:.9em}#share-qrcode-caption{font-size:.8em;color:var(--text-secondary);margin-top:8px}#share-course-native-btn{display:none}#questionnaire-popup .popup-content{width:320px}#questionnaire-popup .popup-content p{font-weight:400;font-size:.9em;line-height:1.6;margin-bottom:20px}#completion-popup label,#handover-popup label,#questionnaire-popup label{text-align:left;margin-bottom:4px}#handover-popup .popup-content{width:320px}#handover-popup .popup-content p{font-weight:400;font-size:.9em;line-height:1.6;margin-bottom:20px}#handover-color-section{display:flex;justify-content:center;align-items:center;gap:15px}#handover-color-picker-label{font-weight:700;margin:0}#handover-color-picker{width:80px;height:44px;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;padding:0}#handover-popup .popup-buttons.choice-buttons{margin-top:24px}.popup-buttons.margin-bottom{margin-bottom:16px}.popup-buttons.margin-bottom-large{margin-bottom:24px}.popup-buttons.margin-top{margin-top:20px}.popup-buttons.flex-row{flex-direction:row;gap:10px}.popup-buttons.flex-row button{flex:1}#start-tutorial-manual-btn{background-color:#ff9800;border-color:#ff9800;color:#fff}.os-prompt-instructions{margin:12px 0 0 0}.os-prompt-instructions.margin-top{margin-top:12px}.os-prompt-instructions.text-left{text-align:left;margin:12px 0}.os-prompt-instructions p.title{text-align:center;font-weight:700;font-size:1.1em;color:var(--primary-color)}#custom-alert-message,#custom-confirm-message{font-weight:400;font-size:1em;line-height:1.6;margin-bottom:24px}#custom-confirm-message{margin-bottom:0}#export-choice-copy-sns-btn{display:none}#spot-desc-input{resize:vertical}.tutorial-sub-text{margin-top:0}#fab-ar-camera{background-color:#6a1b9a}#fab-help-tutorial{background-color:#42a5f5;color:#fff;font-size:24px;font-weight:700}.footer-link-section{margin:10px 24px 20px 24px;text-align:center}.footer-link-section a{display:flex;align-items:center;justify-content:center;width:100%;padding:12px;background-color:#e91e63;color:#fff;text-decoration:none;border-radius:8px;font-weight:700;font-size:.95rem;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:transform .1s}.footer-link-section a:hover{transform:scale(.98)}.footer-link-section a:active{transform:scale(.98)}.footer-link-section svg{margin-right:8px}