:root{--bg:#0e1014;--surface:#161a21;--text:#e6e9ee;--muted:#9aa4b1;--accent:#41c4b7;--ink:#061018;--ring:rgba(65,196,183,.28);--radius:14px}.app{height:100%}.gate{height:100%;display:grid;place-items:center;padding:24px}.panel{width:min(560px,100%);background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:0 4px 20px #0006}h1{margin:0 0 8px;font-size:28px}.muted{color:var(--muted);margin:0 0 16px}.btn{display:inline-block;background:var(--accent);color:var(--ink);border:none;padding:12px 16px;border-radius:12px;cursor:pointer;font-weight:600}.btn.ghost{background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.15);margin-left:8px}.ok{margin-top:8px;color:#7ee39a}.error{margin-top:12px;color:#ff8c8c}.ar-root{position:relative;width:100%;height:100%;overflow:hidden;background:#000}.camera{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.hud{position:absolute;top:12px;left:12px;right:12px;display:flex;flex-direction:column;gap:12px;z-index:2}.row{display:flex;gap:8px;flex-wrap:wrap}.pill{padding:6px 10px;background:#00000073;border:1px solid rgba(255,255,255,.15);border-radius:999px;font-size:14px}.dial-wrap{display:flex;align-items:center;gap:12px;background:#00000059;padding:8px 12px;border-radius:12px;width:min(520px,100%)}.hint{color:var(--muted);font-size:14px}.dial,.dial input[type=range]{width:100%}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;z-index:1}.bagua{width:min(86vmin,92%);aspect-ratio:1;position:relative;border:2px solid rgba(255,255,255,.6);border-radius:8px}.line{position:absolute;background:#ffffffb3}.line.v{top:0;bottom:0;width:1px}.line.h{left:0;right:0;height:1px}.labels{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.cell{display:grid;place-items:center;font-size:12px;color:#d8dde6;text-shadow:0 1px 2px rgba(0,0,0,.7)}.north{position:absolute;top:-14px;left:50%;transform:translate(-50%);font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}.topbar{position:fixed;top:8px;left:8px;right:8px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;background:#00000059;border:1px solid rgba(255,255,255,.15);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.brand{font-weight:800;letter-spacing:.2px}.mode{display:flex;align-items:center;gap:8px}.mode-label{font-size:14px;color:#d8dde6}.switch{position:relative;display:inline-block;width:46px;height:26px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#3a4250;border-radius:999px;transition:.2s}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}input:checked+.slider{background:#41c4b7}input:checked+.slider:before{transform:translate(20px)}.luopan{position:absolute;inset:auto;width:min(92vmin,98%);aspect-ratio:1;pointer-events:none;z-index:1}.luopan .ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:1px solid rgba(255,255,255,.5)}.luopan .tick{position:absolute;left:50%;top:50%;width:1px;height:50%;transform-origin:bottom;background:#fff9}.luopan .label{position:absolute;left:50%;top:50%;transform-origin:center;font-size:10px;color:#e6e9ee;text-shadow:0 1px 2px rgba(0,0,0,.7)}.accuracy,.current-mountain{padding:6px 10px;background:#00000073;border:1px solid rgba(255,255,255,.15);border-radius:999px;font-size:12px}.scan-hud{margin-top:4px;display:flex;align-items:center;justify-content:space-between;gap:8px}.scan-coach{padding:4px 8px;font-size:12px;border-radius:999px;background:#00000073;border:1px solid rgba(255,255,255,.15)}.scan-progress{display:flex;align-items:center;gap:8px}.scan-chips{display:flex;gap:4px}.scan-chip{width:20px;height:20px;border-radius:999px;font-size:11px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.25);background:#0006;color:#e6e9ee}.scan-chip.done{background:#41c4b7;color:#061018;border-color:#0000004d}.scan-chip.active{box-shadow:0 0 0 2px #41c4b773}.scan-summary{font-size:12px;color:#d8dde6}.scan-btn{position:fixed;right:12px;bottom:12px;z-index:5}.scan-btn .btn{padding:10px 14px;border-radius:999px;font-size:14px}
