.Vue-Toastification__container{z-index:9999;position:fixed;padding:4px;width:600px;box-sizing:border-box;display:flex;min-height:100%;color:#fff;flex-direction:column;pointer-events:none}@media only screen and (min-width:600px){.Vue-Toastification__container.top-center,.Vue-Toastification__container.top-left,.Vue-Toastification__container.top-right{top:1em}.Vue-Toastification__container.bottom-center,.Vue-Toastification__container.bottom-left,.Vue-Toastification__container.bottom-right{bottom:1em;flex-direction:column-reverse}.Vue-Toastification__container.bottom-left,.Vue-Toastification__container.top-left{left:1em}.Vue-Toastification__container.bottom-left .Vue-Toastification__toast,.Vue-Toastification__container.top-left .Vue-Toastification__toast{margin-right:auto}@supports not (-moz-appearance:none){.Vue-Toastification__container.bottom-left .Vue-Toastification__toast--rtl,.Vue-Toastification__container.top-left .Vue-Toastification__toast--rtl{margin-right:unset;margin-left:auto}}.Vue-Toastification__container.bottom-right,.Vue-Toastification__container.top-right{right:1em}.Vue-Toastification__container.bottom-right .Vue-Toastification__toast,.Vue-Toastification__container.top-right .Vue-Toastification__toast{margin-left:auto}@supports not (-moz-appearance:none){.Vue-Toastification__container.bottom-right .Vue-Toastification__toast--rtl,.Vue-Toastification__container.top-right .Vue-Toastification__toast--rtl{margin-left:unset;margin-right:auto}}.Vue-Toastification__container.bottom-center,.Vue-Toastification__container.top-center{left:50%;margin-left:-300px}.Vue-Toastification__container.bottom-center .Vue-Toastification__toast,.Vue-Toastification__container.top-center .Vue-Toastification__toast{margin-left:auto;margin-right:auto}}@media only screen and (max-width:600px){.Vue-Toastification__container{width:100vw;padding:0;left:0;margin:0}.Vue-Toastification__container .Vue-Toastification__toast{width:100%}.Vue-Toastification__container.top-center,.Vue-Toastification__container.top-left,.Vue-Toastification__container.top-right{top:0}.Vue-Toastification__container.bottom-center,.Vue-Toastification__container.bottom-left,.Vue-Toastification__container.bottom-right{bottom:0;flex-direction:column-reverse}}.Vue-Toastification__toast{display:inline-flex;position:relative;max-height:800px;min-height:64px;box-sizing:border-box;margin-bottom:1rem;padding:22px 24px;border-radius:8px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);justify-content:space-between;font-family:Lato,Helvetica,Roboto,Arial,sans-serif;max-width:600px;min-width:326px;pointer-events:auto;overflow:hidden;transform:translateZ(0);direction:ltr}.Vue-Toastification__toast--rtl{direction:rtl}.Vue-Toastification__toast--default{background-color:#1976d2;color:#fff}.Vue-Toastification__toast--info{background-color:#2196f3;color:#fff}.Vue-Toastification__toast--success{background-color:#4caf50;color:#fff}.Vue-Toastification__toast--error{background-color:#ff5252;color:#fff}.Vue-Toastification__toast--warning{background-color:#ffc107;color:#fff}@media only screen and (max-width:600px){.Vue-Toastification__toast{border-radius:0;margin-bottom:.5rem}}.Vue-Toastification__toast-body{flex:1;line-height:24px;font-size:16px;word-break:break-word;white-space:pre-wrap}.Vue-Toastification__toast-component-body{flex:1}.Vue-Toastification__toast.disable-transition{animation:none!important}.Vue-Toastification__close-button{font-weight:700;font-size:24px;line-height:24px;background:transparent;outline:none;border:none;padding:0;padding-left:10px;cursor:pointer;transition:.3s ease;align-items:center;color:#fff;opacity:.3;transition:visibility 0s,opacity .2s linear}.Vue-Toastification__close-button:focus,.Vue-Toastification__close-button:hover{opacity:1}.Vue-Toastification__toast:not(:hover) .Vue-Toastification__close-button.show-on-hover{opacity:0}.Vue-Toastification__toast--rtl .Vue-Toastification__close-button{padding-left:unset;padding-right:10px}@keyframes scale-x-frames{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Vue-Toastification__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:10000;background-color:hsla(0,0%,100%,.7);transform-origin:left;animation:scale-x-frames linear 1 forwards}.Vue-Toastification__toast--rtl .Vue-Toastification__progress-bar{right:0;left:unset;transform-origin:right}.Vue-Toastification__icon{margin:auto 18px auto 0;background:transparent;outline:none;border:none;padding:0;transition:.3s ease;align-items:center;width:20px;height:100%}.Vue-Toastification__toast--rtl .Vue-Toastification__icon{margin:auto 0 auto 18px}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes bounceOutRight{40%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(1000px,0,0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Vue-Toastification__bounce-enter-active.bottom-left,.Vue-Toastification__bounce-enter-active.top-left{animation-name:bounceInLeft}.Vue-Toastification__bounce-enter-active.bottom-right,.Vue-Toastification__bounce-enter-active.top-right{animation-name:bounceInRight}.Vue-Toastification__bounce-enter-active.top-center{animation-name:bounceInDown}.Vue-Toastification__bounce-enter-active.bottom-center{animation-name:bounceInUp}.Vue-Toastification__bounce-leave-active:not(.disable-transition).bottom-left,.Vue-Toastification__bounce-leave-active:not(.disable-transition).top-left{animation-name:bounceOutLeft}.Vue-Toastification__bounce-leave-active:not(.disable-transition).bottom-right,.Vue-Toastification__bounce-leave-active:not(.disable-transition).top-right{animation-name:bounceOutRight}.Vue-Toastification__bounce-leave-active:not(.disable-transition).top-center{animation-name:bounceOutUp}.Vue-Toastification__bounce-leave-active:not(.disable-transition).bottom-center{animation-name:bounceOutDown}.Vue-Toastification__bounce-enter-active,.Vue-Toastification__bounce-leave-active{animation-duration:.75s;animation-fill-mode:both}.Vue-Toastification__bounce-move{transition-timing-function:ease-in-out;transition-property:all;transition-duration:.4s}@keyframes fadeOutTop{0%{transform:translateY(0);opacity:1}to{transform:translateY(-50px);opacity:0}}@keyframes fadeOutLeft{0%{transform:translateX(0);opacity:1}to{transform:translateX(-50px);opacity:0}}@keyframes fadeOutBottom{0%{transform:translateY(0);opacity:1}to{transform:translateY(50px);opacity:0}}@keyframes fadeOutRight{0%{transform:translateX(0);opacity:1}to{transform:translateX(50px);opacity:0}}@keyframes fadeInLeft{0%{transform:translateX(-50px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes fadeInRight{0%{transform:translateX(50px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes fadeInTop{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInBottom{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.Vue-Toastification__fade-enter-active.bottom-left,.Vue-Toastification__fade-enter-active.top-left{animation-name:fadeInLeft}.Vue-Toastification__fade-enter-active.bottom-right,.Vue-Toastification__fade-enter-active.top-right{animation-name:fadeInRight}.Vue-Toastification__fade-enter-active.top-center{animation-name:fadeInTop}.Vue-Toastification__fade-enter-active.bottom-center{animation-name:fadeInBottom}.Vue-Toastification__fade-leave-active:not(.disable-transition).bottom-left,.Vue-Toastification__fade-leave-active:not(.disable-transition).top-left{animation-name:fadeOutLeft}.Vue-Toastification__fade-leave-active:not(.disable-transition).bottom-right,.Vue-Toastification__fade-leave-active:not(.disable-transition).top-right{animation-name:fadeOutRight}.Vue-Toastification__fade-leave-active:not(.disable-transition).top-center{animation-name:fadeOutTop}.Vue-Toastification__fade-leave-active:not(.disable-transition).bottom-center{animation-name:fadeOutBottom}.Vue-Toastification__fade-enter-active,.Vue-Toastification__fade-leave-active{animation-duration:.75s;animation-fill-mode:both}.Vue-Toastification__fade-move{transition-timing-function:ease-in-out;transition-property:all;transition-duration:.4s}@keyframes slideInBlurredLeft{0%{transform:translateX(-1000px) scaleX(2.5) scaleY(.2);transform-origin:100% 50%;filter:blur(40px);opacity:0}to{transform:translateX(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideInBlurredTop{0%{transform:translateY(-1000px) scaleY(2.5) scaleX(.2);transform-origin:50% 0;filter:blur(240px);opacity:0}to{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideInBlurredRight{0%{transform:translateX(1000px) scaleX(2.5) scaleY(.2);transform-origin:0 50%;filter:blur(40px);opacity:0}to{transform:translateX(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideInBlurredBottom{0%{transform:translateY(1000px) scaleY(2.5) scaleX(.2);transform-origin:50% 100%;filter:blur(240px);opacity:0}to{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideOutBlurredTop{0%{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 0;filter:blur(0);opacity:1}to{transform:translateY(-1000px) scaleY(2) scaleX(.2);transform-origin:50% 0;filter:blur(240px);opacity:0}}@keyframes slideOutBlurredBottom{0%{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}to{transform:translateY(1000px) scaleY(2) scaleX(.2);transform-origin:50% 100%;filter:blur(240px);opacity:0}}@keyframes slideOutBlurredLeft{0%{transform:translateX(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}to{transform:translateX(-1000px) scaleX(2) scaleY(.2);transform-origin:100% 50%;filter:blur(40px);opacity:0}}@keyframes slideOutBlurredRight{0%{transform:translateX(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}to{transform:translateX(1000px) scaleX(2) scaleY(.2);transform-origin:0 50%;filter:blur(40px);opacity:0}}.Vue-Toastification__slideBlurred-enter-active.bottom-left,.Vue-Toastification__slideBlurred-enter-active.top-left{animation-name:slideInBlurredLeft}.Vue-Toastification__slideBlurred-enter-active.bottom-right,.Vue-Toastification__slideBlurred-enter-active.top-right{animation-name:slideInBlurredRight}.Vue-Toastification__slideBlurred-enter-active.top-center{animation-name:slideInBlurredTop}.Vue-Toastification__slideBlurred-enter-active.bottom-center{animation-name:slideInBlurredBottom}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).bottom-left,.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).top-left{animation-name:slideOutBlurredLeft}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).bottom-right,.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).top-right{animation-name:slideOutBlurredRight}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).top-center{animation-name:slideOutBlurredTop}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).bottom-center{animation-name:slideOutBlurredBottom}.Vue-Toastification__slideBlurred-enter-active,.Vue-Toastification__slideBlurred-leave-active{animation-duration:.75s;animation-fill-mode:both}.Vue-Toastification__slideBlurred-move{transition-timing-function:ease-in-out;transition-property:all;transition-duration:.4s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;min-height:100%;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,sans-serif;-webkit-font-smoothing:antialiased;color:#0f172a}#app{min-height:100vh;min-height:100dvh}a{color:inherit}.app-layout{background:#f8fafc;min-height:100vh;min-height:100dvh}.app-layout.is-fullscreen{background:#fff;overflow:hidden;height:100vh;height:100dvh}.app-header{position:fixed;top:0;left:0;right:0;height:calc(56px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);background:#fff;z-index:25;padding-left:6px;padding-right:6px;box-shadow:0 2px 8px rgba(15,23,42,.08)}.app-header,.hamburger-btn{display:flex;align-items:center}.hamburger-btn{width:44px;height:44px;background:transparent;border:0;justify-content:center;cursor:pointer;border-radius:50%;color:#334155}.hamburger-btn:active{background:#f1f5f9}.app-header .header-title{flex:1;text-align:center;font-size:17px;font-weight:700;color:#0f172a;letter-spacing:-.3px}.header-spacer{width:44px;flex-shrink:0}.app-main{padding-top:calc(56px + env(safe-area-inset-top));min-height:100vh;min-height:100dvh}.app-main.is-fullscreen{padding-top:0}.drawer-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.45);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:70}.drawer-backdrop.show{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:80%;background:#fff;z-index:80;transform:translateX(-105%);transition:transform .26s cubic-bezier(.32,.72,0,1);box-shadow:4px 0 16px rgba(0,0,0,.18);display:flex;flex-direction:column}.drawer.show{transform:translateX(0)}.drawer-head{padding:calc(28px + env(safe-area-inset-top)) 22px 22px;background:linear-gradient(135deg,#1d4ed8,#3b82f6);color:#fff}.drawer-brand{font-size:11px;opacity:.85;letter-spacing:.4px}.drawer-name{font-size:20px;font-weight:700;margin-top:4px}.drawer-nav{padding:12px 10px;flex:1;overflow-y:auto}.drawer-link{display:flex;align-items:center;gap:14px;padding:13px 14px;border-radius:10px;color:#334155;font-size:15px;font-weight:500;text-decoration:none}.drawer-link:active{background:#f1f5f9}.drawer-link.active{background:#eff6ff;color:#1d4ed8;font-weight:700}.drawer-link svg{flex-shrink:0;color:#64748b}.drawer-link.active svg{color:#1d4ed8}.drawer-foot{padding:14px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid #f1f5f9;font-size:11px;color:#94a3b8}.page{max-width:720px;margin:0 auto;padding:20px 16px calc(40px + env(safe-area-inset-bottom))}.page-title{font-size:22px;font-weight:700;margin:4px 0 16px}.placeholder-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:40px 20px;text-align:center;color:#64748b}.placeholder-card .ph-icon{color:#cbd5e1;margin-bottom:12px}.placeholder-card .ph-text{font-size:15px}#map{top:0;left:0;width:100vw;height:100vh;height:100dvh}#map,.topbar{position:fixed}.topbar{left:12px;right:70px;top:calc(68px + env(safe-area-inset-top));z-index:20;display:flex;align-items:center;gap:8px;background:#fff;border-radius:14px;box-shadow:0 4px 16px rgba(15,23,42,.12),0 1px 3px rgba(15,23,42,.06);padding:10px 14px}.topbar svg{flex:0 0 20px;color:#64748b}.topbar input{flex:1;border:0;outline:0;font-size:15px;color:#0f172a;background:transparent;min-width:0}.topbar input::-moz-placeholder{color:#94a3b8}.topbar input::placeholder{color:#94a3b8}.topbar input[type=search]::-webkit-search-cancel-button,.topbar input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.topbar input[type=search]::-ms-clear{display:none;width:0;height:0}.topbar .clear{display:none;flex:0 0 24px;height:24px;border:0;border-radius:50%;background:#e2e8f0;color:#475569;font-size:14px;cursor:pointer}.topbar .clear.show{display:inline-flex}.map-filter-btn,.topbar .clear.show{align-items:center;justify-content:center}.map-filter-btn{position:fixed;top:calc(68px + env(safe-area-inset-top));right:12px;z-index:20;width:46px;height:46px;border:0;border-radius:12px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.12),0 1px 3px rgba(15,23,42,.06);color:#475569;cursor:pointer;display:flex}.map-filter-btn:active{background:#f1f5f9}.map-filter-btn .dot{display:none;position:absolute;top:8px;right:8px;width:8px;height:8px;background:#1d4ed8;border-radius:50%;border:1.5px solid #fff}.map-filter-btn.has-filter .dot{display:block}.map-score-filter{position:fixed;top:calc(122px + env(safe-area-inset-top));right:12px;z-index:20;width:46px;display:flex;flex-direction:column;gap:6px;background:#fff;padding:6px;border-radius:12px;box-shadow:0 4px 16px rgba(15,23,42,.12),0 1px 3px rgba(15,23,42,.06);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.map-score-seg{height:34px;border:1px solid #e2e8f0;border-radius:8px;background:#f1f5f9;color:#94a3b8;font-size:14px;font-weight:700;transition:background .12s,color .12s,border-color .12s}.fab,.map-score-seg{display:flex;align-items:center;justify-content:center;cursor:pointer}.fab{position:fixed;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:15;width:52px;height:52px;border:0;border-radius:50%;background:#fff;color:#1d4ed8;box-shadow:0 6px 20px rgba(15,23,42,.18);transition:transform .1s}.fab:active{transform:scale(.94)}.sheet-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.4);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:30}.sheet-backdrop.show{opacity:1;pointer-events:auto}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -8px 32px rgba(15,23,42,.18);transform:translateY(100%);transition:transform .26s cubic-bezier(.32,.72,0,1);padding-bottom:calc(16px + env(safe-area-inset-bottom));max-height:85vh;overflow:hidden}.sheet.show{transform:translateY(0)}.sheet-handle{display:flex;justify-content:center;padding:10px 0 4px;cursor:grab;touch-action:none}.sheet-handle:before{content:"";width:40px;height:4px;background:#cbd5e1;border-radius:2px}.sheet-header{padding:8px 24px 4px;display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-title{margin:0;font-size:22px;font-weight:700;letter-spacing:-.4px;flex:1;min-width:0}.score-badge.header-score{padding:6px 14px;font-size:16px;font-weight:800;flex-shrink:0}.sheet-tabs{display:flex;border-bottom:1px solid #e5e7eb;padding:0 8px;margin-top:10px}.sheet-tab{flex:1;background:transparent;border:0;padding:13px 4px;font-size:14px;font-weight:600;color:#94a3b8;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.sheet-tab.active{color:#1d4ed8;border-bottom-color:#1d4ed8}.sheet-body{padding:0;overflow-y:auto;max-height:42vh;display:grid}.tab-panel{grid-column:1;grid-row:1;padding:6px 24px 12px;visibility:hidden;pointer-events:none}.tab-panel.active{visibility:visible;pointer-events:auto}.info-grid{font-size:14px}.info-grid .row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f1f5f9}.info-grid .row:last-child{border-bottom:0}.info-grid .lbl{width:70px;flex-shrink:0;color:#64748b;font-weight:500}.info-grid .val{flex:1;color:#0f172a;font-weight:500;word-break:break-word}.overview-text{font-size:14px;line-height:1.65;color:#334155;white-space:pre-wrap;padding:10px 0}.visit-photo-area{background:#f8fafc;border:1px dashed #e2e8f0;border-radius:12px;padding:28px 20px;text-align:center;color:#94a3b8;font-size:13px;margin-bottom:4px}.visit-photo-area svg{display:block;margin:0 auto 8px;color:#cbd5e1}.visit-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #f1f5f9;font-size:14px}.visit-row .visit-label{width:70px;flex-shrink:0;color:#64748b;font-weight:500}.visit-row .visit-value{flex:1}.status-pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600}.status-not-visited{background:#f1f5f9;color:#64748b}.visit-memo-section{padding:14px 0 4px}.visit-memo-section .visit-label{display:block;margin-bottom:8px;color:#64748b;font-weight:500;font-size:14px}.memo-textarea{width:100%;min-height:90px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;font-family:inherit;font-size:14px;line-height:1.5;color:#0f172a;background:#f8fafc;resize:vertical;outline:none}.memo-textarea:focus{border-color:#1d4ed8;background:#fff}.memo-textarea::-moz-placeholder{color:#cbd5e1}.memo-textarea::placeholder{color:#cbd5e1}.sheet-actions{padding:12px 16px 4px;display:flex;gap:10px}.btn{flex:1;min-width:0;height:50px;border:0;border-radius:12px;cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:4px;transition:transform .1s,opacity .1s;white-space:nowrap}.btn:active{transform:scale(.98);opacity:.9}.btn-primary{background:#1d4ed8;color:#fff}.btn-secondary{background:#f1f5f9;color:#334155}.pano-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:60;transform:translateY(100%);transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;pointer-events:none}.pano-modal.show{transform:translateY(0);pointer-events:auto}.pano-header{flex:0 0 auto;height:56px;padding:0 12px;padding-top:env(safe-area-inset-top);background:linear-gradient(180deg,rgba(0,0,0,.7),transparent);gap:12px;position:absolute;top:0;left:0;right:0;z-index:1}.pano-close,.pano-header{color:#fff;display:flex;align-items:center}.pano-close{background:rgba(0,0,0,.45);border:0;cursor:pointer;width:40px;height:40px;justify-content:center;border-radius:50%}.pano-close:active{background:rgba(0,0,0,.7)}.pano-header h3{margin:0;font-size:16px;font-weight:600;flex:1;text-shadow:0 1px 2px rgba(0,0,0,.4)}.pano-external{background:rgba(0,0,0,.5);border:0;color:#fff;cursor:pointer;padding:0 12px;height:36px;border-radius:18px;font-size:12px;font-weight:500;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;flex-shrink:0}.pano-external:active{background:rgba(0,0,0,.75)}.pano-canvas{flex:1;width:100%;background:#111}.pano-empty{position:absolute;inset:0;display:none;align-items:center;justify-content:center;color:#94a3b8;font-size:14px;pointer-events:none}.pano-empty.show{display:flex}.marker-pin{width:24px;height:32px;transform:scale(var(--marker-scale,1));transform-origin:bottom center;pointer-events:auto}.marker-pin svg{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.score-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-weight:700;font-size:14px}.user-dot{width:30px;height:30px;position:relative;pointer-events:none}.user-dot .core{position:absolute;top:7px;left:7px;width:16px;height:16px;border-radius:50%;background:#1d4ed8;border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35);box-sizing:border-box}.user-dot:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border-radius:50%;background:rgba(29,78,216,.22);animation:user-pulse 2s ease-out infinite}@keyframes user-pulse{0%{transform:scale(.5);opacity:.9}to{transform:scale(1.5);opacity:0}}.app-picker{position:fixed;left:0;right:0;bottom:0;z-index:45;transform:translateY(110%);transition:transform .26s cubic-bezier(.32,.72,0,1);padding:0 12px calc(12px + env(safe-area-inset-bottom));pointer-events:none}.app-picker.show{transform:translateY(0);pointer-events:auto}.app-card{background:#fff;border-radius:14px;overflow:hidden;margin-bottom:8px;box-shadow:0 -6px 24px rgba(15,23,42,.18)}.app-title{padding:14px 16px 12px;text-align:center;color:#94a3b8;font-size:12px;border-bottom:1px solid #f1f5f9}.app-item{display:flex;align-items:center;padding:16px 18px;border:0;background:#fff;width:100%;text-align:left;font-size:15px;font-weight:500;color:#0f172a;cursor:pointer;border-bottom:1px solid #f1f5f9}.app-item:last-child{border-bottom:0}.app-item:active{background:#f8fafc}.app-icon{width:32px;height:32px;border-radius:9px;margin-right:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;letter-spacing:-.5px;flex-shrink:0}.app-cancel{background:#fff;border-radius:14px;padding:16px;text-align:center;font-size:16px;font-weight:600;color:#ef4444;border:0;width:100%;cursor:pointer;box-shadow:0 -6px 24px rgba(15,23,42,.12)}.app-cancel:active{background:#f1f5f9}@media (min-width:640px){.app-picker{left:50%;transform:translate(-50%,110%);width:460px;right:auto}.app-picker.show{transform:translate(-50%)}}.visit-progress{position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -8px 32px rgba(15,23,42,.22);padding:22px 22px calc(22px + env(safe-area-inset-bottom));transform:translateY(110%);transition:transform .3s cubic-bezier(.32,.72,0,1);pointer-events:none}.visit-progress.show{transform:translateY(0);pointer-events:auto}@media (min-width:640px){.visit-progress{left:50%;right:auto;width:460px;transform:translate(-50%,110%);border-radius:22px;bottom:20px}.visit-progress.show{transform:translate(-50%)}}.vp-live{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:6px}.vp-live-dot{width:8px;height:8px;background:#22c55e;border-radius:50%;animation:vp-pulse 1.5s ease-in-out infinite}.vp-live-text{font-size:12px;font-weight:700;color:#22c55e;letter-spacing:.5px}@keyframes vp-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.3)}}.vp-title{margin:0 0 4px;text-align:center;font-size:22px;font-weight:700;color:#0f172a}.vp-subtitle{margin:0 0 18px;text-align:center;font-size:13px;color:#64748b}.vp-card{display:flex;align-items:center;gap:12px;padding:14px;background:#f8fafc;border-radius:14px;margin-bottom:6px}.vp-thumb{width:44px;height:44px;background:#fce7f3;border-radius:50%;flex-shrink:0}.vp-info{flex:1;min-width:0}.vp-name{font-size:15px;font-weight:700;color:#0f172a}.vp-addr,.vp-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vp-addr{font-size:12px;color:#64748b;margin-top:2px}.vp-score{flex-shrink:0;padding:6px 12px;font-size:15px;font-weight:800;border-radius:8px;min-width:42px;text-align:center;color:#fff}.vp-time{display:flex;align-items:center;gap:8px;padding:10px 6px;font-size:14px;color:#475569}.vp-time svg{color:#94a3b8;flex-shrink:0}.vp-time-label{flex:1}.vp-time-value{font-weight:700;color:#0f172a;font-size:16px}.vp-banner{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#eff6ff;border-radius:10px;font-size:12px;color:#1d4ed8;margin:6px 0 16px}.vp-banner svg{flex-shrink:0;color:#3b82f6}.vp-actions{display:flex;gap:10px}.vp-btn{flex:1;height:52px;border:0;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:transform .1s,opacity .1s}.vp-btn:active{transform:scale(.98);opacity:.9}.vp-btn-cancel{background:#fff;color:#475569;border:1px solid #e2e8f0}.vp-btn-complete{background:#22c55e;color:#fff}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:hsla(0,0%,100%,.95);z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px}.loading-overlay.show{display:flex}.loading-spinner{width:44px;height:44px;border:3px solid #e2e8f0;border-top-color:#1d4ed8;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{color:#475569;font-size:14px;font-weight:500}.fetching-pill{position:fixed;top:calc(124px + env(safe-area-inset-top));left:50%;z-index:18;background:rgba(15,23,42,.88);color:#fff;padding:7px 14px 7px 10px;border-radius:999px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(0,0,0,.25);opacity:0;transform:translateX(-50%) translateY(-12px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.fetching-pill.show{opacity:1;transform:translateX(-50%) translateY(0)}.fetching-pill .mini-spinner{width:12px;height:12px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.toast{position:fixed;left:50%;bottom:calc(40px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);background:rgba(15,23,42,.92);color:#fff;padding:12px 20px;border-radius:999px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media (min-width:640px){.sheet{left:50%;right:auto;transform:translate(-50%,100%);width:480px;border-radius:22px 22px 0 0}.sheet.show{transform:translate(-50%)}}.filter-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.45);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:75}.filter-backdrop.show{opacity:1;pointer-events:auto}.filter-modal{position:fixed;top:0;right:0;bottom:0;width:320px;max-width:86%;background:#fff;z-index:85;transform:translateX(105%);transition:transform .26s cubic-bezier(.32,.72,0,1);box-shadow:-4px 0 16px rgba(0,0,0,.18);display:flex;flex-direction:column}.filter-modal.show{transform:translateX(0)}.filter-head{padding:calc(18px + env(safe-area-inset-top)) 20px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f5f9}.filter-head h2{margin:0;font-size:17px;font-weight:700;color:#0f172a}.filter-close{background:transparent;border:0;color:#475569;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}.filter-close:active{background:#f1f5f9}.filter-body{flex:1;overflow-y:auto;padding:16px 20px 20px}.filter-field{margin-bottom:20px}.filter-field>label{display:block;padding:0 0 0 8px;border:0;border-left:3px solid #1d4ed8;background:transparent;font-size:13px;font-weight:700;color:#0f172a;line-height:1;margin-bottom:10px}.filter-row{display:flex;align-items:center;gap:8px}.filter-combo{position:relative}.filter-combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:5;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 6px 18px rgba(15,23,42,.14);max-height:210px;overflow-y:auto}.filter-combo-list li{padding:9px 10px;border-radius:8px;font-size:13px;color:#0f172a;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-combo-list li:hover{background:#f1f5f9}.filter-input{flex:1;min-width:0;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;font-size:13px;background:#fff;color:#0f172a;outline:none}.filter-input:focus{border-color:#1d4ed8}.filter-input.full{width:100%}.filter-tilde{color:#94a3b8;font-size:14px;flex-shrink:0}.score-segs{display:flex;gap:8px;margin:6px 0 0;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.score-seg{flex:1;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;border-radius:10px;background:#f1f5f9;color:#94a3b8;font-size:15px;font-weight:700;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.score-segs-hint{margin-top:8px;text-align:center;font-size:13px;font-weight:700;color:#475569}.filter-actions{padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid #f1f5f9;display:flex;gap:8px}.filter-reset{flex:0 0 auto;height:50px;padding:0 14px;background:#f1f5f9;color:#475569;border:0;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer}.filter-reset:active{opacity:.85}.filter-save{flex:0 0 auto;height:50px;padding:0 14px;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px}.filter-save:active{opacity:.85}.filter-apply{flex:1;height:50px;background:#1d4ed8;color:#fff;border:0;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer}.filter-apply:active{opacity:.9}.list-page{padding:0 0 calc(40px + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}.list-toolbar{position:sticky;top:calc(56px + env(safe-area-inset-top));z-index:10;background:#f8fafc;padding:12px 14px}.list-search,.list-toolbar{display:flex;gap:8px;align-items:center}.list-search{flex:1;background:#fff;border-radius:12px;padding:10px 14px;box-shadow:0 2px 6px rgba(15,23,42,.06)}.list-search svg{flex:0 0 18px;color:#64748b}.list-search input{flex:1;border:0;outline:0;min-width:0;font-size:14px;background:transparent;color:#0f172a}.list-search input::-moz-placeholder{color:#94a3b8}.list-search input::placeholder{color:#94a3b8}.list-search input[type=search]::-webkit-search-cancel-button,.list-search input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.list-filter-btn{flex-shrink:0;width:44px;height:44px;border:0;border-radius:12px;background:#fff;box-shadow:0 2px 6px rgba(15,23,42,.06);color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative}.list-filter-btn:active{background:#f1f5f9}.list-filter-btn .dot{display:none;position:absolute;top:8px;right:8px;width:8px;height:8px;background:#1d4ed8;border-radius:50%;border:1.5px solid #fff}.list-filter-btn.has-filter .dot{display:block}.list-info{padding:8px 18px 4px;font-size:12px;color:#64748b}.list-info b{color:#1d4ed8}.site-list{list-style:none;margin:0;padding:0 12px}.site-item{background:#fff;border-radius:12px;margin-bottom:8px;padding:14px 16px;box-shadow:0 1px 3px rgba(15,23,42,.06);cursor:pointer;display:flex;align-items:center;gap:12px;transition:transform .1s,box-shadow .15s}.site-item:active{transform:scale(.99)}.site-item:hover{box-shadow:0 3px 10px rgba(15,23,42,.1)}.site-item .meta{flex:1;min-width:0}.site-item .name{font-size:15px;font-weight:700;color:#0f172a;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35}.site-item .addr,.site-item .name{overflow:hidden;text-overflow:ellipsis}.site-item .addr{font-size:12px;color:#64748b;white-space:nowrap}.site-item .score-badge{flex-shrink:0}.list-empty{padding:60px 24px;text-align:center;color:#94a3b8;font-size:14px}.pagination{display:flex;justify-content:center;gap:4px;padding:20px 12px;flex-wrap:wrap}.pagination button,.pagination span{min-width:36px;height:36px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 8px}.pagination button:hover:not(:disabled):not(.active){background:#f8fafc}.pagination button.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.pagination button:disabled{color:#cbd5e1;cursor:not-allowed}.pagination span.ellipsis{border:0;background:transparent;color:#94a3b8}