.wrap{display:grid;grid-template-rows:auto 1fr;gap:12px;height:100vh;padding:16px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--panel);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:10px 12px;box-shadow:var(--shadow)}.toolbar .sp{width:1px;height:24px;background:#ffffff14;margin:0 6px}.btn-engine{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,#4ecdc4,#7fdbda);color:#fff;font-weight:600;padding:8px 16px;transition:all .3s ease}.btn-engine:hover{transform:translateY(-2px);box-shadow:0 8px 20px #4ecdc466}.btn-engine[data-engine="3d"]{background:linear-gradient(135deg,#667eea,#764ba2)}.btn-engine[data-engine="3d"]:hover{box-shadow:0 8px 20px #667eea66}.engine-icon{font-size:1.2rem}.engine-text{font-size:.9rem}.select{background:var(--panel);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 12px;color:var(--txt);font-size:.9rem;cursor:pointer;transition:all .2s ease}.select:hover{border-color:var(--accent)}.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #6aa6ff1a}.level-control{display:flex;align-items:center;gap:8px}.level-control label{font-size:.9rem;color:var(--muted)}.slider{width:120px;height:6px;border-radius:3px;background:#ffffff1a;outline:none;cursor:pointer}.slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 2px 8px #6aa6ff66}.slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:none;box-shadow:0 2px 8px #6aa6ff66}.level-input{width:50px;background:var(--panel);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:4px 8px;color:var(--txt);text-align:center;font-size:.9rem}.level-input:focus{outline:none;border-color:var(--accent)}.toggle-wrapper{display:flex;align-items:center;gap:8px;background:#ffffff0d;padding:6px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.1)}.toggle-label{font-size:.9rem;color:var(--txt);font-weight:500}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px}.toggle-switch input{opacity:0;width:0;height:0}.slider-round{position:absolute;cursor:pointer;inset:0;background-color:#fff3;transition:.4s;border-radius:20px}.slider-round:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider-round{background-color:var(--accent)}input:checked+.slider-round:before{transform:translate(16px)}.level-label{font-size:.9rem;color:var(--muted)}.btn-mode{display:flex;align-items:center;gap:4px;opacity:.6;transition:all .2s ease}.btn-mode.active{opacity:1;background:#6aa6ff33;border-color:var(--accent)}.split{display:grid;grid-template-columns:1fr 380px;gap:12px;height:100%;min-height:0}.map-stage{position:relative;background:#0a0f1d;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.map-container{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .3s ease}.map-container.active{opacity:1;pointer-events:auto}.map-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000b3;backdrop-filter:blur(10px);z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s ease}.map-loading.show{opacity:1;pointer-events:auto}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:16px;color:var(--txt);font-size:.9rem}.sidebar{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding-right:4px}.sidebar::-webkit-scrollbar,.result-list::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track,.result-list::-webkit-scrollbar-track{background:#ffffff08;border-radius:10px}.sidebar::-webkit-scrollbar-thumb,.result-list::-webkit-scrollbar-thumb{background:#6aa6ff4d;border-radius:10px;border:2px solid transparent;background-clip:padding-box}.sidebar::-webkit-scrollbar-thumb:hover,.result-list::-webkit-scrollbar-thumb:hover{background:#6aa6ff80;border-radius:10px;border:2px solid transparent;background-clip:padding-box}.sidebar::-webkit-scrollbar-thumb:active,.result-list::-webkit-scrollbar-thumb:active{background:#6aa6ffb3}.sidebar,.result-list{scrollbar-width:thin;scrollbar-color:rgba(106,166,255,.3) rgba(255,255,255,.03)}[data-theme=light] .sidebar::-webkit-scrollbar-track,[data-theme=light] .result-list::-webkit-scrollbar-track{background:#0000000d}[data-theme=light] .sidebar::-webkit-scrollbar-thumb,[data-theme=light] .result-list::-webkit-scrollbar-thumb{background:#3b82f666}[data-theme=light] .sidebar::-webkit-scrollbar-thumb:hover,[data-theme=light] .result-list::-webkit-scrollbar-thumb:hover{background:#3b82f699}[data-theme=light] .sidebar::-webkit-scrollbar-thumb:active,[data-theme=light] .result-list::-webkit-scrollbar-thumb:active{background:#3b82f6cc}[data-theme=light] .sidebar,[data-theme=light] .result-list{scrollbar-color:rgba(59,130,246,.4) rgba(0,0,0,.05)}.panel{background:var(--panel);border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:var(--shadow)}.panel-flex{flex:1;display:flex;flex-direction:column;min-height:360px}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.panel-header strong{font-size:.95rem;color:var(--txt)}.panel-actions{display:flex;gap:6px}.panel-content{padding:16px;display:flex;flex-direction:column;gap:12px}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:.85rem;color:var(--muted);font-weight:500}.hint-text{font-size:.75rem;opacity:.7}.input-group input{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 12px;color:var(--txt);font-size:.9rem;transition:all .2s ease}.input-group input:focus{outline:none;border-color:var(--accent);background:#ffffff14;box-shadow:0 0 0 3px #6aa6ff1a}.input-group input::placeholder{color:var(--muted);opacity:.5}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:600;padding:10px 16px;transition:all .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 20px #6aa6ff66}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.result-list{flex:1;overflow:auto;border-top:1px solid rgba(255,255,255,.06)}.result-list table{width:100%;border-collapse:collapse}.result-list th,.result-list td{padding:10px 12px;text-align:left;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.04)}.result-list th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:600;z-index:1}.result-list td{color:var(--txt)}.result-list .muted{color:var(--muted)}.detail-empty{text-align:center;padding:20px;font-size:.85rem}.detail-item{display:flex;justify-content:space-between;padding:8px 0;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.04)}.detail-item:last-child{border-bottom:none}.detail-label{color:var(--muted);font-weight:500}.detail-value{color:var(--txt);font-family:Courier New,monospace}.spatial-panel{gap:10px}.spatial-hint{font-size:.85rem;color:var(--muted);line-height:1.6;background:#ffffff08;border:1px dashed rgba(255,255,255,.12);border-radius:10px;padding:10px 12px}.spatial-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.meta-item{display:flex;flex-direction:column;gap:4px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:10px}.spatial-results{max-height:180px;overflow:auto;display:grid;gap:6px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:10px;padding:10px}.spatial-tag{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:8px;background:#6aa6ff14;border:1px solid rgba(106,166,255,.2);font-family:Courier New,monospace;font-size:.85rem;color:var(--txt)}.spatial-tag small{color:var(--muted);font-size:.75rem}.hint{background:var(--panel);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;font-size:.8rem;color:var(--muted);line-height:1.6}.kbd{display:inline-block;border:1px solid rgba(255,255,255,.2);padding:2px 6px;border-radius:6px;background:#ffffff0d;font-size:.75rem;font-family:monospace}.toast{position:fixed;top:80px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 20px;box-shadow:0 8px 32px #0000004d;backdrop-filter:blur(20px);z-index:10000;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease}.toast.show{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(10px)}.toast.success{border-color:var(--accent-2);color:var(--accent-2)}.toast.error{border-color:#ff6b6b;color:#ff6b6b}@media (max-width: 1024px){.split{grid-template-columns:1fr;grid-template-rows:1fr auto}.sidebar{max-height:400px}.level-control{flex-wrap:wrap}}@media (max-width: 768px){.wrap{padding:8px}.toolbar{padding:8px;gap:6px}.level-control .slider{width:80px}.split{gap:8px}}.grid-direction-btn{background:#1e293bd9;border:1px solid rgba(255,255,255,.15);color:#6aa6ff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;pointer-events:auto;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -1px #00000026;backdrop-filter:blur(4px);z-index:1000}.grid-direction-btn:hover{background:#6aa6ff;color:#fff;transform:scale(1.15);box-shadow:0 0 15px #6aa6ff99;border-color:transparent}.grid-direction-btn:active{transform:scale(.95)}.grid-label-tooltip{background:#0f172a!important;border:2px solid #22d3ee!important;color:#22d3ee!important;border-radius:8px!important;padding:6px 12px!important;font-size:14px!important;font-weight:600!important;font-family:Segoe UI,monospace!important;box-shadow:0 0 20px #22d3ee66,0 8px 16px #000c!important;white-space:nowrap!important;opacity:1!important;letter-spacing:1px;z-index:10000!important}.grid-label-tooltip:before{display:none!important}.grid-label-icon-hidden{background:transparent!important;border:none!important;width:0!important;height:0!important}
