:root{--bg-base:#13111c;--bg-card:hsla(0,0%,100%,.025);--bg-card-hover:hsla(0,0%,100%,.04);--bg-metric:hsla(0,0%,100%,.02);--border:hsla(0,0%,100%,.06);--border-hover:rgba(124,58,237,.3);--text-primary:#e9e3ff;--text-secondary:#8b7fbf;--text-muted:#6d6490;--text-dim:#4a4462;--text-ghost:#3d3756;--purple:#7c3aed;--pink:#ec4899;--green:#34d399;--red:#f87171;--yellow:#fbbf24;--font-body:"Noto Sans KR",-apple-system,BlinkMacSystemFont,sans-serif;--font-display:"Noto Serif KR",serif;--font-mono:"Fira Code","SF Mono",monospace}*{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark}body{background:var(--bg-base);color:var(--text-secondary);font-family:var(--font-body);font-size:14px;line-height:1.5;min-height:100vh;overflow-x:hidden}.canvas-bg{background:radial-gradient(ellipse 80% 50% at 50% 0,rgba(124,58,237,.08) 0,transparent 60%),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(236,72,153,.04) 0,transparent 50%),linear-gradient(hsla(0,0%,100%,.015) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.015) 1px,transparent 0);background-size:100% 100%,100% 100%,40px 40px,40px 40px;inset:0;pointer-events:none;position:fixed;z-index:0}.glass{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-card);border:1px solid var(--border);border-radius:12px}kbd{background:#ffffff0d;border:1px solid hsla(0,0%,100%,.08);border-radius:4px;color:var(--text-secondary);font-family:var(--font-mono);font-size:10px;padding:1px 6px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.dot-green{background:var(--green);box-shadow:0 0 8px #34d39966}.dot-red{animation:pulse 1.5s infinite;background:var(--red);box-shadow:0 0 8px #f8717166}.dot-yellow{background:var(--yellow);box-shadow:0 0 8px #fbbf244d}:focus-visible{outline:2px solid var(--purple);outline-offset:2px}[role=button]:focus-visible,a:focus-visible,button:focus-visible,kbd:focus-visible{border-radius:4px;outline:2px solid var(--purple);outline-offset:2px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-ghost);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}@media(max-width:768px){.kbd-group{display:none}}.login-screen[data-v-03868b24]{align-items:center;display:flex;justify-content:center;min-height:100vh}.login-card[data-v-03868b24]{max-width:400px;padding:48px;text-align:center;width:100%}.login-logo[data-v-03868b24]{color:var(--text-primary);font-family:var(--font-display);font-size:36px;letter-spacing:6px;margin-bottom:4px}.login-subtitle[data-v-03868b24]{color:var(--purple);font-size:12px;letter-spacing:3px;margin-bottom:24px;text-transform:uppercase}.login-desc[data-v-03868b24]{color:var(--text-muted);font-size:13px;line-height:1.7;margin-bottom:32px}.login-btn[data-v-03868b24]{align-items:center;background:#fff;border:none;border-radius:8px;color:var(--bg-base);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:14px;font-weight:600;gap:10px;padding:12px 28px;transition:opacity .15s,transform .15s}.login-btn[data-v-03868b24]:hover{opacity:.9;transform:translateY(-1px)}.login-btn[data-v-03868b24]:disabled{cursor:not-allowed;opacity:.6;transform:none}.header[data-v-b2973103]{justify-content:space-between}.header[data-v-b2973103],.header-left[data-v-b2973103]{align-items:center;display:flex}.header-left[data-v-b2973103]{gap:16px}.logo[data-v-b2973103]{color:var(--text-primary);font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:3px}.sync-badge[data-v-b2973103]{align-items:center;color:var(--text-muted);display:flex;font-size:11px;gap:6px}.sync-dot[data-v-b2973103]{animation:pulse 2s infinite;background:var(--green);border-radius:50%;height:6px;width:6px}.sync-dot.disconnected[data-v-b2973103]{animation:none;background:var(--text-dim)}.header-right[data-v-b2973103]{align-items:center;display:flex;gap:16px}.kbd-group[data-v-b2973103]{display:flex;gap:6px}.kbd-group[data-v-b2973103],.sign-out-btn[data-v-b2973103]{color:var(--text-dim);font-size:11px}.sign-out-btn[data-v-b2973103]{background:#ffffff0a;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-family:var(--font-body);padding:4px 10px;transition:color .15s,border-color .15s}.sign-out-btn[data-v-b2973103]:hover{border-color:var(--border-hover);color:var(--text-secondary)}.banner[data-v-32b01072]{align-items:center;border-radius:8px;display:flex;font-size:13px;justify-content:space-between;padding:10px 16px}.banner.auth[data-v-32b01072]{background:#f871711a;border:1px solid rgba(248,113,113,.2);color:var(--red)}.banner.network[data-v-32b01072]{background:#fbbf241a;border:1px solid rgba(251,191,36,.2);color:var(--yellow)}.banner-text[data-v-32b01072]{flex:1}.banner-actions[data-v-32b01072]{align-items:center;display:flex;gap:8px}.banner-btn[data-v-32b01072]{background:#ffffff0f;border:1px solid hsla(0,0%,100%,.1);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:var(--font-body);font-size:12px;padding:4px 12px;transition:opacity .15s}.banner-btn[data-v-32b01072]:hover{opacity:.8}.banner-dismiss[data-v-32b01072]{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:2px 4px}.banner-dismiss[data-v-32b01072]:hover{color:var(--text-secondary)}.briefing[data-v-5197feaa]{align-items:flex-start;display:flex;gap:16px;padding:16px 20px}.briefing-icon[data-v-5197feaa]{align-items:center;background:linear-gradient(135deg,var(--purple),var(--pink));border-radius:8px;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;width:32px}.spinner[data-v-5197feaa]{animation:spin-5197feaa 1s linear infinite}@keyframes spin-5197feaa{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.briefing-content[data-v-5197feaa]{flex:1;min-width:0}.briefing-meta[data-v-5197feaa]{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.briefing-label[data-v-5197feaa]{color:var(--purple);font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}.briefing-stale[data-v-5197feaa]{color:var(--text-dim);font-size:10px}.briefing-text[data-v-5197feaa]{color:var(--text-primary);font-size:14px;font-weight:300;line-height:1.7}.briefing-empty[data-v-5197feaa],.briefing-loading[data-v-5197feaa]{color:var(--text-muted);font-style:italic}.briefing-text[data-v-5197feaa] .briefing-danger{color:var(--red)}.briefing-text[data-v-5197feaa] .briefing-warn{color:var(--yellow);font-weight:500}.briefing-text[data-v-5197feaa] .briefing-ok{color:var(--green)}.node[data-v-91ac2830]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;width:280px}.node[data-v-91ac2830]:hover{border-color:var(--border-hover);box-shadow:0 8px 32px #7c3aed1a;transform:translateY(-2px)}.node.urgent[data-v-91ac2830]{border-color:#f871714d;box-shadow:0 0 24px #f8717114}.node.urgent[data-v-91ac2830]:hover{border-color:#f8717180;box-shadow:0 8px 32px #f8717126}.node.attention[data-v-91ac2830]{border-color:#fbbf2433}.node-strip[data-v-91ac2830]{border-radius:12px 12px 0 0;height:3px}.node-strip.green[data-v-91ac2830]{background:linear-gradient(90deg,#34d399,#10b981)}.node-strip.red[data-v-91ac2830]{background:linear-gradient(90deg,#f87171,#ef4444)}.node-strip.yellow[data-v-91ac2830]{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.node-body[data-v-91ac2830]{padding:14px 16px}.node-header[data-v-91ac2830]{justify-content:space-between;margin-bottom:10px}.node-header[data-v-91ac2830],.node-name[data-v-91ac2830]{align-items:center;display:flex}.node-name[data-v-91ac2830]{color:var(--text-primary);font-size:14px;font-weight:600;gap:8px}.node-key[data-v-91ac2830]{background:#ffffff0a;border:1px solid hsla(0,0%,100%,.06);border-radius:4px;color:var(--text-dim);font-family:var(--font-mono);font-size:10px;padding:1px 6px}.node-summary[data-v-91ac2830]{color:var(--text-secondary);font-size:12px;line-height:1.5;margin-bottom:12px}.node-metrics[data-v-91ac2830]{display:flex;gap:2px;margin-bottom:10px}.metric[data-v-91ac2830]{background:var(--bg-metric);border-radius:6px;flex:1;padding:6px 8px;text-align:center}.metric[data-v-91ac2830]:first-child{border-radius:6px 2px 2px 6px}.metric[data-v-91ac2830]:last-child{border-radius:2px 6px 6px 2px}.metric-value[data-v-91ac2830]{color:var(--text-primary);font-size:16px;font-weight:600}.metric-value.danger[data-v-91ac2830]{color:var(--red)}.metric-value.warn[data-v-91ac2830]{color:var(--yellow)}.metric-value.ok[data-v-91ac2830]{color:var(--green)}.metric-label[data-v-91ac2830]{color:var(--text-dim);font-size:10px;letter-spacing:.5px;text-transform:uppercase}.node-footer[data-v-91ac2830]{border-top:1px solid hsla(0,0%,100%,.04);padding-top:10px}.node-time[data-v-91ac2830]{color:var(--text-dim);font-family:var(--font-mono);font-size:10px}@media(max-width:768px){.node[data-v-91ac2830]{width:100%}}.event-ticker[data-v-dd1d12b7]{gap:24px;overflow:hidden;padding:10px 16px}.event-ticker[data-v-dd1d12b7],.ticker-label[data-v-dd1d12b7]{align-items:center;display:flex}.ticker-label[data-v-dd1d12b7]{color:var(--text-dim);flex-shrink:0;font-size:10px;font-weight:600;gap:6px;letter-spacing:1.5px;text-transform:uppercase}.ticker-items[data-v-dd1d12b7]{gap:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);overflow:hidden}.ticker-item[data-v-dd1d12b7],.ticker-items[data-v-dd1d12b7]{align-items:center;display:flex}.ticker-item[data-v-dd1d12b7]{color:var(--text-muted);flex-shrink:0;font-size:12px;gap:6px;white-space:nowrap}.t-time[data-v-dd1d12b7]{color:var(--text-ghost);font-family:var(--font-mono);font-size:10px}.t-repo[data-v-dd1d12b7]{color:var(--purple);font-weight:500}.t-repo.t-urgent[data-v-dd1d12b7]{color:var(--red)}.t-text[data-v-dd1d12b7]{color:var(--text-muted)}.ticker-sep[data-v-dd1d12b7]{color:var(--text-ghost);flex-shrink:0}.ticker-empty[data-v-dd1d12b7]{color:var(--text-dim);font-size:12px;font-style:italic}.ticker-label.live[data-v-dd1d12b7]{color:var(--green)}.live-dot[data-v-dd1d12b7]{animation:pulse 2s infinite;background:var(--green);border-radius:50%;flex-shrink:0;height:6px;width:6px}.overlay-backdrop[data-v-d8ea343e]{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.overlay[data-v-d8ea343e]{min-width:320px;padding:32px}h2[data-v-d8ea343e]{color:var(--text-primary);font-family:var(--font-display);font-size:18px;letter-spacing:1px;margin-bottom:20px}.shortcuts[data-v-d8ea343e]{display:flex;flex-direction:column;gap:12px}.shortcut[data-v-d8ea343e]{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:10px}.shortcut kbd[data-v-d8ea343e]{min-width:24px;text-align:center}.fade-enter-active[data-v-d8ea343e],.fade-leave-active[data-v-d8ea343e]{transition:opacity .15s ease}.fade-enter-from[data-v-d8ea343e],.fade-leave-to[data-v-d8ea343e]{opacity:0}.overlay-backdrop[data-v-0565c69b]{align-items:center;background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.selector[data-v-0565c69b]{display:flex;flex-direction:column;max-height:70vh;overflow:hidden;width:560px}.selector-header[data-v-0565c69b]{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:20px 24px 16px}.selector-header h2[data-v-0565c69b]{color:var(--text-primary);font-family:var(--font-display);font-size:16px;letter-spacing:.5px}.close-btn[data-v-0565c69b]{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:16px;padding:4px 8px}.close-btn[data-v-0565c69b]:hover{color:var(--text-secondary)}.selector-loading[data-v-0565c69b]{color:var(--text-muted);font-style:italic;padding:40px;text-align:center}.repo-list[data-v-0565c69b]{flex:1;overflow-y:auto;padding:8px 0}.repo-row[data-v-0565c69b]{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:10px 24px;transition:background .1s}.repo-row[data-v-0565c69b]:hover{background:#ffffff05}.repo-row.tracked[data-v-0565c69b]{background:#7c3aed0d}.repo-info[data-v-0565c69b]{display:flex;flex-direction:column;gap:2px;min-width:0}.repo-name[data-v-0565c69b]{color:var(--text-primary);font-size:13px;font-weight:500}.repo-desc[data-v-0565c69b]{color:var(--text-dim);font-size:11px;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tracked-badge[data-v-0565c69b]{background:#34d3991a;border:1px solid rgba(52,211,153,.2);border-radius:6px;color:var(--green);font-size:11px;padding:2px 10px}.untracked-badge[data-v-0565c69b]{background:#ffffff08;border:1px solid var(--border);border-radius:6px;padding:2px 10px}.toggling[data-v-0565c69b],.untracked-badge[data-v-0565c69b]{color:var(--text-dim);font-size:11px}.selector-footer[data-v-0565c69b]{border-top:1px solid var(--border);display:flex;justify-content:flex-end;padding:12px 24px}.done-btn[data-v-0565c69b]{background:var(--purple);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:500;padding:6px 20px;transition:opacity .15s}.done-btn[data-v-0565c69b]:hover{opacity:.85}.fade-enter-active[data-v-0565c69b],.fade-leave-active[data-v-0565c69b]{transition:opacity .15s ease}.fade-enter-from[data-v-0565c69b],.fade-leave-to[data-v-0565c69b]{opacity:0}@media(max-width:768px){.selector[data-v-0565c69b]{margin:0 12px;max-height:85vh;width:100%}.repo-desc[data-v-0565c69b]{max-width:200px}}.toast-container[data-v-62574e08]{bottom:72px;display:flex;flex-direction:column-reverse;gap:8px;max-height:300px;pointer-events:none;position:fixed;right:24px;z-index:200}.toast[data-v-62574e08]{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-card);border:1px solid var(--border);border-radius:10px;cursor:pointer;max-width:320px;padding:12px 16px;pointer-events:auto;transition:opacity .2s,transform .2s}.toast[data-v-62574e08]:hover{border-color:var(--border-hover)}.toast.urgent[data-v-62574e08]{background:#f8717114;border-color:#f871714d}.toast-header[data-v-62574e08]{align-items:center;display:flex;gap:8px;margin-bottom:4px}.toast-icon[data-v-62574e08]{color:var(--text-secondary);font-family:var(--font-mono);font-size:14px}.toast-icon.icon-danger[data-v-62574e08]{color:var(--red)}.toast-icon.icon-ok[data-v-62574e08]{color:var(--green)}.toast-repo[data-v-62574e08]{color:var(--purple);font-size:11px;font-weight:600}.toast-title[data-v-62574e08]{color:var(--text-primary);font-size:12px;line-height:1.4}.toast-time[data-v-62574e08]{color:var(--text-dim);font-family:var(--font-mono);font-size:10px;margin-top:4px}.toast-enter-active[data-v-62574e08]{transition:transform .3s ease-out,opacity .3s ease-out}.toast-leave-active[data-v-62574e08]{transition:transform .2s ease-in,opacity .2s ease-in}.toast-enter-from[data-v-62574e08],.toast-leave-to[data-v-62574e08]{opacity:0;transform:translate(100%)}.loading-screen[data-v-aa8d4954]{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:100vh}.loading-sub[data-v-aa8d4954]{color:var(--text-muted);font-size:12px}.loading-logo[data-v-aa8d4954],.loading-sub[data-v-aa8d4954]{animation:pulse 2s infinite}.loading-logo[data-v-aa8d4954]{color:var(--text-primary);font-family:var(--font-display);font-size:28px;letter-spacing:4px}.app[data-v-aa8d4954]{display:grid;gap:16px;grid-template-rows:auto auto 1fr auto;height:100vh;padding:16px 24px;position:relative;z-index:1}.service-map[data-v-aa8d4954]{overflow-y:auto;position:relative}.empty-state[data-v-aa8d4954]{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:14px;gap:16px;height:100%;justify-content:center}.add-repos-btn[data-v-aa8d4954]{background:var(--purple);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:500;padding:10px 24px}.add-repos-btn[data-v-aa8d4954]:hover{opacity:.85}.add-repos-btn[data-v-aa8d4954]{transition:opacity .15s}.nodes[data-v-aa8d4954]{align-items:flex-start;display:flex;flex-wrap:wrap;gap:0;justify-content:center;padding:20px 0}.nodes[data-v-aa8d4954]>*{margin:12px 20px}.fab[data-v-aa8d4954]{align-items:center;background:var(--purple);border:none;border-radius:50%;bottom:16px;box-shadow:0 4px 16px #7c3aed4d;color:#fff;cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:absolute;right:16px;transition:all .15s;transition:transform .15s,box-shadow .15s;width:40px}.fab[data-v-aa8d4954]:hover{box-shadow:0 6px 24px #7c3aed66;transform:scale(1.1)}@media(max-width:768px){.app[data-v-aa8d4954]{gap:12px;padding:12px 16px}.nodes[data-v-aa8d4954]>*{margin:8px 0}.empty-state[data-v-aa8d4954]{padding:24px 16px}}
