/* GuDoC CompanyOS — 관계 수사 렌즈 */
.gr{display:grid;grid-template-columns:300px 1fr 340px;flex:1;min-height:0;}
.gr-rail{border-right:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:11px;}
.gr-rail__h h1{font-size:19px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px;color:var(--color-text-strong,#15110E);}
.gr-rail__h p{font-size:12px;color:var(--color-text-muted,#6B5F57);margin:0;line-height:1.55;}
.gr-rail__lb{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-subtle,#9A8C82);margin-top:6px;display:flex;align-items:center;gap:7px;}
.gr-rail__lb span{background:var(--color-surface-2,#F5EEE9);border-radius:999px;padding:1px 8px;color:var(--color-text-muted,#6B5F57);}
.gr-case{text-align:left;font-family:inherit;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:12px;padding:12px 13px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:border-color .12s;}
.gr-case:hover{border-color:var(--color-border-strong,#D8CCC2);}
.gr-case--on{border-color:var(--accent-text,#B23A12);box-shadow:0 0 0 2px var(--accent-bg,#FFE9E0);}
.gr-case__top{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--color-text-subtle,#9A8C82);}
.gr-case__top i{color:var(--accent-text,#B23A12);}
.gr-case__id{margin-left:auto;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10.5px;font-weight:700;}
.gr-case__t{font-size:14px;font-weight:800;color:var(--color-text-strong,#15110E);line-height:1.35;}
.gr-case__m{font-size:11px;color:var(--color-text-subtle,#9A8C82);}
.gr-rail__note{margin-top:auto;font-size:11px;color:var(--color-text-muted,#6B5F57);line-height:1.55;background:var(--color-surface-2,#F7F2EE);border-radius:10px;padding:11px 12px;}
.gr-rail__note i{color:var(--sky,#0369A1);margin-right:5px;}
.gr-sev{font-size:10px;font-weight:800;border-radius:6px;padding:1px 7px;}
.gr-sev--high{background:var(--rose-bg,#FFE4E6);color:var(--rose,#E11D48);}
.gr-sev--med{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.gr-sev--low{background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);}

/* stage */
.gr-stage{display:flex;flex-direction:column;min-width:0;background:var(--color-bg-subtle,#F5EEE9);}
.gr-stage__bar{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--color-divider,#EDE4DD);background:var(--color-surface,#fff);}
.gr-stage__t{font-size:14px;font-weight:800;color:var(--color-text-strong,#15110E);display:flex;align-items:center;gap:8px;}
.gr-stage__t i{color:var(--accent-text,#B23A12);}
.gr-stage__sp{flex:1;}
.gr-legend{display:inline;font-size:11.5px;color:var(--color-text-muted,#6B5F57);}
.gr-legend>i:first-child{margin-right:7px;}
.gr-lg{width:11px;height:11px;border-radius:50%;display:inline-block;margin-left:6px;}
.gr-lg--anom{background:#E11D48;}
.gr-lg--watch{background:#F4521E;}
.gr-lg--norm{background:#CBD5E1;}
.gr-canvas{position:relative;flex:1;margin:16px;aspect-ratio:820/600;align-self:center;width:calc(100% - 32px);max-height:calc(100% - 32px);}
.gr-svg{position:absolute;inset:0;width:100%;height:100%;}
.gr-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;cursor:pointer;font-family:inherit;padding:0;transition:opacity .15s;z-index:2;}
.gr-node__ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:14px;color:var(--nc);background:var(--nbg);border:2px solid #fff;box-shadow:0 2px 6px rgba(15,23,42,.14);transition:transform .12s,box-shadow .12s;}
.gr-node__lb{font-size:10.5px;font-weight:700;color:var(--color-text-strong,#15110E);background:rgba(255,255,255,.82);border-radius:5px;padding:1px 5px;white-space:nowrap;max-width:96px;overflow:hidden;text-overflow:ellipsis;}
.gr-node:hover .gr-node__ic{transform:scale(1.12);}
.gr-node--anom .gr-node__ic{border-color:#E11D48;box-shadow:0 0 0 3px rgba(225,29,72,.18),0 2px 6px rgba(15,23,42,.14);}
.gr-node--watch .gr-node__ic{border-color:#F4521E;}
.gr-node--sel .gr-node__ic{transform:scale(1.18);box-shadow:0 0 0 4px rgba(15,17,14,.16),0 4px 12px rgba(15,23,42,.22);}
.gr-node--dim{opacity:.28;}
.gr-node--anom .gr-node__lb{color:#E11D48;}

/* detail side */
.gr-side{border-left:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);overflow-y:auto;}
.gr-d{padding:18px 18px 40px;}
.gr-d__casehead{display:flex;align-items:center;gap:9px;margin-bottom:11px;}
.gr-d__src{font-size:11.5px;color:var(--color-text-subtle,#9A8C82);display:flex;align-items:center;gap:6px;}
.gr-d__src i{color:var(--accent-text,#B23A12);}
.gr-d__title{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--color-text-strong,#15110E);margin:0 0 8px;line-height:1.3;}
.gr-d__sum{font-size:13px;color:var(--color-text-muted,#6B5F57);line-height:1.6;margin:0 0 14px;}
.gr-d__why{background:linear-gradient(135deg,rgba(225,29,72,.07),transparent);border:1px solid rgba(225,29,72,.22);border-radius:12px;padding:12px 14px;margin-bottom:16px;}
.gr-d__whylb{font-size:12px;font-weight:800;color:var(--rose,#E11D48);display:flex;align-items:center;gap:7px;margin-bottom:5px;}
.gr-d__why p{margin:0;font-size:12.5px;color:var(--color-text,#3D342E);line-height:1.55;}
.gr-d__lb{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-subtle,#9A8C82);margin:14px 0 9px;}
.gr-find{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--color-divider,#EDE4DD);}
.gr-find:last-child{border-bottom:none;}
.gr-find>i{color:var(--rose,#E11D48);margin-top:2px;font-size:13px;flex-shrink:0;}
.gr-find__t{font-size:13px;font-weight:700;color:var(--color-text-strong,#15110E);line-height:1.4;}
.gr-find__d{font-size:11.5px;color:var(--color-text-subtle,#9A8C82);margin-top:2px;font-family:'JetBrains Mono',ui-monospace,monospace;}
.gr-d__acts{display:flex;flex-direction:column;gap:8px;}
.gr-act{display:flex;align-items:center;gap:9px;text-decoration:none;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:11px;padding:11px 13px;font-size:13px;font-weight:700;color:var(--color-text-strong,#15110E);transition:border-color .12s,background .12s;}
.gr-act:hover{border-color:var(--accent-text,#B23A12);background:var(--accent-bg,#FFE9E0);}
.gr-act>i:first-child{color:var(--accent-text,#B23A12);width:16px;text-align:center;}
.gr-act span{flex:1;}
.gr-act code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:10px;font-weight:700;color:var(--color-text-subtle,#9A8C82);background:var(--color-surface-2,#F5EEE9);border-radius:5px;padding:2px 6px;}
.gr-act__go{font-size:11px;color:var(--color-text-subtle,#9A8C82);}
.gr-d__gate{margin-top:14px;font-size:11px;color:var(--color-text-muted,#6B5F57);line-height:1.5;display:flow-root;background:var(--color-surface-2,#F7F2EE);border-radius:10px;padding:10px 12px;}
.gr-d__gate>i:first-child{float:left;margin:2px 8px 0 0;}
.gr-d__gate i{color:var(--ok,#1F8A5B);margin-top:1px;}
/* node detail */
.gr-d__back{font-family:inherit;font-size:12px;font-weight:700;color:var(--color-text-muted,#6B5F57);background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:0 0 12px;}
.gr-d__back i{color:var(--accent-text,#B23A12);}
.gr-d__head{display:flex;align-items:center;gap:11px;margin-bottom:14px;}
.gr-d__ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:17px;color:var(--nc);background:var(--nbg);flex-shrink:0;}
.gr-d__t{font-size:16px;font-weight:800;color:var(--color-text-strong,#15110E);}
.gr-d__k{font-size:11.5px;color:var(--color-text-subtle,#9A8C82);margin-top:2px;}
.gr-d__conns{display:flex;flex-direction:column;gap:6px;}
.gr-conn{display:flex;align-items:center;gap:9px;text-align:left;font-family:inherit;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:10px;padding:8px 11px;cursor:pointer;}
.gr-conn:hover{border-color:var(--color-border-strong,#D8CCC2);}
.gr-conn--anom{border-color:rgba(225,29,72,.4);}
.gr-conn__ic{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:11px;flex-shrink:0;}
.gr-conn__t{font-size:12.5px;font-weight:700;color:var(--color-text-strong,#15110E);flex:1;}
.gr-conn__e{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);}
.gr-conn--anom .gr-conn__e{color:var(--rose,#E11D48);font-weight:700;}

@media(max-width:1180px){.gr{grid-template-columns:260px 1fr 300px;}}
@media(max-width:900px){.gr{grid-template-columns:1fr;}.gr-rail,.gr-side{display:none;}}
