:root{color-scheme:light;--ink: #17140f;--muted: #726d63;--faint: #a39d90;--line: #e4e1d8;--line-soft: #edebe3;--paper: #fafaf8;--panel: #ffffff;--button-bg: #f1efe8;--accent: #1d5a8f;--accent-soft: #eaf1f7;--accent-dark: #164a76;--success: #1e7a4d;--success-soft: #e9f6ef;--warning: #a3690f;--warning-soft: #fbf1e0;--error: #a8362b;--error-soft: #fbeeec;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--sidebar-width: min(224px, 58.7vw);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 4px rgb(23 20 15 / 18%);--shadow-md: 0 4px 16px rgb(23 20 15 / 16%);--shadow-lg: 0 12px 40px rgb(23 20 15 / 22%);--ease: cubic-bezier(.4, 0, .2, 1);--duration-hover: .1s;--duration-button: .15s;--duration-dropdown: .18s;--duration-panel: .2s}*{box-sizing:border-box}html,body{height:100%}body{margin:0;min-width:320px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,ui-sans-serif,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}.app{position:relative;height:100vh;height:100dvh;overflow:hidden}.sidebar{--ink: #fff;--muted: rgb(255 255 255 / 72%);--faint: rgb(255 255 255 / 50%);--line: rgb(255 255 255 / 22%);--line-soft: rgb(255 255 255 / 14%);--panel: rgb(255 255 255 / 8%);--button-bg: rgb(255 255 255 / 10%);--accent: #bcdcff;--accent-soft: rgb(255 255 255 / 16%);--error: #ffb4ab;--error-soft: rgb(255 99 71 / 22%);position:fixed;z-index:20;top:0;left:0;bottom:0;width:var(--sidebar-width);display:flex;flex-direction:column;padding:var(--space-3) var(--space-6) var(--space-6);overflow-y:auto;background:var(--accent-dark);color:var(--ink);border-right:1px solid var(--line-soft);box-shadow:2px 0 24px #17140f29;transform:translate(-100%);transition:transform var(--duration-panel) var(--ease)}.app.sidebar-open .sidebar{transform:translate(0)}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:#17140f47;opacity:0;pointer-events:none;transition:opacity var(--duration-panel) ease}.app.sidebar-open .sidebar-scrim{opacity:1;pointer-events:auto}#sidebar-toggle-button{position:absolute;top:var(--space-3);left:var(--space-3);z-index:25;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid #fff;border-radius:var(--radius-sm);background:var(--accent-dark);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-button) var(--ease),background var(--duration-button) var(--ease)}#sidebar-toggle-button:hover{box-shadow:var(--shadow-md);background:#1d5a8f}#sidebar-toggle-button svg{width:20px;height:20px}.app.sidebar-open #sidebar-toggle-button{display:none}#sidebar-collapse-button{position:absolute;top:50%;left:var(--sidebar-width);transform:translate(-50%,-50%);z-index:25;width:18px;height:72px;display:none;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-button) var(--ease),border-color var(--duration-button) var(--ease),background var(--duration-button) var(--ease)}#sidebar-collapse-button:hover{box-shadow:var(--shadow-md);border-color:var(--accent);background:var(--accent-soft)}#sidebar-collapse-button svg{width:12px;height:12px}.app.sidebar-open #sidebar-collapse-button{display:flex}.sidebar-rail{position:fixed;z-index:24;top:64px;left:var(--space-3);display:none;flex-direction:column;gap:var(--space-2)}.sidebar-rail button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-button) var(--ease),color var(--duration-button) var(--ease),border-color var(--duration-button) var(--ease)}.sidebar-rail button svg{width:20px;height:20px}.sidebar-rail button:hover{box-shadow:var(--shadow-md);border-color:var(--accent);color:var(--accent)}.sidebar-rail button.danger:hover{border-color:var(--error);color:var(--error)}@media(min-width:721px){.sidebar-rail{display:flex}.app.sidebar-open .sidebar-rail{left:calc(var(--sidebar-width) + var(--space-3))}.app.sidebar-open .sidebar-scrim{opacity:0;pointer-events:none}.app.sidebar-open .search-bar-wrap{left:calc(var(--sidebar-width) + var(--space-3));max-width:260px}.app.sidebar-open~.subject-location-panel:not([style*=left]){left:calc(68px + var(--sidebar-width) + var(--space-3))}}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--line)}.sidebar-footer p{margin:0 0 var(--space-1);font-size:.68rem;line-height:1.5;color:var(--muted)}.sidebar-footer p:last-child{margin-bottom:0}.sidebar-footer a{color:var(--accent)}.sidebar-footer-legal-links{margin-top:var(--space-2)!important;font-size:.72rem}.lang-toggle-button{position:absolute;top:var(--space-3);right:var(--space-3);z-index:1;flex-shrink:0;min-width:36px;height:28px;padding:0 var(--space-2);display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);font:650 .75rem/1 inherit;cursor:pointer;transition:border-color var(--duration-button) var(--ease),color var(--duration-button) var(--ease)}.lang-toggle-button:hover{border-color:var(--accent);color:var(--accent)}#auth-lang-toggle-button{right:calc(var(--space-3) + 34px)}.sidebar>section{padding:var(--space-3) 0}.sidebar>section:first-child,.sidebar>.lang-toggle-button+section{padding-top:0}.sidebar>section+section{border-top:1px solid var(--line)}h1,h2,p{margin:0}.wordmark{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-2)}.wordmark img{display:block;flex-shrink:0;width:34px;height:auto}h1{font-size:1.1rem;font-weight:650;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}h2{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:.92rem;font-weight:700;letter-spacing:0;text-transform:none;color:var(--ink)}.sidebar-section-icon{flex-shrink:0;color:#ffffffd9}.sidebar-section-toggle{padding:4px var(--space-2);margin:0 calc(var(--space-2) * -1) var(--space-2);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-hover) var(--ease)}.sidebar-section-toggle:hover,.sidebar-section-toggle:focus-visible{background:#ffffff1f;outline:none}.sidebar>section.sidebar-section-collapsed .sidebar-section-toggle{margin-bottom:0}.sidebar-section-chevron{margin-left:auto;flex-shrink:0;color:var(--faint);transition:transform var(--duration-hover) var(--ease)}.sidebar>section.sidebar-section-collapsed .sidebar-section-chevron{transform:rotate(-90deg)}.sidebar>section.sidebar-section-collapsed>:not(h2){display:none!important}.sidebar>section.sidebar-section-collapsed h2{margin-bottom:0}.sidebar-tutorial-link{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-2);margin:0 calc(var(--space-2) * -1);border-radius:var(--radius-md);font-size:.85rem;color:var(--muted);text-decoration:none;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.sidebar-tutorial-link+.sidebar-tutorial-link{margin-top:2px}.sidebar-tutorial-link:hover,.sidebar-tutorial-link:focus-visible{background:#ffffff1f;color:var(--ink);outline:none}.sidebar-section-external{margin-left:auto;flex-shrink:0;opacity:.55}.info-toggle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:1px solid var(--line);border-radius:50%;background:none;color:var(--faint);cursor:pointer;flex-shrink:0;transition:border-color var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.info-toggle svg{width:11px;height:11px}.info-toggle:hover,.info-toggle[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.info-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2{position:relative}.info-popover-wrap{position:static;display:inline-flex;margin-left:var(--space-1)}.info-popover[hidden]{display:none}.info-popover{position:absolute;top:100%;right:0;left:0;z-index:20;margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);font-size:.78rem;font-weight:400;line-height:1.55;text-transform:none;letter-spacing:0;box-shadow:var(--shadow-md);transform-origin:top right;animation:info-pop-in var(--duration-dropdown) var(--ease)}.info-popover p+p{margin-top:var(--space-2)}.info-popover strong{color:var(--ink);font-weight:650}.sidebar .info-popover{background:#0d2c4e;border-color:#ffffff2e}.sidebar #print-heading-input{background:#ffffff1a;color:var(--ink)}.sidebar #print-heading-input::placeholder{color:var(--faint)}@keyframes info-pop-in{0%{opacity:0;transform:scale(.98) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(prefers-reduced-motion:reduce){.info-popover{animation:none}}.subject-location-context-menu{position:fixed;z-index:2000;display:flex;flex-direction:column;min-width:200px;padding:var(--space-1);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-md);animation:info-pop-in var(--duration-dropdown) var(--ease)}.subject-location-context-menu button{padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--ink);font:inherit;font-size:.8rem;text-align:left;cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.subject-location-context-menu button:hover{background:var(--accent-soft);color:var(--accent)}.subject-location-context-menu button.danger{color:var(--error)}.subject-location-context-menu button.danger:hover{background:#f5e6e4;color:var(--error)}.subject-location-panel{position:fixed;z-index:950;bottom:70px;left:68px;display:flex;flex-direction:column;width:280px;height:320px;min-width:240px;min-height:200px;max-width:calc(100vw - var(--space-3) * 2);max-height:calc(100vh - var(--space-3) * 2);overflow:hidden;resize:both;border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-md);animation:info-pop-in var(--duration-dropdown) var(--ease)}.subject-location-panel-drag-handle{display:flex;align-items:center;justify-content:center;height:14px;border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab;touch-action:none}.subject-location-panel-drag-handle:hover{background:var(--accent-soft)}.subject-location-panel-drag-handle:active{cursor:grabbing}.subject-location-panel-drag-handle span{width:36px;height:4px;border-radius:999px;background:var(--line)}.subject-location-panel-header{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 var(--space-1) 0 var(--space-2);border-bottom:1px solid var(--line-soft);cursor:grab;touch-action:none}.subject-location-panel-header:active{cursor:grabbing}.subject-location-panel-tabs{display:flex;gap:var(--space-2);align-items:center}.subject-location-panel-tab{border:0;background:var(--panel);padding:5px 12px;border-radius:999px;font-size:.82rem;font-weight:650;color:var(--ink);cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.subject-location-panel-tab:hover{background:var(--accent-soft)}.subject-location-panel-tab.active{background:var(--accent);color:#fff}.subject-location-panel-tab.active:hover{background:var(--accent)}.subject-location-panel-close{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.subject-location-panel-close:hover{background:var(--accent-soft);color:var(--accent)}.subject-location-panel-body{flex:1;min-height:0;padding:var(--space-3);overflow-y:auto}.hklv-drawing-active .leaflet-pane>svg path.leaflet-interactive{pointer-events:none}.draw-tools-panel{position:fixed;z-index:950;top:272px;left:68px;display:flex;flex-direction:column;gap:var(--space-2);width:240px;max-width:calc(100vw - var(--space-3) * 2);max-height:calc(100vh - var(--space-3) * 2);overflow-y:auto;padding:var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-md);animation:info-pop-in var(--duration-dropdown) var(--ease)}.draw-tools-panel[hidden]{display:none}.draw-tools-panel-header{display:flex;align-items:center;justify-content:space-between;font-weight:650;font-size:.86rem}.draw-tools-panel-close{border:0;background:none;font-size:1.1rem;line-height:1;cursor:pointer;color:var(--muted);padding:2px 6px}.draw-tools-panel-close:hover{color:var(--accent)}.draw-tools-modes{display:flex;gap:var(--space-1)}.draw-tools-modes button{flex:1;display:flex;align-items:center;justify-content:center;height:36px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);cursor:pointer}.draw-tools-modes button:hover{border-color:var(--accent);color:var(--accent)}.draw-tools-modes button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.draw-tools-color-row{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--muted)}.draw-tools-color-input{width:48px;height:30px;padding:2px;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}.draw-tools-fill-color-row[hidden]{display:none}.draw-tools-snap-row{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;color:var(--muted)}.draw-tools-snap-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--muted);cursor:pointer}.draw-tools-snap-toggle:hover{border-color:var(--accent);color:var(--accent)}.draw-tools-snap-toggle.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.draw-tools-readout{font-size:.8rem;color:var(--ink);background:var(--accent-soft);border-radius:var(--radius-sm);padding:6px 8px}.draw-tools-name-input{width:100%;box-sizing:border-box}.draw-tools-actions{display:flex;flex-wrap:wrap;gap:var(--space-1)}.draw-tools-order-row[hidden]{display:none}.draw-tools-actions .file-button{flex:1 1 auto;min-height:34px;padding:6px 10px;font-size:.78rem}.draw-tools-actions .draw-tools-commit-button{flex-basis:100%}.search-bar-wrap{position:absolute;z-index:26;top:var(--space-3);left:68px;right:var(--space-3);max-width:360px}#map-status-banner{position:absolute;z-index:16;top:64px;left:50%;transform:translate(-50%);display:none;align-items:center;gap:var(--space-2);max-width:min(90vw,420px);padding:var(--space-2) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);font-size:.8rem;line-height:1.4;text-align:center;box-shadow:var(--shadow-md)}#map-status-banner.visible{display:flex}#map-status-banner.error{color:var(--error);border-color:var(--error)}.spinner{flex-shrink:0;width:13px;height:13px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}#map-status-banner.error .spinner{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.skeleton{position:relative;overflow:hidden;background:var(--line);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgb(255 255 255 / 55%),transparent);animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none;display:none}}.skeleton-line{height:12px}.skeleton-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.search-bar{display:flex;align-items:center;height:46px;padding:0 var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-button) var(--ease),border-color var(--duration-button) var(--ease)}.search-bar:focus-within{border-color:var(--accent);box-shadow:var(--shadow-md),0 0 0 3px var(--accent-soft)}.search-bar input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.88rem;color:var(--ink)}.search-bar input::placeholder{color:var(--faint)}.search-bar-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:var(--space-2);color:var(--faint);transition:color var(--duration-button) var(--ease)}.search-bar-icon svg{width:18px;height:18px}.search-bar:focus-within .search-bar-icon{color:var(--accent)}.search-bar-shortcut{flex-shrink:0;display:flex;align-items:center;gap:2px;margin-left:var(--space-2);padding:2px 6px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);color:var(--faint);font-size:.68rem;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,ui-sans-serif,sans-serif;letter-spacing:.01em;white-space:nowrap;pointer-events:none}.search-bar:focus-within .search-bar-shortcut,.search-bar input:not(:placeholder-shown)~.search-bar-shortcut{display:none}@media(max-width:480px){.search-bar-shortcut{display:none}}.search-bar button{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:var(--space-2);border:0;border-radius:var(--radius-sm);background:none;color:var(--muted);cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.search-bar button:hover{background:var(--accent-soft);color:var(--accent)}.search-bar button svg{width:17px;height:17px}.search-bar button:disabled{cursor:default;opacity:.7}.search-bar button.is-loading svg{display:none}.search-bar button .spinner{display:none}.search-bar button.is-loading .spinner{display:block}#location-search-results:not(:empty),#location-search-status:not(:empty){margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-md);animation:info-pop-in var(--duration-dropdown) var(--ease)}#location-search-results:not(:empty){max-height:min(60vh,480px);overflow-y:auto}#location-search-status:not(:empty){padding:var(--space-2) var(--space-3);font-size:.8rem;color:var(--muted)}.subject-location-marker,.aerial-photo-location-marker{background:transparent;border:none}.file-button[hidden]{display:none}.file-button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:var(--space-2) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--ink);font-size:.84rem;font-weight:550;background:var(--button-bg);transition:border-color var(--duration-button) var(--ease),background var(--duration-button) var(--ease),color var(--duration-button) var(--ease)}.file-button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.file-button:active{transform:translateY(1px)}.file-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.file-button input{display:none}.file-button.primary,.file-button.subject-location-load-button{border-color:var(--accent);background:var(--accent);color:#fff}.file-button.primary:hover,.file-button.subject-location-load-button:hover{border-color:var(--accent-dark);background:var(--accent-dark);color:#fff}.file-button.danger{color:var(--error);border-color:var(--line)}.file-button.danger:hover{border-color:var(--error);background:var(--error-soft);color:var(--error)}.sidebar .file-button.primary{border-color:#fff;background:#fff;color:var(--accent-dark)}.sidebar .file-button.primary:hover{border-color:#ffffffe0;background:#ffffffe0;color:var(--accent-dark)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#17140f73;padding:var(--space-6);animation:modal-fade-in var(--duration-panel) var(--ease)}.modal-overlay[hidden]{display:none}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:100%;max-width:420px;max-height:calc(100vh - 48px);overflow-y:auto;background:var(--panel);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);box-shadow:var(--shadow-lg);animation:modal-pop-in var(--duration-panel) var(--ease)}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal{animation:none}}.modal .wordmark{margin-top:0;margin-bottom:var(--space-1)}.wordmark-text{min-width:0}.brand-lockup{display:block;font-size:1.35rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--ink)}.brand-lockup-hk{color:var(--accent)}.brand-lockup+h1{font-size:.95rem;font-weight:600;letter-spacing:0;color:var(--muted);margin-top:var(--space-3)}.modal .brand-lockup{font-size:1.6rem}.modal .wordmark h1{font-size:.9rem}.wordmark-tagline{margin:6px 0 0;font-size:.78rem;line-height:1.35;color:var(--muted)}.modal .wordmark-tagline{margin-bottom:var(--space-3)}#dev-gate-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;background:var(--ink, #17140f);padding:var(--space-6)}.dev-gate-panel{width:100%;max-width:380px;background:var(--panel);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);box-shadow:var(--shadow-lg)}.dev-gate-panel h1{margin:0 0 var(--space-2);font-size:1.2rem}.dev-gate-panel p{margin:0 0 var(--space-4);font-size:.85rem;color:var(--muted)}.dev-gate-panel label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:var(--space-1)}.dev-gate-panel .field-input{margin-bottom:var(--space-3)}.dev-gate-panel button{width:100%}.modal-close{position:absolute;top:var(--space-2);right:var(--space-2);width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.modal-close svg{width:18px;height:18px}.modal-close:hover{background:var(--accent-soft);color:var(--accent)}.stt-panel,.land-acquisition-panel,.aerial-photo-panel{position:relative}.filter-panel-close{position:absolute;top:4px;right:4px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.filter-panel-close svg{width:14px;height:14px}.filter-panel-close:hover{background:var(--accent-soft);color:var(--accent)}.auth-disclaimer{margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--paper)}.auth-disclaimer h2{margin:0 0 var(--space-2);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.auth-disclaimer-text{max-height:140px;overflow-y:auto;padding-right:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--line)}.auth-disclaimer p{margin:0 0 var(--space-2);font-size:.78rem;color:var(--muted);line-height:1.5}.auth-disclaimer p:last-of-type{margin-bottom:var(--space-2)}.auth-disclaimer-checkbox-label{display:flex;align-items:flex-start;gap:var(--space-2);font-size:.78rem;color:var(--ink);cursor:pointer}.auth-disclaimer-checkbox-label input{margin-top:3px}.auth-disclaimer-checkbox-label.is-disabled{color:var(--muted);cursor:not-allowed}.auth-disclaimer-checkbox-label input:disabled{cursor:not-allowed}.auth-disclaimer-scroll-hint{margin:var(--space-2) 0 0;font-size:.72rem;font-style:italic;color:var(--muted)}.auth-disclaimer-scroll-hint[hidden]{display:none}.auth-legal-links{margin:var(--space-3) 0 0;font-size:.72rem;color:var(--muted)}.auth-inline-link{display:block;margin:var(--space-1) 0 0;padding:0;border:none;background:none;color:var(--muted);font-size:.74rem;text-decoration:underline;cursor:pointer;text-align:right;transition:color var(--duration-hover) var(--ease)}.auth-inline-link:hover,.auth-legal-links a{color:var(--accent)}#auth-form label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:var(--space-1)}.auth-form-error{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:.78rem;background:var(--error-soft);color:var(--error)}.account-settings-success{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:.78rem;background:var(--success-soft);color:var(--success)}.modal-actions{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.modal-actions .file-button{flex:1}.modal-secondary-action{display:block;width:100%;margin-top:var(--space-3);padding:var(--space-2);border:none;background:none;color:var(--muted);font-size:.82rem;text-decoration:underline;cursor:pointer;text-align:center;transition:color var(--duration-hover) var(--ease)}.modal-secondary-action:hover{color:var(--accent)}.modal-secondary-action[hidden]{display:none}.welcome-tutorial-recommend{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--accent-soft);font-size:.82rem;text-align:center}.welcome-tutorial-recommend a{color:var(--accent);font-weight:600}#welcome-modal-overlay .modal>div[data-i18n]{margin-top:var(--space-3);font-size:.85rem;line-height:1.55;color:var(--ink)}#welcome-modal-overlay .modal>div[data-i18n] p{margin:0 0 var(--space-3)}#welcome-modal-overlay .modal>div[data-i18n] p:last-child{margin-bottom:0}#welcome-modal-overlay .modal>div[data-i18n] strong{color:var(--ink);font-weight:650}.field-input:focus-visible,#sidebar-toggle-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.field-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);font:inherit;font-size:.85rem;color:var(--ink);transition:border-color var(--duration-button) var(--ease),box-shadow var(--duration-button) var(--ease)}.field-input:hover{border-color:var(--faint)}.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input::placeholder{color:var(--faint)}textarea.field-input{resize:vertical}.field-label{display:block;margin-bottom:var(--space-2);font-size:.8rem;font-weight:500;color:var(--muted)}.hint{font-size:.8rem;font-weight:500;color:var(--muted)}.btn-row{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.btn-row .file-button{flex:1}#location-search-results{display:none;flex-direction:column;gap:var(--space-2)}#location-search-status{margin-top:var(--space-2);font-size:.8rem;font-weight:500;color:var(--muted)}.search-result{justify-content:flex-start;color:var(--ink);font-weight:500;text-align:left}.status{margin-top:var(--space-2);font-size:.8rem;font-weight:500;line-height:1.4;color:var(--muted)}.status:empty{display:none}.locked-lots-empty{margin:0;font-size:.78rem;line-height:1.4;color:var(--muted)}.locked-lot-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:6px 2px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-hover) var(--ease)}.locked-lot-row:hover,.locked-lot-row-selected{background:var(--accent-soft)}.locked-lot-row+.locked-lot-row{border-top:1px solid var(--line-soft)}.locked-lot-name{font-size:.82rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.locked-lot-title-badge{color:var(--accent);font-weight:600}.locked-lot-remove{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:none;color:var(--faint);font-size:1rem;line-height:1;cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.locked-lot-remove:hover{background:#ff634738;color:var(--error)}.locked-lot-action{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:none;color:var(--faint);cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.locked-lot-action:hover{background:var(--accent-soft);color:var(--accent)}.locked-lot-row-hidden .locked-lot-name{opacity:.55}.locked-lot-row-hidden .locked-lot-action{color:var(--accent)}.locked-lot-row-multiselected{background:var(--accent-soft);outline:1px solid var(--accent);outline-offset:-1px}.lot-locker-line-swatch{flex-shrink:0;width:12px;height:12px;border-radius:50%;border:1px solid rgb(0 0 0 / 15%)}.lot-locker-panel{position:fixed;z-index:950;top:80px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;width:880px;height:480px;min-width:560px;min-height:280px;max-width:calc(100vw - var(--space-3) * 2);max-height:calc(100vh - var(--space-3) * 2);overflow:hidden;resize:both;border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-md);animation:info-pop-in var(--duration-dropdown) var(--ease)}.lot-locker-panel-title{font-weight:650;font-size:.92rem;color:var(--ink)}.lot-locker-panel-body{flex:1;min-height:0;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3);overflow:hidden}.lot-locker-body-flex{flex:1;min-height:0;display:flex;overflow:hidden}.lot-locker-gutter{flex-shrink:0;width:12px;margin:0 -5px;position:relative;z-index:1;cursor:col-resize}.lot-locker-gutter:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translate(-50%);background:var(--line-soft);transition:background var(--duration-hover) var(--ease)}.lot-locker-gutter:hover:after,.lot-locker-gutter-dragging:after{background:var(--accent)}.lot-locker-sidebar{width:160px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);overflow:hidden}.lot-locker-new-folder-row{display:flex;gap:var(--space-2);flex-shrink:0}.lot-locker-new-folder-row input{flex:1;min-width:0;box-sizing:border-box;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem}.lot-locker-add-folder-button{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--button-bg);color:var(--ink);font-size:1.1rem;line-height:1;cursor:pointer;transition:background var(--duration-hover) var(--ease)}.lot-locker-add-folder-button:hover{background:var(--accent-soft)}.lot-locker-tree{flex:1;min-height:0;overflow-y:auto;padding:4px;border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.lot-locker-tree-item{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-hover) var(--ease)}.lot-locker-tree-item:hover,.lot-locker-tree-item-selected{background:var(--accent-soft)}.lot-locker-tree-item-selected .lot-locker-tree-name{font-weight:650}.lot-locker-tree-icon{display:flex;flex-shrink:0;color:var(--muted)}.lot-locker-tree-item-selected .lot-locker-tree-icon{color:var(--accent)}.lot-locker-tree-name{flex:1;min-width:0;font-size:.82rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lot-locker-tree-count{flex-shrink:0;font-size:.72rem;color:var(--muted)}.lot-locker-tree-actions{display:none;flex-shrink:0;gap:2px}.lot-locker-tree-item:hover .lot-locker-tree-actions{display:flex}.lot-locker-tree-action{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:none;color:var(--faint);cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.lot-locker-tree-action:hover{background:#ff634738;color:var(--error)}.lot-locker-folder-rename-input{flex:1;min-width:0;font:inherit;font-size:.82rem;font-weight:650;padding:2px 4px;border:1px solid var(--accent);border-radius:4px}.lot-locker-main{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow:hidden}.lot-locker-main-header{flex-shrink:0;padding:8px var(--space-2);font-size:.82rem;font-weight:650;color:var(--ink);background:var(--button-bg);border-bottom:1px solid var(--line-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lot-locker-main-header-count{font-weight:500;color:var(--muted)}.lot-locker-main-header-bulk{padding:6px var(--space-2);background:var(--accent-soft)}.lot-locker-bulk-bar{display:flex;align-items:center;gap:6px;white-space:normal}.lot-locker-bulk-count{font-weight:650;color:var(--accent);margin-right:2px;flex-shrink:0}.lot-locker-bulk-action{flex-shrink:0;padding:3px 9px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);font-size:.76rem;font-weight:600;cursor:pointer;transition:background var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease),border-color var(--duration-hover) var(--ease)}.lot-locker-bulk-action:hover{background:var(--accent);color:var(--panel);border-color:var(--accent)}.lot-locker-bulk-action-danger:hover{background:var(--error);border-color:var(--error)}.lot-locker-main-list{flex:1;min-height:0;overflow-y:auto;padding:4px var(--space-2)}.lot-locker-detail{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);overflow-y:auto;border:1px solid var(--line-soft);border-radius:var(--radius-sm)}.lot-locker-detail-empty{margin:0;font-size:.78rem;line-height:1.4;color:var(--muted)}.lot-locker-detail-heading{font-size:.82rem;font-weight:650;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lot-locker-detail-field{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--muted)}.lot-locker-detail-field .field-input{font-size:.82rem;padding:6px 8px}.lot-locker-detail-textarea{min-height:180px;flex:1}.lot-locker-detail-color-input{height:34px;padding:2px;cursor:pointer}.lot-locker-detail-stats{display:flex;flex-direction:column;gap:2px;font-size:.76rem;color:var(--ink);padding:6px 0 2px}.lot-locker-detail-order-row{display:flex;gap:var(--space-1);margin-top:4px}.lot-locker-detail-order-row .file-button{flex:1 1 auto;min-height:34px;padding:6px 10px;font-size:.78rem}.lot-locker-dragover{background:var(--accent-soft)!important}.lot-locker-footer{display:flex;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line-soft);flex-shrink:0}.lot-locker-footer .file-button{flex:1}.lot-locker-import-input{display:none}.status.error{color:var(--error)}#lot-list{display:grid;gap:1px;margin-top:var(--space-4);max-height:340px;overflow-y:auto;background:var(--line);border:1px solid var(--line-soft);border-radius:var(--radius-md)}.lot-card{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--panel);transition:background var(--duration-button) var(--ease)}.lot-card:hover{background:var(--paper)}.lot-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.lot-card .remove-lot{flex-shrink:0;padding:3px var(--space-2);border:1px solid var(--line);border-radius:var(--radius-sm);background:none;color:var(--faint);font-size:.72rem;cursor:pointer;transition:border-color var(--duration-hover) var(--ease),color var(--duration-hover) var(--ease)}.lot-card .remove-lot:hover{border-color:var(--error);color:var(--error)}.lot-hidden-badge{font-weight:500;color:var(--faint);font-size:.74rem}.empty-details{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-5);text-align:center;background:var(--panel)}.empty-glyph{width:26px;height:26px;margin-bottom:2px}.empty-glyph rect{fill:none;stroke:var(--line);stroke-width:1.4}.empty-glyph path{fill:none;stroke:var(--faint);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.empty-title{font-size:.85rem;font-weight:600;color:var(--muted)}.empty-caption{font-size:.8rem;font-weight:500;color:var(--faint);max-width:220px}.lot-name{font-size:1.05rem;font-weight:650;letter-spacing:-.01em}.lot-card-meta{display:grid;gap:var(--space-1)}.detail-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:baseline;font-size:.8rem}.detail-row span{color:var(--faint);font-weight:500}.detail-row strong{overflow-wrap:anywhere;text-align:right;font-weight:550;font-variant-numeric:tabular-nums;color:var(--muted)}.lot-card-action{margin-top:2px;padding-top:var(--space-2);border-top:1px solid var(--line);font-size:.8rem;color:var(--accent);text-decoration:none}.lot-card-action:hover{text-decoration:underline}#map{position:relative;z-index:1;width:100%;height:100%;background:#dde3e6}#cesium-view{position:relative;z-index:1;width:100%;height:100%;background:#000}.leaflet-bar,.leaflet-control-layers{border:1px solid var(--line)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important}.leaflet-bar a{border-bottom-color:var(--line)!important;color:var(--ink)!important;background:var(--panel)!important;transition:background var(--duration-hover) ease,color var(--duration-hover) ease!important}.leaflet-bar a:first-child{border-top-left-radius:var(--radius-md)!important;border-top-right-radius:var(--radius-md)!important}.leaflet-bar a:last-child{border-bottom-left-radius:var(--radius-md)!important;border-bottom-right-radius:var(--radius-md)!important}.leaflet-bar a:hover,.leaflet-bar a:focus{background:var(--accent-soft)!important;color:var(--accent)!important}.leaflet-control-layers-toggle{border-radius:var(--radius-sm)!important}.leaflet-control-layers-expanded{padding:var(--space-3)!important;color:var(--ink)!important;font:.8rem/1.5 inherit!important}.leaflet-control-scale-line{border:2px solid var(--muted)!important;border-top:none!important;color:var(--muted)!important;background:#ffffffc7!important;font:11px/1.4 inherit!important}.leaflet-control-attribution{border-radius:var(--radius-sm)!important;color:var(--muted)!important;background:#ffffffd1!important}.leaflet-control-attribution a{color:var(--accent)!important}.coordinate-readout{min-width:220px;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);color:#2b2822;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#fffffff0;box-shadow:0 1px 3px #17140f14}.tilt-control-link{display:flex;align-items:center;justify-content:center;width:26px;height:26px;cursor:ns-resize;-webkit-user-select:none;user-select:none}.tilt-control-indicator{font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--muted)}.tilt-control.tilt-control-active .tilt-control-link{background:var(--accent-soft)}.tilt-control.tilt-control-active .tilt-control-indicator{color:var(--accent)}.locate-control-link{display:flex;align-items:center;justify-content:center;width:26px;height:26px}.locate-control.locate-control-active .locate-control-link{background:var(--accent-soft);color:var(--accent)!important}.three-d-exit-button{position:absolute;right:10px;bottom:24px;z-index:10;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:4px;background:var(--surface, #fff);color:#333;border:2px solid rgba(0,0,0,.2);border-radius:4px;cursor:pointer}.three-d-exit-button:hover{background:var(--accent-soft);color:var(--accent)}.three-d-reset-button{position:absolute;right:10px;bottom:60px;z-index:10;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:4px;background:var(--surface, #fff);color:#333;border:2px solid rgba(0,0,0,.2);border-radius:4px;cursor:pointer}.three-d-reset-button:hover{background:var(--accent-soft);color:var(--accent)}.three-d-compass-hint{position:absolute;top:203px;right:8px;z-index:10;max-width:200px;padding:6px 10px;background:#141414d9;color:#fff;font-size:.78rem;line-height:1.3;border-radius:6px;pointer-events:none;animation:three-d-compass-hint-fade-in .3s ease}@keyframes three-d-compass-hint-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cesium-widget-cesiumNavigationContainer{position:absolute!important;top:0;left:0;width:100%;height:100%;pointer-events:none}.compass{filter:drop-shadow(0 1px 4px rgba(0,0,0,.7))}.compass-outer-ring-background{border-color:#2f353c!important}.compass-gyro-background{background-color:#2f353c!important}.data-explorer-toggle-link.directions-toggle-active{background:var(--accent-soft);color:var(--accent)!important}.live-tracking-marker{position:relative}.live-tracking-marker-dot{position:absolute;top:5px;left:5px;width:8px;height:8px;border-radius:50%;background:#1a9e56;border:2px solid #fff;box-shadow:0 0 0 1px #1a9e56}.live-tracking-marker-pulse{position:absolute;top:0;left:0;width:18px;height:18px;border-radius:50%;background:#1a9e56;opacity:.5;animation:live-tracking-pulse 1.6s ease-out infinite}@keyframes live-tracking-pulse{0%{transform:scale(.4);opacity:.55}to{transform:scale(1.6);opacity:0}}@media(prefers-reduced-motion:reduce){.live-tracking-marker-pulse{animation:none;opacity:.2}}.live-tracking-status{text-align:center}.live-tracking-stop-button{margin-top:4px;font:inherit;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer}.live-tracking-stop-button:hover{background:var(--accent-soft);color:var(--accent)}.pro-badge{display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.02em;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}body.help-mode-active,body.help-mode-active *{cursor:help!important}#rail-help-button.is-active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.help-mode-banner{position:fixed;bottom:12px;left:50%;transform:translate(-50%);z-index:3000;display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;max-width:min(92vw,520px);padding:var(--space-2) var(--space-4);border-radius:999px;background:var(--accent);color:#fff;font-size:.78rem;font-weight:600;text-align:center;box-shadow:var(--shadow-md)}.help-mode-exit-button{flex-shrink:0;font:inherit;font-weight:700;padding:4px 12px;border-radius:999px;border:1px solid rgb(255 255 255 / 60%);background:#ffffff26;color:#fff;cursor:pointer!important}.help-mode-exit-button:hover{background:#ffffff47}.help-mode-popover{position:fixed;z-index:3000;max-width:300px;padding:var(--space-3) var(--space-4);padding-right:36px;border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);color:var(--ink);box-shadow:var(--shadow-md);font-size:.82rem;line-height:1.5;animation:info-pop-in var(--duration-dropdown) var(--ease)}.help-mode-popover-heading{font-weight:700;margin-bottom:4px}.help-mode-popover-body{color:var(--muted)}.help-mode-popover-close{position:absolute;top:6px;right:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer!important}.help-mode-popover-close svg{width:14px;height:14px}.help-mode-popover-close:hover{background:var(--accent-soft);color:var(--accent)}.layers-toggle{position:relative;display:flex;flex-direction:column;align-items:center;width:56px;background:var(--panel);border-radius:var(--radius-md)}.layers-toggle-link{display:flex!important;align-items:center;justify-content:center;width:44px!important;height:44px!important;line-height:normal!important;flex-shrink:0;border-bottom:none!important}.layers-panel{position:absolute;top:0;right:calc(100% + var(--space-2));max-height:calc(100vh - 24px);overflow-y:auto;z-index:1000;padding:var(--space-2) var(--space-3);border-color:var(--line-soft)!important;border-radius:var(--radius-md);background:var(--panel);cursor:default;font:.8rem/1.5 inherit;color:var(--ink);animation:info-pop-in var(--duration-dropdown) var(--ease)}.layers-panel-heading{margin:var(--space-2) 0 var(--space-1);color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.layers-panel-heading:first-child{margin-top:0}.layers-panel-separator{margin:var(--space-2) 0;border-top:1px solid var(--line-soft)}.layers-panel-row{display:flex;align-items:center;gap:var(--space-2);padding:3px 0;white-space:nowrap;cursor:pointer}.layers-panel-row input{margin:0;cursor:pointer}.data-explorer-toggle{position:relative;display:flex;flex-direction:column;align-items:center;width:56px;background:var(--panel);border-radius:var(--radius-md)}.data-explorer-toggle-link{display:flex!important;align-items:center;justify-content:center;width:44px!important;height:44px!important;line-height:normal!important;flex-shrink:0;border-bottom:none!important}.rail-icon-caption{display:block;width:100%;box-sizing:border-box;padding:2px 2px 4px;font-size:9px;font-weight:650;line-height:1.15;text-align:center;color:var(--ink);background:var(--panel);cursor:pointer;overflow-wrap:break-word;border-bottom-left-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rail-icon-caption:hover{color:var(--accent)}.data-explorer-panel{position:absolute;top:0;right:calc(100% + var(--space-2));max-height:calc(100vh - 24px);overflow-y:auto;z-index:1000;border-color:var(--line-soft)!important;border-radius:var(--radius-md);background:var(--panel);cursor:default;animation:info-pop-in var(--duration-dropdown) var(--ease)}.rvd-stats-modal{max-width:780px}.rvd-stats-modal table{color:var(--ink)}.land-records-modal{max-width:960px}.land-records-modal table{color:var(--ink)}.dev-potential-modal{max-width:820px}.rvd-stats-skeleton{display:flex;flex-direction:column;gap:var(--space-4)}.rvd-stats-skeleton .skeleton-chart{height:180px;border-radius:var(--radius-md)}.rvd-stats-skeleton .skeleton-row-line{height:14px;border-radius:var(--radius-sm)}.rvd-stats-skeleton .skeleton-row-line:nth-child(1){width:100%}.rvd-stats-skeleton .skeleton-row-line:nth-child(2){width:92%}.rvd-stats-skeleton .skeleton-row-line:nth-child(3){width:96%}.rvd-stats-skeleton .skeleton-row-line:nth-child(4){width:84%}.rvd-stats-skeleton .skeleton-row-line:nth-child(5){width:90%}.lot-tooltip{padding:3px var(--space-2);border:0;border-radius:var(--radius-sm);color:var(--ink);font-weight:650;font-size:.82rem;background:#fffffff0;box-shadow:var(--shadow-sm)}.lot-number-label{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important;font-weight:700;font-size:.8rem;text-shadow:0 0 3px rgb(0 0 0 / 65%),0 1px 2px rgb(0 0 0 / 55%);pointer-events:none!important}.lot-hover-tooltip{padding:2px var(--space-2)!important;border:0!important;border-radius:var(--radius-sm)!important;color:var(--muted)!important;font-size:.72rem!important;background:#fffffff0!important;box-shadow:var(--shadow-sm)!important;max-width:260px!important;width:max-content!important;white-space:normal!important}.lot-hover-tooltip:has(.lot-hover-tooltip-title){max-width:340px!important;width:max-content!important;padding:8px 10px!important;font-size:.78rem!important;line-height:1.4!important;white-space:normal!important}.lot-hover-tooltip-title{font-weight:700;color:var(--ink);font-size:.85rem}.lot-hover-tooltip-content{margin-top:2px;white-space:pre-wrap!important}.zone-tooltip{padding:1px 5px;font-size:.7rem;font-weight:600;color:#3a2e1a;background:#fff6;box-shadow:none}.pt-route-panel{background:#fffffff0}.village-tooltip{color:var(--accent)}.zone-status{margin-bottom:var(--space-2);font-size:.76rem}.bd-details summary::-webkit-details-marker{display:none}.bd-details summary::marker{content:""}.bd-details[open] .bd-details-arrow{transform:rotate(90deg)}.leaflet-popup-content{max-height:60vh;overflow-y:auto}@media(max-width:720px){.sidebar{padding:var(--space-3) var(--space-5)}.search-bar-wrap{left:60px;right:var(--space-3);top:var(--space-2);max-width:none}.leaflet-top.leaflet-right{top:68px}}.print-only{display:none}#print-outline{position:fixed;z-index:900;pointer-events:none;border:2px dashed var(--accent, #1d5a8f);background:#1d5a8f0a;box-shadow:0 0 0 2000px #0000001f}.leaflet-control-rotate.print-rotate-locked{pointer-events:none;opacity:.4}#print-outline:after{content:attr(data-label);position:absolute;top:-1px;left:-2px;transform:translateY(-100%);font-size:.72rem;font-weight:600;color:var(--accent, #1d5a8f);background:var(--panel, #fff);padding:1px 6px;border-radius:4px 4px 0 0;white-space:nowrap}@media print{#print-outline,.sidebar,.sidebar-scrim,#sidebar-toggle-button,.search-bar-wrap,.sidebar-rail,.leaflet-top,.leaflet-bottom,.subject-location-panel,.lot-locker-panel,.subject-location-context-menu,.modal-overlay,.leaflet-popup,.ai-chat-bubble-button,.ai-chat-panel{display:none!important}.app{padding:46px 0 0}.leaflet-control-layers,.leaflet-control-zoom,.tilt-control,.locate-control,.coordinate-readout{display:none!important}.print-only{display:block}#print-heading:empty{display:none}#print-heading{position:absolute;top:0;left:0;right:0;height:46px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;text-align:center}}.legal-page{min-height:100%;display:flex;justify-content:center;padding:40px 24px 80px}.legal-page-panel{width:100%;max-width:640px}.legal-back-link{display:inline-block;margin-bottom:var(--space-6);font-size:.85rem;color:var(--accent);text-decoration:none}.legal-back-link:hover{text-decoration:underline}.legal-page-panel h1{margin:0 0 var(--space-1);font-size:1.6rem}.legal-updated{margin:0 0 var(--space-8);font-size:.8rem;color:var(--muted)}.legal-page-panel h2{margin:var(--space-8) 0 var(--space-2);font-size:1.05rem;font-weight:650;text-transform:none;letter-spacing:0;color:var(--ink)}.legal-page-panel p,.legal-page-panel li{font-size:.9rem;line-height:1.6;color:var(--ink)}.legal-page-panel ul{margin:0 0 var(--space-3);padding-left:22px}.legal-page-panel a{color:var(--accent)}.legal-footer-links{margin-top:var(--space-10);padding-top:var(--space-4);border-top:1px solid var(--line)}.tut-page{max-width:1760px;margin:0 auto;padding:0 clamp(20px,4vw,72px) 96px;color:var(--ink)}.tut-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;font-size:.85rem}.tut-topbar a{color:var(--accent);text-decoration:none}.tut-topbar a:hover{text-decoration:underline}.tut-lang{color:var(--muted)}.tut-lang a{margin-left:10px}.tut-hero{text-align:center;padding:32px 0 8px}.tut-hero h1{margin:0 0 12px;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;letter-spacing:-.01em}.tut-hero p{margin:0 auto;max-width:40ch;font-size:1.05rem;color:var(--muted)}.tut-media.tut-hero-shot{max-width:1200px;margin:32px auto 8px}.tut-section{display:grid;grid-template-columns:1fr;gap:24px;align-items:center;padding:56px 0;border-top:1px solid var(--line-soft)}@media(min-width:820px){.tut-section{grid-template-columns:minmax(320px,34rem) 1fr;gap:clamp(40px,5vw,88px);padding:72px 0}}.tut-eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;color:var(--accent);margin-bottom:10px}.tut-copy h2{margin:0 0 16px;font-size:clamp(1.35rem,2.6vw,1.9rem);line-height:1.2;letter-spacing:-.01em}.tut-copy ul{margin:0;padding:0;list-style:none}.tut-copy li{position:relative;padding:7px 0 7px 26px;font-size:1rem;line-height:1.45;color:var(--ink)}.tut-copy li:before{content:"";position:absolute;left:4px;top:15px;width:7px;height:7px;border-radius:999px;background:var(--accent)}.tut-copy li b{font-weight:650}.tut-note{margin-top:14px;font-size:.85rem;color:var(--muted)}.tut-media{min-width:0;margin:0}.tut-media img,.tut-media video{display:block;width:100%;height:auto;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);box-shadow:0 12px 32px -12px #17140f2e}.tut-media.is-inset img{max-width:460px;margin:0 auto}.tut-media figcaption{margin-top:10px;font-size:.8rem;color:var(--faint);text-align:center}.tut-foot{margin-top:72px;padding-top:24px;border-top:1px solid var(--line);text-align:center;font-size:.85rem;color:var(--muted)}.tut-foot a{color:var(--accent);text-decoration:none}.tut-stack{display:grid;gap:16px}.tut-stack figure{margin:0}.tut-stack:not(.is-row) img{width:auto;max-width:100%}@media(min-width:520px){.tut-stack.is-row{grid-template-columns:1fr 1fr}}.tut-stack figcaption{margin-top:6px;font-size:.74rem;color:var(--faint);text-align:center}.tut-grid4{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tut-grid4 figure{margin:0}.tut-grid4 img{width:100%}.tut-grid4 figcaption{margin-top:5px;font-size:.72rem;color:var(--faint);text-align:center}@media(min-width:820px){.tut-section.is-media-major{grid-template-columns:minmax(280px,26rem) 1fr}.tut-section.is-media-major.is-media-left{grid-template-columns:1fr minmax(280px,26rem)}.tut-section.is-media-left .tut-media{order:-1}}.tut-copy code{font-size:.9em;background:var(--accent-soft);color:var(--accent-dark);padding:1px 5px;border-radius:4px}.tut-copy li>span{color:var(--muted);font-size:.82em;font-weight:600}.tut-media img,.tut-stack img,.tut-grid4 img{cursor:zoom-in}.tut-media,.tut-media figure{position:relative}.tut-zoom{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:0;border-radius:999px;background:#17140fa8;color:#fff;font:inherit;font-size:.74rem;line-height:1;cursor:zoom-in}.tut-zoom:hover{background:#17140fd6}.tut-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:3vmin;background:#17140fe0;cursor:zoom-out}.tut-lightbox.is-open{display:flex}.tut-lightbox img,.tut-lightbox video{max-width:100%;max-height:100%;border-radius:var(--radius-md);box-shadow:0 24px 64px -12px #0000008c}.tut-matrix-wrap{overflow-x:auto;margin:8px 0 24px}.tut-matrix{border-collapse:collapse;width:100%;font-size:.95rem}.tut-matrix caption{caption-side:top;text-align:left;font-size:.8rem;color:var(--muted);padding-bottom:10px}.tut-matrix th,.tut-matrix td{padding:12px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top}.tut-matrix thead th{position:sticky;top:0;background:var(--paper);border-bottom:2px solid var(--line);font-size:.8rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.tut-matrix thead th:first-child{text-align:left}.tut-matrix thead th:not(:first-child),.tut-matrix tbody td{text-align:center;width:14%}.tut-matrix tbody th{text-align:left;font-weight:500;color:var(--ink);line-height:1.35}.tut-matrix tr.tut-grp th{padding-top:22px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line)}.tut-yes{color:var(--accent);font-weight:700}.tut-no{color:var(--faint)}.tut-fn{margin:4px 0 0;font-size:.82rem;color:var(--muted)}.tut-fn sup,.tut-matrix sup{color:var(--accent);font-weight:700}@media(max-width:620px){.tut-matrix{font-size:.78rem}.tut-matrix th,.tut-matrix td{padding:8px 4px}.tut-matrix thead th{font-size:.66rem;letter-spacing:0}.tut-matrix thead th:not(:first-child),.tut-matrix tbody td{width:18%}.tut-matrix tbody th{width:46%}}.tut-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:4px 0 36px}.tut-tabs a{padding:7px 16px;border-radius:999px;border:1px solid var(--line);font-size:.88rem;text-decoration:none;color:var(--ink)}.tut-tabs a:hover{border-color:var(--accent)}.tut-tabs a.is-current{background:var(--accent);border-color:var(--accent);color:#fff}.ai-chat-bubble-button{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:1200;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);transition:transform var(--duration-hover) var(--ease),background var(--duration-hover) var(--ease)}.ai-chat-bubble-button:hover{background:var(--accent-dark);transform:scale(1.05)}.ai-chat-bubble-button.is-active{background:var(--accent-dark)}.ai-chat-panel{position:fixed;z-index:1200;display:flex;flex-direction:column;width:min(340px,calc(100vw - var(--space-3) * 2));height:min(460px,calc(100vh - 140px));border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--panel);box-shadow:var(--shadow-lg);overflow:hidden;animation:info-pop-in var(--duration-dropdown) var(--ease)}.ai-chat-panel-header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);background:var(--accent-soft)}.ai-chat-panel-title{font-weight:650;font-size:.92rem;color:var(--ink)}.ai-chat-panel-close{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);cursor:pointer}.ai-chat-panel-close:hover{background:#0000000f;color:var(--ink)}.ai-chat-messages{flex:1;min-height:0;overflow-y:auto;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.ai-chat-message{max-width:84%;padding:8px 12px;border-radius:var(--radius-md);font-size:.85rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:break-word}.ai-chat-message-assistant{align-self:flex-start;background:var(--button-bg);color:var(--ink);border-bottom-left-radius:4px}.ai-chat-message-user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.ai-chat-message-pending{color:var(--muted);font-style:italic}.ai-chat-input-row{flex:none;display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--line)}.ai-chat-input{flex:1;resize:none;max-height:96px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);font:inherit;font-size:.85rem;color:var(--ink);background:var(--paper)}.ai-chat-input:focus{outline:none;border-color:var(--accent)}.ai-chat-send-button{flex:none;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer}.ai-chat-send-button:hover{background:var(--accent-dark)}.ai-chat-send-button:disabled{opacity:.5;cursor:default}
