:root{--bg: #f5f6f8;--panel: #ffffff;--panel-2: #f3f4f6;--ink: #111827;--muted: #6b7280;--faint: #a3a9b3;--line: #e5e7eb;--accent: #2f5be0;--accent-ink: #ffffff;--accent-soft: #e8eefd;--ok: #0f8a63;--ok-soft: #e1f4ec;--bad: #c2410c;--bad-soft: #fdeadf;--warn-soft: #fdf3d6;--info: #4f46e5;--map-land: #e7e9e4;--map-block: #f7f8f5;--map-park: #d3e6cc;--map-water: #c4dcea;--map-road: #ffffff;--body: "Archivo", "Helvetica Neue", Arial, sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0f1115;--panel: #171a20;--panel-2: #1e222a;--ink: #e8eaed;--muted: #9aa1ac;--faint: #646b77;--line: #2a2f38;--accent: #6b8cff;--accent-ink: #0f1115;--accent-soft: #1d2747;--ok: #3fc79a;--ok-soft: #12332a;--bad: #f08a55;--bad-soft: #3a2218;--warn-soft: #36301a;--info: #8f88ff;--map-land: #1b1e24;--map-block: #242830;--map-park: #1e3226;--map-water: #172936;--map-road: #30353f;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.5}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,a:focus-visible,tr:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit}.mono{font-family:var(--mono);font-size:.86em}.muted{color:var(--muted)}.center-note{padding:40px;text-align:center;color:var(--muted)}.app{min-height:100%;display:flex;flex-direction:column}.topbar{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar-in{max-width:1320px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:24px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:17px;text-decoration:none;letter-spacing:-.01em}.brand-mark{border-radius:8px;background:var(--accent);display:inline-grid;place-items:center;flex:none}.nav{display:flex;gap:4px}.nav a{padding:6px 12px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:600}.nav a:hover,.nav a.active{color:var(--ink);background:var(--panel-2)}.user{margin-left:auto;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:13px}.main{flex:1;padding:24px 20px 48px}.page{max-width:1320px;margin:0 auto;display:grid;gap:18px;align-content:start}.ph{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;justify-content:space-between}.ph h1{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em}.ph p{margin:4px 0 0;color:var(--muted)}.back{color:var(--muted);text-decoration:none;font-weight:600;font-size:13px;width:max-content}.back:hover{color:var(--ink)}.btn{border:1px solid var(--line);background:var(--panel);border-radius:9px;padding:8px 14px;font-weight:600;font-size:13.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover:not([disabled]){border-color:var(--faint)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover:not([disabled]){filter:brightness(1.06)}.btn.big{padding:13px 16px;font-size:15px;border-radius:11px}.btn.ghost{background:transparent}.btn.sm{padding:4px 10px;font-size:12px}.btn[disabled]{opacity:.5;cursor:not-allowed}.input{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:9px;padding:8px 11px;font:inherit;width:100%;min-width:0}.input.search{max-width:320px}.alert{background:var(--bad-soft);color:var(--bad);border-radius:9px;padding:9px 12px;font-size:13px}.st{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:12.5px;padding:3px 10px;border-radius:999px;white-space:nowrap}.st i{width:7px;height:7px;border-radius:50%;background:currentColor}.st.wait{background:var(--warn-soft);color:var(--ink)}.st.wait i{background:#d9a300}.st.run{background:var(--accent-soft);color:var(--accent)}.st.run i{animation:blink 1.2s infinite}.st.ok{background:var(--ok-soft);color:var(--ok)}.st.bad{background:var(--bad-soft);color:var(--bad)}@keyframes blink{50%{opacity:.25}}.filters{display:flex;gap:6px;flex-wrap:wrap}.f{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:5px 13px;font-size:13px;font-weight:600;color:var(--muted)}.f[aria-pressed=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}.table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:820px}th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:11px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}td{padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr[tabindex]{cursor:pointer}tbody tr[tabindex]:hover td{background:var(--panel-2)}td .n{font-weight:700;display:block}td .s{font-size:12.5px;color:var(--muted)}.prof{font-family:var(--mono);font-size:11.5px}.empty{display:grid;gap:4px;padding:18px 4px;color:var(--muted)}.empty b{color:var(--ink)}.detail{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,1fr);gap:18px;align-items:start}.mapcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;position:relative}.route-map{display:block;width:100%;height:auto}.map-hud{position:absolute;left:12px;top:12px;right:12px;display:flex;gap:8px;pointer-events:none}.hud{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 9px;font-size:11.5px;box-shadow:0 2px 10px -4px #00000040}.map-foot{display:flex;gap:20px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.map-foot span{display:inline-flex;align-items:center;gap:7px}.map-foot b{color:var(--ink);font-weight:600}.sw{width:10px;height:10px;border-radius:3px;display:inline-block}.sw.round{border-radius:50%}.side{display:grid;gap:14px;min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px;min-width:0;align-content:start}.card h3{margin:0;font-size:15px}.hint{margin:0;color:var(--muted);font-size:13px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.flows{display:grid;gap:8px}.flows h4{margin:4px 0 0;font-size:12px;color:var(--muted);font-weight:600}.flow{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:10px 12px}.flow:hover{border-color:var(--faint)}.flow[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}.radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--faint);margin-top:1px;display:grid;place-items:center}.flow[aria-checked=true] .radio{border-color:var(--accent)}.flow[aria-checked=true] .radio:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}.flow b{display:block;font-size:14px}.flow .d{display:block;font-size:12.5px;color:var(--muted)}.flow .end{display:inline-block;margin-top:4px;font-family:var(--mono);font-size:11px}.flow .end.ok{color:var(--ok)}.flow .end.bad{color:var(--bad)}.seg{display:flex;gap:4px;background:var(--panel-2);border-radius:9px;padding:3px}.seg button{flex:1;border:0;background:none;border-radius:7px;padding:7px 6px;font-weight:600;font-size:12.5px;color:var(--muted)}.seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #0000001f}.steps{list-style:none;margin:0;padding:0;display:grid}.steps li{display:grid;grid-template-columns:22px 1fr auto;gap:10px;padding:7px 0;position:relative;align-items:start}.steps li:before{content:"";position:absolute;left:10px;top:28px;bottom:-6px;width:2px;background:var(--line)}.steps li:last-child:before{display:none}.steps .nd{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--panel);z-index:1;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff}.steps li.done .nd{background:var(--ok);border-color:var(--ok)}.steps li.done.bad .nd,.steps li.failed .nd{background:var(--bad);border-color:var(--bad)}.steps li.local.done .nd{background:var(--panel);border:2px dashed var(--ok);color:var(--ok)}.steps li.now .nd{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 4px var(--accent-soft)}.steps li.later{opacity:.5}.steps .lb{font-weight:600;font-size:13.5px}.steps .cd{display:block;font-family:var(--mono);font-size:11px;color:var(--muted)}.steps time{font-family:var(--mono);font-size:11px;color:var(--muted)}.result{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;border-radius:11px;padding:12px}.result .ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;color:#fff;font-weight:800}.result.ok{background:var(--ok-soft)}.result.ok .ic{background:var(--ok)}.result.bad{background:var(--bad-soft)}.result.bad .ic{background:var(--bad)}.result b{display:block}.result span{font-size:13px;color:var(--muted)}.tech summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}.tech summary::-webkit-details-marker{display:none}.tech summary h3:before{content:"▸ ";color:var(--muted)}.tech[open] summary h3:before{content:"▾ "}.calls{list-style:none;margin:0;padding:0;display:grid;max-height:420px;overflow:auto}.calls li{border-top:1px solid var(--line)}.call{display:grid;grid-template-columns:64px 1fr auto auto;gap:8px;align-items:center;width:100%;background:none;border:0;padding:8px 2px;text-align:left;font-size:12px}.call .path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.call time{font-family:var(--mono);font-size:11px;color:var(--muted)}.dir{font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:4px;text-align:center}.dir.in{background:var(--accent-soft);color:var(--accent)}.dir.out{background:var(--ok-soft);color:var(--ok)}.dir.local{background:var(--panel-2);color:var(--muted)}.code-ok{color:var(--ok);font-family:var(--mono);font-size:11.5px}.code-bad{color:var(--bad);font-family:var(--mono);font-size:11.5px}.calls pre{margin:0 0 10px;background:var(--panel-2);border-radius:8px;padding:10px;font-family:var(--mono);font-size:11.5px;white-space:pre-wrap;word-break:break-word;max-height:280px;overflow:auto}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.lbl{font-size:12px;color:var(--muted);font-weight:600}.copy{display:flex;gap:8px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:6px 8px;min-width:0}.copy span{overflow-wrap:anywhere;min-width:0;flex:1}.endpoints{margin:0;padding-left:16px;display:grid;gap:3px;font-size:13px}.login-wrap{min-height:100%;display:grid;place-items:center;padding:20px}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;max-width:380px;width:100%;display:grid;gap:14px}.login-card p{margin:0;color:var(--muted)}.login-card .brand{font-size:20px}.login-form{display:grid;gap:8px}.login-form label{font-size:12px;font-weight:600;color:var(--muted)}@media (max-width: 1000px){.detail{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.user span{display:none}.ph h1{font-size:22px}}@media (prefers-reduced-motion: reduce){*{animation:none!important}}
