@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";img{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-ms-interpolation-mode:bicubic}:root{--primary: #0055A5;--primary-light: #3388CC;--primary-dark: #003366;--accent: #E8F1F8;--background: #F8FAFC;--card-bg: rgba(255, 255, 255, .85);--text-main: #1E293B;--text-muted: #64748B;--safe-area-top: env(safe-area-inset-top);--safe-area-bottom: env(safe-area-inset-bottom);--glass: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .3);--shadow: 0 8px 32px 0 rgba(31, 38, 135, .07)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:Inter,-apple-system,sans-serif;background-color:var(--background);color:var(--text-main);overflow-x:hidden;line-height:1.5}html,body,#root{width:100%;min-height:100%}h1,h2,h3,h4{font-family:Outfit,sans-serif;font-weight:700}.glass-card{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--shadow)}.primary-button{background:var(--primary);color:#fff;border:none;border-radius:12px;padding:16px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:10px}.primary-button:active{transform:scale(.98);background:var(--primary-dark)}.input-field{width:100%;padding:14px;border-radius:12px;border:1px solid #E2E8F0;font-size:1rem;transition:border-color .2s;background:#fff}.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0055a51a}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .4s ease-out forwards}.container{width:min(100%,500px);max-width:500px;margin:0 auto;min-height:100dvh;padding:24px;position:relative}.container--nav{width:min(100%,1280px);max-width:1280px;height:100dvh;min-height:100dvh;padding:8px;display:flex}.container--nav>*{flex:1;min-height:0}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:80px;background:#fff;display:flex;justify-content:space-around;align-items:center;border-top:1px solid #F1F5F9;padding-bottom:var(--safe-area-bottom)}.navigation-view{background-color:#f8fafc}.zoom-button{width:44px;height:44px;border-radius:12px;background:#fff;border:1px solid #E2E8F0;display:flex;align-items:center;justify-content:center;color:var(--primary);box-shadow:0 4px 12px #0000000d;cursor:pointer;transition:all .2s}.zoom-button:active{transform:scale(.9);background:#f1f5f9}.pulse-marker{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.pulse-circle{position:absolute;width:100%;height:100%;border-radius:50%;background:#0055a533;opacity:.6;animation:pulse 2s infinite}.core-circle{width:18px;height:18px;border-radius:50%;background:var(--primary);border:2px solid white;z-index:2;box-shadow:0 4px 8px #0055a54d}@keyframes pulse{0%{transform:scale(1);opacity:.6}to{transform:scale(2.5);opacity:0}}.marker-dest{display:flex;flex-direction:column;align-items:center;gap:4px}.label-dest{background:#ef4444;color:#fff;padding:4px 10px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap;box-shadow:0 4px 12px #ef44444d}.bottom-sheet{background:#fff;border-radius:32px 32px 0 0;box-shadow:0 -10px 40px #0000000d;z-index:200;position:relative}.drag-handle{width:40px;height:4px;background:#e2e8f0;border-radius:2px;margin:12px auto 20px}.step-badge{padding:6px 12px;background:#f1f5f9;color:var(--primary);border-radius:20px;font-size:12px;font-weight:700}.icon-button{width:40px;height:40px;border-radius:50%;border:1px solid #E2E8F0;background:#fff;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer}.secondary-button{padding:16px;border-radius:16px;border:1px solid #E2E8F0;background:#fff;color:#64748b;font-weight:600;cursor:pointer;transition:all .2s}.secondary-button:active{background:#f8fafc}.text-button{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.home-step-guide{display:inline-flex;align-items:center;gap:14px;padding:12px 20px;background:#f1f5f9;border-radius:12px;font-size:13px;color:#475569}.home-step-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;word-break:keep-all;line-height:1.25}.home-step-index{color:var(--primary);font-weight:800}.home-step-index--done{color:#10b981}.home-step-arrow{color:#64748b;font-weight:700;line-height:1}.home-location-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.home-mini-action{min-height:74px;padding:12px;border-radius:12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid #e2e8f0;text-align:left;cursor:pointer}.home-mini-action--structure{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.home-mini-action--camera{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.home-mini-action strong,.home-mini-action small{display:block}.home-mini-action strong{color:#172033;font-size:14px;line-height:1.25}.home-mini-action small{margin-top:2px;color:#64748b;font-size:11px;line-height:1.25}.home-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.home-building-sequence{margin-top:8px;padding:8px 10px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;color:#475569;font-size:12px;font-weight:800;text-align:center}.home-search-button{text-align:left}.home-search-body{flex:1;min-width:0;text-align:left}.home-search-title{font-size:18px;font-weight:700;color:#1e293b;margin-bottom:4px;white-space:nowrap;word-break:keep-all;line-height:1.25}.home-search-subtitle{font-size:13px;color:#64748b;line-height:1.4;word-break:keep-all;overflow-wrap:normal}.home-shortcut-label{display:inline-block;white-space:nowrap;word-break:keep-all}.navigation-shell{height:100%;min-height:0;border-radius:20px;border:1px solid #e2e8f0;box-shadow:0 10px 30px #0f172a14}.navigation-map{min-height:0}.nav-button-row .secondary-button,.nav-button-row .primary-button{min-height:56px;padding:14px 16px;border-radius:14px;font-size:1rem;font-weight:800}.structure-guide{min-height:100dvh;background:#f8fafc;color:#172033;padding:18px 16px 28px;text-align:left}.structure-header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.structure-back-button{width:48px;height:48px;border:1px solid #d9e2ec;border-radius:8px;background:#fff;color:#172033;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.structure-eyebrow{margin:0 0 4px;color:#0f766e;font-size:12px;font-weight:800;letter-spacing:0}.structure-header h1,.building-detail h2,.structure-unknown h2{margin:0;color:#172033;line-height:1.2}.structure-header h1{font-size:24px}.structure-unknown{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border:2px solid #f59e0b;border-radius:8px;background:#fffbeb;margin-bottom:16px}.structure-unknown-icon{width:48px;height:48px;border-radius:8px;background:#f97316;color:#fff;display:flex;align-items:center;justify-content:center}.structure-unknown p,.building-detail-header p,.connection-guide-item p,.floor-place-panel p{margin:6px 0 0;color:#475569;line-height:1.55;word-break:keep-all}.building-strip{display:grid;grid-template-columns:minmax(66px,1fr) auto minmax(66px,1fr) auto minmax(66px,1fr) auto minmax(66px,1fr);align-items:center;gap:6px;padding:12px;border-radius:8px;background:#fff;border:1px solid #d9e2ec;margin-bottom:14px}.building-node{min-height:58px;border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc;color:#334155;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:800;cursor:pointer}.building-node--active{background:#0f766e;border-color:#0f766e;color:#fff}.building-link{min-width:42px;color:#2563eb;font-size:11px;font-weight:800;text-align:center}.building-link:before,.building-link:after{content:"";display:block;height:2px;background:#93c5fd;margin:3px 0}.building-link--limited{color:#b45309}.building-link--limited:before,.building-link--limited:after{background:#fbbf24}.connection-guide{display:grid;gap:8px;margin-bottom:14px}.connection-guide-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:10px 12px;border-radius:8px;background:#fff;border:1px solid #d9e2ec}.connection-guide-item svg{color:#2563eb;margin-top:2px}.connection-guide-item strong{color:#172033;font-size:14px}.structure-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.structure-action-button{min-height:56px;border:1px solid #d9e2ec;border-radius:8px;background:#fff;color:#172033;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:800;cursor:pointer}.structure-action-button--primary{background:#0055a5;border-color:#0055a5;color:#fff}.building-detail{background:#fff;border:1px solid #d9e2ec;border-radius:8px;padding:16px}.building-detail-header{display:grid;gap:12px;margin-bottom:14px}.building-detail-header h2{font-size:24px}.building-detail-badge{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:10px 12px;border-radius:8px;background:#ecfdf5;color:#065f46;font-size:13px;font-weight:800;line-height:1.4}.floor-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;margin-bottom:12px}.floor-tab{min-width:70px;min-height:44px;border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc;color:#334155;font-weight:800;cursor:pointer}.floor-tab--active{background:#172033;border-color:#172033;color:#fff}.floor-place-panel{padding:14px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.floor-place-title{display:inline-flex;align-items:center;gap:8px;color:#172033}.place-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.place-chip{display:inline-flex;align-items:center;min-height:34px;padding:6px 10px;border-radius:8px;background:#fff;border:1px solid #d9e2ec;color:#334155;font-size:13px;font-weight:700}.unknown-location-panel{padding:14px;border-radius:8px;background:#fffbeb;border:1px solid #f59e0b;margin-bottom:16px}.unknown-location-panel--compact{padding:12px;margin-bottom:12px}.unknown-location-panel h4{margin:0 0 8px;color:#92400e;font-size:15px}.unknown-location-panel--compact h4{margin-bottom:10px}.unknown-location-panel p{margin:0 0 12px;color:#78350f;font-size:13px;line-height:1.55}.unknown-location-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.unknown-location-actions--three{grid-template-columns:1.1fr 1fr 1fr}.unknown-location-actions button{min-height:46px;border-radius:8px;border:1px solid #fbbf24;background:#fff;color:#92400e;font-size:13px;font-weight:800;cursor:pointer}.unknown-location-actions .unknown-location-camera-button{border-color:#2563eb;background:#2563eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}.confirm-view{padding-bottom:calc(104px + var(--safe-area-bottom))}.confirm-sticky-summary{position:sticky;top:0;z-index:80;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:12px 0 0;padding:10px;border:1px solid rgba(191,219,254,.9);border-radius:12px;background:#fffffff0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 22px #0f172a14}.confirm-sticky-summary div{min-width:0;display:grid;gap:2px}.confirm-sticky-summary span{color:#2563eb;font-size:11px;font-weight:900}.confirm-sticky-summary strong{overflow:hidden;color:#172033;font-size:13px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.confirm-sticky-summary small{overflow:hidden;color:#64748b;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.route-recommendation-panel{margin:16px 0;padding:14px;border:1px solid #bfdbfe;border-radius:10px;background:#f8fbff}.route-recommendation-head{display:grid;gap:5px}.route-recommendation-badge{width:fit-content;padding:4px 8px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:900}.route-recommendation-head h4{margin:0;color:#172033;font-size:17px;line-height:1.25}.route-recommendation-head p{margin:0;color:#475569;font-size:13px;line-height:1.45;word-break:keep-all}.route-recommendation-head small{color:#2563eb;font-size:12px;font-weight:800}.route-preview-list{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.route-preview-list li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:flex-start}.route-preview-list span{width:28px;height:28px;border-radius:8px;background:#2563eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:900}.route-preview-list p{margin:0;color:#1e293b;font-size:13px;font-weight:700;line-height:1.45;word-break:keep-all}.route-alternative-box{display:grid;gap:8px;margin-top:12px}.route-alternative-toggle,.route-alternative-option{width:100%;min-height:44px;border-radius:8px;cursor:pointer}.route-alternative-toggle{border:1px solid #93c5fd;background:#fff;color:#1d4ed8;font-size:13px;font-weight:900}.route-alternative-option{display:grid;gap:3px;padding:10px 12px;border:1px solid #e2e8f0;background:#fff;text-align:left}.route-alternative-option strong{color:#172033;font-size:14px;font-weight:900}.route-alternative-option span{color:#64748b;font-size:12px;font-weight:700;line-height:1.4}.confirm-action-bar{position:fixed;left:50%;bottom:0;z-index:100;width:min(100%,500px);display:grid;grid-template-columns:minmax(96px,.9fr) minmax(0,1.7fr);gap:10px;padding:12px 16px calc(12px + var(--safe-area-bottom));background:linear-gradient(180deg,#f8fafc00,#f8fafcf5 18%,#f8fafc);border-top:1px solid rgba(226,232,240,.9);box-shadow:0 -12px 28px #0f172a14;transform:translate(-50%)}.confirm-back-button,.confirm-start-button{min-height:58px;border-radius:14px;font-size:16px;font-weight:900}.confirm-start-button{background:#10b981;box-shadow:0 8px 18px #10b98133}.confirm-start-button--disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed;opacity:.7}.official-floor-preview{padding:12px;border-radius:8px;background:#f0fdfa;border:1px solid #99f6e4;margin-bottom:16px}.official-floor-preview strong{color:#0f766e;font-size:13px}.official-floor-preview p{margin:6px 0 0;color:#115e59;font-size:13px;line-height:1.5}.photo-location{padding:14px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe;margin-bottom:16px}.photo-location--compact{margin-bottom:22px}.photo-location-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.photo-location-header strong{color:#1e3a8a;font-size:15px}.photo-location-header p{margin:4px 0 0;color:#475569;font-size:13px;line-height:1.5}.photo-action-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:10px;margin-top:12px}.photo-camera-button,.photo-upload-button{min-height:50px;padding:0 14px;border-radius:8px;border:1px solid #0055a5;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:800;cursor:pointer;white-space:nowrap}.photo-camera-button{background:#0055a5;color:#fff;box-shadow:0 8px 18px #0055a533}.photo-camera-button:disabled{background:#64748b;border-color:#64748b;box-shadow:none;cursor:default}.photo-upload-button{background:#fff;color:#0055a5}.photo-upload-button input{display:none}.camera-live-panel{margin-top:12px;padding:10px;border-radius:8px;border:1px solid #93c5fd;background:#fff}.photo-location--camera-active .camera-live-panel{position:sticky;top:0;z-index:5;margin-top:10px;box-shadow:0 10px 24px #0f172a1f}.camera-live-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.camera-live-title strong{color:#172033;font-size:14px;font-weight:900}.camera-live-title span{color:#1d4ed8;font-size:12px;font-weight:900}.camera-live-panel video{width:100%;aspect-ratio:4 / 3;display:block;border-radius:8px;background:#0f172a;object-fit:cover}.camera-live-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}.camera-live-actions button{min-height:48px;padding:0 14px;border-radius:8px;border:1px solid #0055a5;background:#0055a5;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:800;cursor:pointer}.camera-live-actions button:disabled{opacity:.55;cursor:wait}.camera-live-actions .camera-cancel-button{background:#fff;color:#334155;border-color:#cbd5e1}.photo-preview-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;margin-top:12px}.photo-preview-row img{width:92px;height:92px;object-fit:cover;border-radius:8px;border:1px solid #bfdbfe;background:#fff}.photo-preview-label{margin-bottom:6px;color:#172033;font-size:13px;font-weight:900}.ocr-status{display:inline-flex;align-items:center;gap:8px;color:#1d4ed8;font-size:13px;font-weight:800;line-height:1.4}.ocr-status--done{color:#047857}.ocr-status--error{color:#b91c1c}.spin-icon{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.photo-ocr-text{width:100%;margin-top:12px;padding:12px;border:1px solid #bfdbfe;border-radius:8px;background:#fff;color:#172033;font-size:14px;line-height:1.5;resize:vertical}.photo-location--compact .photo-ocr-text{min-height:72px}.photo-ocr-text:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.photo-candidate-list{display:grid;gap:8px;margin-top:12px}.photo-candidate-list button{min-height:58px;padding:10px 12px;border-radius:8px;border:1px solid #bfdbfe;background:#fff;color:#172033;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;text-align:left;cursor:pointer}.photo-candidate-list strong{display:block;font-size:14px;margin-bottom:2px}.photo-candidate-list small{display:block;color:#475569;font-size:12px;line-height:1.4}.photo-sheet-backdrop{position:fixed;inset:0;background:#0f172a7a;z-index:1190}.photo-sheet{position:fixed;left:50%;bottom:0;width:min(100%,500px);max-height:min(82dvh,720px);padding:14px 14px calc(14px + var(--safe-area-bottom));border-radius:18px 18px 0 0;background:#fff;box-shadow:0 -20px 50px #0f172a33;transform:translate(-50%);overflow-y:auto;z-index:1200}.photo-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.photo-sheet-header strong{color:#172033;font-size:16px}.photo-sheet-header button{width:38px;height:38px;border-radius:50%;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:22px;line-height:1;cursor:pointer}.photo-sheet .photo-location{margin-bottom:0}@media(max-width:768px){.container{padding:16px}.home-search-button{padding:18px!important;gap:12px!important}.home-search-title{font-size:17px}.home-search-subtitle{font-size:12.5px}.container--nav{width:100%;max-width:100%;padding:0}.navigation-shell{border-radius:0;border:none;box-shadow:none}.navigation-footer{padding:12px 14px calc(12px + var(--safe-area-bottom))!important}.navigation-instruction{padding:12px 14px!important;border-radius:16px!important}.building-strip{grid-template-columns:1fr}.building-link{min-width:0}.building-link:before,.building-link:after{display:inline-block;width:34%;vertical-align:middle;margin:0 8px}.structure-actions,.photo-location-header{grid-template-columns:1fr}.unknown-location-actions{grid-template-columns:1fr 1fr}.unknown-location-actions--three{grid-template-columns:repeat(3,minmax(0,1fr))}.unknown-location-actions button{min-height:44px;padding:6px;font-size:12px}}@media(max-width:430px){.photo-action-row,.camera-live-actions{grid-template-columns:1fr}.home-step-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px;padding:10px 12px}.home-step-arrow{display:none}.home-step-item{justify-content:center;font-size:12px}.home-shortcut-label{font-size:11px!important}}@media(min-width:1024px){.navigation-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,460px);gap:12px;align-items:center}.navigation-instruction{margin-bottom:0!important}.nav-button-row{justify-content:flex-end}}@media(max-height:760px){.navigation-header{padding:6px 10px!important}.navigation-map{margin:2px 6px!important}.navigation-footer{padding:10px 12px calc(10px + var(--safe-area-bottom))!important}.navigation-instruction{padding:10px 12px!important;margin-bottom:10px!important;border-radius:16px!important}.navigation-instruction>div:first-child{font-size:28px!important}.nav-button-row .secondary-button,.nav-button-row .primary-button{min-height:46px;padding:10px 12px;font-size:.95rem}}
