:root{color-scheme:light;--bg: #f5f6f8;--panel: #ffffff;--panel-2: #fafbfc;--border: #e1e4ea;--border-strong: #cbd1db;--text: #1a1d24;--muted: #6b7280;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #eff4ff;--danger: #dc2626;--danger-soft: #fef2f2;--ok: #16a34a;--ok-soft: #ecfdf5;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow: 0 4px 14px rgba(15, 23, 42, .06)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}a{color:var(--accent)}.wrap{max-width:980px;margin:0 auto;padding:16px}header.app-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}h1{font-size:17px;margin:0;display:inline-flex;align-items:center;gap:8px}h2{font-size:11px;margin:0 0 8px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;display:inline-flex;align-items:center;gap:6px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}label{font-size:12px;color:var(--muted);display:block;margin-bottom:3px}input[type=text],input[type=password],input[type=number]{background:#fff;color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:6px 8px;font:inherit;width:100%;transition:border-color .12s,box-shadow .12s}input[type=number]{width:80px}input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}button{background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:6px;padding:6px 10px;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,border-color .12s,color .12s}button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.secondary{background:var(--panel);color:var(--text);border-color:var(--border-strong)}button.secondary:hover{background:var(--panel-2);border-color:var(--border-strong);color:var(--text)}button.ghost{background:transparent;color:var(--muted);border-color:transparent;padding:6px}button.ghost:hover{background:var(--panel-2);color:var(--text);border-color:var(--border)}button.ghost.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}button.danger{background:var(--panel);color:var(--danger);border-color:var(--border-strong)}button.danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}button.icon-only{padding:6px}button:disabled{opacity:.45;cursor:not-allowed}.icon{width:14px;height:14px;flex-shrink:0;display:inline-block;vertical-align:middle}button .icon{width:14px;height:14px}h1 .icon{width:18px;height:18px;color:var(--accent)}h2 .icon{width:13px;height:13px}.field-group>label .icon{width:12px;height:12px;color:var(--muted)}.marker{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:8px;transition:border-color .12s,box-shadow .12s}.marker:hover{border-color:var(--border-strong)}.marker-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.marker-head-left{display:inline-flex;align-items:center;gap:6px;min-width:0;flex:1}.marker-name{font-weight:600;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;word-break:break-all;display:inline-flex;align-items:center;gap:6px;color:var(--text)}.marker-name .icon{color:var(--muted);width:14px;height:14px}.marker-toggle{transition:transform .15s ease;color:var(--muted)}.marker-toggle[aria-expanded=true]{transform:rotate(90deg)}.marker.collapsed{padding-bottom:12px}.marker.collapsed .marker-head{margin-bottom:0}.marker.collapsed .marker-body{display:none}.marker-body{display:block}.marker-viewport{margin-top:10px;width:100%;height:420px;border:1px solid var(--border);border-radius:8px;background:var(--bg);overflow:hidden;position:relative}.marker-viewport canvas{display:block;width:100%!important;height:100%!important}.viewport-overlay-btn{position:absolute;top:8px;right:8px;z-index:2;background:#ffffffd9!important;border:1px solid var(--border)!important;color:var(--muted)!important;backdrop-filter:blur(4px);box-shadow:var(--shadow-sm)}.viewport-overlay-btn:hover{background:#fff!important;color:var(--text)!important;border-color:var(--border-strong)!important}.viewport-overlay-btn.active{background:var(--accent-soft)!important;color:var(--accent)!important;border-color:var(--accent)!important}input.readonly,input[readonly]{background:var(--panel-2);color:var(--muted);cursor:not-allowed}input.readonly:focus,input[readonly]:focus{border-color:var(--border-strong);box-shadow:none}.rename-row{display:flex;gap:6px;align-items:center;flex:1;min-width:240px}.rename-row input{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;padding:4px 8px}.name-input-group{display:inline-flex;align-items:stretch;background:#fff;border:1px solid var(--border-strong);border-radius:6px;overflow:hidden;transition:border-color .12s,box-shadow .12s}.name-input-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.name-input-group .name-prefix{display:inline-flex;align-items:center;padding:0 6px 0 8px;color:var(--muted);background:var(--panel-2);border-right:1px solid var(--border);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;user-select:none}.name-input-group input{border:none!important;box-shadow:none!important;border-radius:0;padding:6px 8px}.name-input-group input:focus{box-shadow:none!important}.marker-name .name-prefix{color:var(--muted);user-select:none}.marker-name .name-text-wrap{display:inline-flex;align-items:baseline}.vec{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;align-items:end}.vec input[type=number]{width:100%;padding:4px 6px;font-size:12px}.vec label{font-size:10px;text-transform:uppercase;letter-spacing:.05em}.field-group{margin-bottom:8px}.field-group:last-child{margin-bottom:0}.field-group>label{font-weight:600;color:var(--text);font-size:10px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;white-space:nowrap}.actions{display:flex;gap:4px;flex-wrap:wrap}.toast{position:fixed;bottom:16px;right:16px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 12px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px);transition:.18s;pointer-events:none;font-size:13px;display:inline-flex;align-items:center;gap:8px}.toast.show{opacity:1;transform:translateY(0)}.toast.error{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.toast.ok{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}.toast .icon{width:14px;height:14px}.muted{color:var(--muted);font-size:12px}.hidden{display:none!important}.dirty{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:13px}.toggle input{width:16px;height:16px;accent-color:var(--accent)}.login-card{max-width:380px;margin:64px auto}.login-card .panel{padding:20px}.login-card h1{font-size:16px;margin-bottom:4px}.spacer{flex:1}.health{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);color:var(--muted);display:inline-flex;align-items:center;gap:5px;background:var(--panel)}.health .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.health.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.health.bad{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}
