:root{--bg:#f7f8fa;--surface:#fff;--surface-2:#fafbfc;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--text-2:#374151;--text-3:#6b7280;--text-4:#9ca3af;--primary:#2563eb;--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-600:#2563eb;--primary-700:#1d4ed8;--in:#047857;--in-bg:#ecfdf5;--out:#b45309;--out-bg:#fffbeb;--return:#b91c1c;--return-bg:#fef2f2;--cancel:#4b5563;--cancel-bg:#f3f4f6;--warn:#b45309;--warn-bg:#fef3c7;--ok:#047857;--ok-bg:#ecfdf5;--r-sm:6px;--r-md:8px;--r-lg:10px;--shadow-sm:0 1px 2px #0f172a0a;--shadow-md:0 4px 14px #0f172a0f, 0 0 0 1px #0f172a0a;--shadow-lg:0 12px 28px #0f172a1a, 0 0 0 1px #0f172a0a;--font:"Noto Sans KR", "Apple SD Gothic Neo", -apple-system, system-ui, "Malgun Gothic", sans-serif}.jvs{font-family:var(--font);color:var(--text);background:var(--bg);letter-spacing:-.01em;width:100%;height:100%;font-size:13px;display:flex;overflow:hidden}.jvs *{box-sizing:border-box}.jvs button{font-family:inherit}.jvs-top{color:#e5e7eb;background:#0f172a;flex-shrink:0;align-items:center;gap:24px;height:48px;padding:0 16px;font-size:13px;display:flex}.jvs-top-logo{color:#fff;letter-spacing:-.02em;font-size:15px;font-weight:700}.jvs-top-logo .dot{color:#60a5fa}.jvs-top-nav{gap:4px;display:flex}.jvs-top-nav a{color:#cbd5e1;border-radius:6px;padding:6px 10px;font-size:13px;text-decoration:none}.jvs-top-nav a.active{color:#fff;background:#ffffff14}.jvs-top-spacer{flex:1}.jvs-top-actions{color:#94a3b8;align-items:center;gap:12px;display:flex}.jvs-top-avatar{color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:600;display:flex}.jvs-side{border-right:1px solid var(--border);background:#fff;flex-direction:column;flex-shrink:0;width:220px;display:flex}.jvs-side-title{color:var(--text-4);letter-spacing:.04em;text-transform:uppercase;padding:18px 18px 8px;font-size:11px;font-weight:600}.jvs-side-section{padding:0 8px 8px}.jvs-side-group{color:var(--text-4);padding:10px 10px 4px;font-size:11px;font-weight:500}.jvs-side a{color:var(--text-2);border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;text-decoration:none;display:flex;position:relative}.jvs-side a:hover{background:#f3f4f6}.jvs-side a.active{background:var(--primary-50);color:var(--primary);font-weight:600}.jvs-side a.active:before{content:"";background:var(--primary);border-radius:0 2px 2px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-8px}.jvs-side a .ic{width:16px;height:16px;color:var(--text-4);flex-shrink:0}.jvs-side a.active .ic{color:var(--primary)}.jvs-side a .badge-mini{color:var(--text-3);background:#f3f4f6;border-radius:8px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:500}.jvs-main{flex-direction:column;flex:1;min-width:0;display:flex}.jvs-pageheader{border-bottom:1px solid var(--border);background:#fff;flex-shrink:0;padding:16px 24px 0}.jvs-pageheader .row1{align-items:center;gap:12px;margin-bottom:12px;display:flex}.jvs-crumb{color:var(--text-4);font-size:12px}.jvs-crumb .sep{margin:0 6px}.jvs-pagetitle{color:var(--text);letter-spacing:-.02em;font-size:20px;font-weight:700}.jvs-pageactions{gap:6px;margin-left:auto;display:flex}.jvs-btn{border:1px solid var(--border-strong);height:32px;color:var(--text-2);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.jvs-btn:hover{background:#f9fafb}.jvs-btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.jvs-btn.primary:hover{background:var(--primary-700)}.jvs-btn.danger{color:#b91c1c;background:#fff;border-color:#fca5a5}.jvs-btn.ghost{color:var(--text-3);background:0 0;border-color:#0000}.jvs-btn.ghost:hover{color:var(--text);background:#f3f4f6}.jvs-btn.lg{height:38px;padding:0 16px;font-size:14px}.jvs-btn.sm{height:26px;padding:0 8px;font-size:12px}.jvs-btn .ic{width:14px;height:14px}.jvs-tabs{border-bottom:1px solid #0000;gap:4px;margin:0 -4px;display:flex}.jvs-tab{color:var(--text-3);cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;padding:10px 14px;font-size:13.5px;font-weight:500;position:relative}.jvs-tab .count{color:var(--text-4);margin-left:4px;font-size:11px;font-weight:500}.jvs-tab.active{color:var(--text);border-bottom-color:var(--text);font-weight:600}.jvs-tab.active .count{color:var(--primary)}.jvs-filters{border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:14px 24px;display:flex}.jvs-field{border:1px solid var(--border-strong);height:32px;color:var(--text);background:#fff;border-radius:6px;align-items:center;font-size:13px;display:flex}.jvs-field .lbl{border-right:1px solid var(--border);color:var(--text-3);background:#fafbfc;border-radius:6px 0 0 6px;align-items:center;height:100%;padding:0 10px;font-size:12px;display:flex}.jvs-field input,.jvs-field select{height:100%;color:var(--text);background:0 0;border:0;outline:none;min-width:80px;padding:0 10px;font-family:inherit;font-size:13px}.jvs-field.search{gap:6px;width:240px;padding:0 10px}.jvs-field.search input{flex:1;padding:0}.jvs-segment{border:1px solid var(--border-strong);background:#fff;border-radius:6px;height:32px;display:inline-flex;overflow:hidden}.jvs-segment button{color:var(--text-3);cursor:pointer;border:0;border-right:1px solid var(--border);background:0 0;padding:0 12px;font-size:12.5px;font-weight:500}.jvs-segment button:last-child{border-right:0}.jvs-segment button.active{background:var(--text);color:#fff}.jvs-chip{background:var(--primary-50);height:28px;color:var(--primary);border:1px solid #bfdbfe;border-radius:14px;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.jvs-chip .x{color:var(--primary);opacity:.7;cursor:pointer}.jvs-stats{background:0 0;flex-shrink:0;grid-template-columns:repeat(5,1fr);gap:12px;padding:16px 24px;display:grid}.jvs-stat{border:1px solid var(--border);background:#fff;border-radius:10px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.jvs-stat .ico{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.jvs-stat .ico svg{width:18px;height:18px}.jvs-stat .label{color:var(--text-3);margin-bottom:4px;font-size:12px}.jvs-stat .value{color:var(--text);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1}.jvs-stat .value .unit{color:var(--text-3);margin-left:3px;font-size:12px;font-weight:500}.jvs-stat .delta{color:var(--text-4);margin-top:6px;font-size:11px}.jvs-stat .delta .up{color:var(--in);font-weight:600}.jvs-stat .delta .down{color:var(--return);font-weight:600}.jvs-stat.kind-in .ico{color:#2563eb;background:#dbeafe}.jvs-stat.kind-inq .ico{color:#059669;background:#d1fae5}.jvs-stat.kind-out .ico{color:#d97706;background:#fed7aa}.jvs-stat.kind-outq .ico{color:#9333ea;background:#e9d5ff}.jvs-stat.kind-net .ico{color:#db2777;background:#fce7f3}.jvs-stat .mini-spark{margin-top:6px}.jvs-content{flex:1;padding:16px 24px 24px;overflow:auto}.jvs-toolbar{align-items:center;gap:8px;margin-bottom:10px;display:flex}.jvs-toolbar .count{color:var(--text-3);font-size:12.5px}.jvs-toolbar .count b{color:var(--text);font-weight:600}.jvs-toolbar .actions{gap:6px;margin-left:auto;display:flex}.jvs-table-wrap{border:1px solid var(--border);border-radius:var(--r-md);background:#fff;overflow:hidden}.jvs-table{border-collapse:collapse;width:100%;font-size:13px}.jvs-table thead th{text-align:left;border-bottom:1px solid var(--border);color:var(--text-3);letter-spacing:-.005em;white-space:nowrap;background:#fafbfc;padding:10px 12px;font-size:12px;font-weight:600}.jvs-table tbody td{color:var(--text-2);vertical-align:middle;white-space:nowrap;border-bottom:1px solid #f1f2f4;padding:11px 12px}.jvs-table tbody tr:hover{background:#fafbfc}.jvs-table tbody tr.selected{background:var(--primary-50)}.jvs-table tbody tr:last-child td{border-bottom:0}.jvs-table .num{text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.jvs-table .strong{color:var(--text);font-weight:600}.jvs-table .muted{color:var(--text-4)}.jvs-table .id{color:var(--text-3);font-family:SFMono-Regular,Menlo,monospace;font-size:12px}.jvs-table tr.is-row-link{cursor:pointer}.jvs-cb{border:1.5px solid var(--border-strong);vertical-align:middle;background:#fff;border-radius:3px;width:14px;height:14px;display:inline-block}.jvs-cb.checked{background:var(--primary);border-color:var(--primary);position:relative}.jvs-cb.checked:after{content:"";background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'><path d='M3 7.5l2.6 2.5L11 4.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") 50% no-repeat;position:absolute;inset:0}.b{letter-spacing:-.005em;border-radius:4px;align-items:center;gap:4px;padding:2px 7px;font-size:11.5px;font-weight:600;display:inline-flex}.b .dot{opacity:.85;background:currentColor;border-radius:50%;width:5px;height:5px}.b-in{color:var(--in);background:var(--in-bg)}.b-out{color:var(--out);background:var(--out-bg)}.b-return{color:var(--return);background:var(--return-bg)}.b-cancel{color:var(--cancel);background:var(--cancel-bg)}.b-ok{color:var(--ok);background:var(--ok-bg)}.b-warn{color:var(--warn);background:var(--warn-bg)}.b-info{color:var(--primary);background:var(--primary-100)}.b-neutral{color:var(--text-3);background:#f3f4f6}.jvs-pager{justify-content:center;align-items:center;gap:4px;padding:16px 0 4px;font-size:13px;display:flex}.jvs-pager button{border:1px solid var(--border);min-width:28px;height:28px;color:var(--text-2);cursor:pointer;background:#fff;border-radius:5px;padding:0 8px;font-size:12px}.jvs-pager button.active{background:var(--text);color:#fff;border-color:var(--text);font-weight:600}.jvs-pager button.nav{color:var(--text-3)}.jvs-card{border:1px solid var(--border);border-radius:var(--r-md);background:#fff;margin-bottom:16px}.jvs-card .head{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:8px;padding:14px 18px;font-size:13.5px;font-weight:600;display:flex}.jvs-card .head .sub{color:var(--text-3);margin-left:auto;font-size:12px;font-weight:400}.jvs-card .body{padding:16px 18px}.jvs-card .body.tight{padding:0}.jvs-grid2{grid-template-columns:1fr 1fr;gap:14px 24px;display:grid}.jvs-grid3{grid-template-columns:repeat(3,1fr);gap:14px 24px;display:grid}.jvs-field-row{flex-direction:column;gap:4px;display:flex}.jvs-field-row .lbl-text{color:var(--text-3);font-size:12px}.jvs-field-row .val{color:var(--text);font-size:13.5px;font-weight:500}.jvs-field-row .val.mono{font-family:SFMono-Regular,Menlo,monospace;font-size:13px}.jvs-input{border:1px solid var(--border-strong);height:36px;color:var(--text);background:#fff;border-radius:6px;outline:none;width:100%;padding:0 10px;font-family:inherit;font-size:13px}.jvs-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}textarea.jvs-input{resize:vertical;height:auto;min-height:80px;padding:10px}.jvs-input.with-icon{padding-left:32px}.jvs-input-wrap{position:relative}.jvs-input-wrap .ic{color:var(--text-4);width:14px;height:14px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.jvs-summary{border:1px solid var(--border);background:#fafbfc;border-radius:8px;grid-template-columns:repeat(4,1fr);gap:14px;padding:14px 18px;display:grid}.jvs-summary .item .lbl{color:var(--text-3);margin-bottom:4px;font-size:11px}.jvs-summary .item .val{color:var(--text);font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.jvs-summary .item.total .val{color:var(--primary);font-size:18px}.jvs-footer{border-top:1px solid var(--border);background:#fff;flex-shrink:0;align-items:center;gap:8px;padding:12px 24px;display:flex}.jvs-footer .right{gap:8px;margin-left:auto;display:flex}.jvs-drawer-wrap{pointer-events:none;display:flex;position:absolute;inset:0}.jvs-drawer-back{background:#0f172a3d;flex:1}.jvs-drawer{border-left:1px solid var(--border);background:#fff;flex-direction:column;width:720px;display:flex;box-shadow:-10px 0 30px #0f172a1a}.jvs-drawer-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:16px 20px;display:flex}.jvs-drawer-head .id{color:var(--text-3);font-family:SFMono-Regular,Menlo,monospace;font-size:12px}.jvs-drawer-head .title{color:var(--text);font-size:17px;font-weight:700}.jvs-drawer-body{background:#fafbfc;flex:1;padding:18px 20px;overflow:auto}.jvs-drawer-foot{border-top:1px solid var(--border);background:#fff;gap:8px;padding:12px 20px;display:flex}.jvs-drawer-foot .right{gap:6px;margin-left:auto;display:flex}.jvs-timeline{padding:4px 4px 0 12px;position:relative}.jvs-timeline:before{content:"";background:var(--border);width:1px;position:absolute;top:8px;bottom:8px;left:18px}.jvs-tl-item{gap:14px;padding:6px 0 18px;display:flex;position:relative}.jvs-tl-dot{border:2.5px solid var(--border-strong);z-index:1;background:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;margin-top:3px;position:relative}.jvs-tl-dot.ok{border-color:var(--in);background:var(--in)}.jvs-tl-dot.warn{border-color:var(--warn);background:var(--warn)}.jvs-tl-dot.err{border-color:var(--return);background:var(--return)}.jvs-tl-dot.now{border-color:var(--primary);background:var(--primary);box-shadow:0 0 0 4px var(--primary-100)}.jvs-tl-body{flex:1;font-size:13px}.jvs-tl-body .ts{color:var(--text-4);margin-top:2px;font-size:11.5px}.jvs-tl-body .who{color:var(--text-3)}.jvs-tl-body .what{color:var(--text);font-weight:500}.jvs-itemtable th,.jvs-itemtable td{padding:8px 10px;font-size:12.5px}.jvs-itemtable td input.jvs-input{height:30px;font-size:12.5px}.jvs-itemtable td input.jvs-input.num{text-align:right;font-variant-numeric:tabular-nums}.jvs-itemtable .addrow td{color:var(--primary);cursor:pointer;text-align:center;background:#fafbfc;font-weight:500}.jvs-itemtable .addrow td:hover{background:var(--primary-50)}.jvs-picker{border:1px dashed var(--border-strong);color:var(--text-3);cursor:pointer;background:#fafbfc;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;display:flex}.jvs-picker:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-50)}.row-flex{align-items:center;gap:8px;display:flex}.row-flex .ic-arrow{border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:inline-flex}.row-flex .ic-arrow.in{background:var(--in-bg);color:var(--in)}.row-flex .ic-arrow.out{background:var(--out-bg);color:var(--out)}.avatar-sm{color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-right:6px;font-size:10px;font-weight:600;display:inline-flex}.avatar-sm.a2{background:linear-gradient(135deg,#10b981,#059669)}.avatar-sm.a3{background:linear-gradient(135deg,#f59e0b,#d97706)}.avatar-sm.a4{background:linear-gradient(135deg,#ef4444,#b91c1c)}.jvs-placeholder{border:1px dashed var(--border-strong);color:var(--text-4);background:repeating-linear-gradient(45deg,#fafbfc 0 8px,#f3f4f6 8px 16px);border-radius:6px;justify-content:center;align-items:center;font-family:SFMono-Regular,Menlo,monospace;font-size:11px;display:flex}.jvs ::-webkit-scrollbar{width:8px;height:8px}.jvs ::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:4px}.jvs ::-webkit-scrollbar-track{background:0 0}.jvs-anno{color:#3c322899;padding:4px 0;font-family:SFMono-Regular,Menlo,monospace;font-size:11px}.jvs-inv{font-family:var(--font);color:var(--text);background:var(--bg);letter-spacing:-.01em;min-height:100%;font-size:13px}.jvs-inv *{box-sizing:border-box}.jvs-inv button{font-family:inherit}@media (max-width:640px){.jvs-grid2,.jvs-grid3{grid-template-columns:1fr;gap:12px}.jvs-stats{grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px}.jvs-summary{grid-template-columns:1fr 1fr;padding:12px 14px}.jvs-stack-mobile{grid-template-columns:1fr!important}.jvs-footer{flex-wrap:wrap;padding:12px 16px}.jvs-footer .right{flex-wrap:wrap;gap:8px;width:100%;margin-left:0}.jvs-footer .right>*{flex:auto}.jvs-card .head{flex-wrap:wrap;padding:12px 14px}.jvs-card .head .sub{flex-basis:100%;margin-left:0}.jvs-card .body{padding:14px}.jvs-pageheader{padding-left:16px;padding-right:16px}.jvs-pageheader .row1{flex-wrap:wrap}.jvs-pagetitle{font-size:18px}.jvs-pageactions{gap:6px;width:100%;margin-left:0;overflow-x:auto}.jvs-pageactions>*{flex-shrink:0}.jvs-segment{max-width:100%;overflow-x:auto}.jvs-field .lbl{white-space:nowrap}.jvs-filters{padding:12px 16px}.jvs-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.jvs-drawer{width:100%}}
