@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap);@import url(https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.8/dist/web/static/pretendard.css);.pk-container,.pk-container *{--pk-bg:#f0f4ff;--pk-bg2:#e8eeff;--pk-surface:#ffffffd1;--pk-surface-hover:#fffffff2;--pk-border:#638cff38;--pk-border-strong:#3b64ff61;--pk-blue-50:#eff6ff;--pk-blue-100:#dbeafe;--pk-blue-400:#60a5fa;--pk-blue-500:#3b82f6;--pk-blue-600:#2563eb;--pk-blue-700:#1d4ed8;--pk-navy:#0f2057;--pk-navy-mid:#1e3a8a;--pk-text:#0f172a;--pk-text-mid:#334155;--pk-muted:#64748b;--pk-muted-lt:#94a3b8;--pk-ok:#16a34a;--pk-ok-bg:#dcfce7;--pk-danger:#dc2626;--pk-danger-bg:#fee2e2;--pk-radius-sm:8px;--pk-radius:14px;--pk-radius-lg:20px;--pk-shadow-sm:0 1px 3px #1e3a8a14,0 1px 2px #1e3a8a0f;--pk-shadow:0 4px 20px #1e3a8a1a,0 1px 4px #1e3a8a0f;--pk-shadow-lg:0 8px 40px #1e3a8a26,0 2px 8px #1e3a8a14}.pk-container{grid-gap:14px;align-items:stretch;display:grid;flex:1 1;gap:14px;grid-template-columns:270px 1fr 1fr;padding:14px 16px 16px;position:relative;z-index:1}.pk-card,.pk-container{min-height:0;overflow:hidden}.pk-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:var(--pk-surface);border:1px solid var(--pk-border);border-radius:var(--pk-radius-lg);box-shadow:var(--pk-shadow);display:flex;flex-direction:column;min-width:0;padding:18px;transition:box-shadow .2s ease}.pk-card:hover{box-shadow:var(--pk-shadow-lg)}.pk-card-scroll{flex:1 1;min-height:0;overflow-y:auto;padding-right:2px}.pk-card-scroll::-webkit-scrollbar{width:4px}.pk-card-scroll::-webkit-scrollbar-thumb{background:var(--pk-border-strong);border-radius:4px}.pk-card-header{gap:8px;margin-bottom:14px}.pk-card-header,.pk-card-icon{align-items:center;display:flex}.pk-card-icon{background:linear-gradient(135deg,var(--pk-blue-500),var(--pk-blue-400));border-radius:8px;flex-shrink:0;font-size:14px;height:28px;justify-content:center;width:28px}.pk-card h2{color:var(--pk-navy-mid);font-size:13px;letter-spacing:.6px;margin:0}.pk-card h2,.pk-section-label{font-weight:600;text-transform:uppercase}.pk-section-label{align-items:center;color:var(--pk-blue-600);display:flex;font-size:11px;gap:6px;letter-spacing:.8px;margin:16px 0 8px}.pk-section-label:after{background:linear-gradient(to right,var(--pk-border),#0000);content:"";flex:1 1;height:1px}.pk-row{align-items:center;display:flex;gap:8px}.pk-row+.pk-row{margin-top:8px}.pk-btn{background:var(--pk-surface);border:1px solid var(--pk-border);border-radius:var(--pk-radius-sm);box-shadow:var(--pk-shadow-sm);color:var(--pk-text-mid);cursor:pointer;font-size:13px;font-weight:500;padding:9px 14px;transition:all .15s ease;white-space:nowrap}.pk-btn:hover:not(:disabled){background:var(--pk-surface-hover);border-color:var(--pk-border-strong);box-shadow:var(--pk-shadow);color:var(--pk-text);transform:translateY(-1px)}.pk-btn:active:not(:disabled){transform:translateY(0)}.pk-btn:disabled{cursor:not-allowed;opacity:.42}.pk-btn-primary{background:linear-gradient(145deg,var(--pk-blue-600),var(--pk-blue-500));border-color:var(--pk-blue-700);box-shadow:0 4px 16px #2563eb4d;color:#fff;font-size:13.5px;padding:10px 20px}.pk-btn-primary:hover:not(:disabled){background:linear-gradient(145deg,var(--pk-blue-700),var(--pk-blue-600));border-color:var(--pk-blue-700);box-shadow:0 6px 22px #2563eb6b;color:#fff}.pk-btn-danger{background:var(--pk-danger-bg);border-color:#dc26264d;color:var(--pk-danger)}.pk-btn-danger:hover:not(:disabled){background:#fecaca;border-color:var(--pk-danger)}.pk-btn-icon{line-height:1;padding:8px 10px}.pk-input{background:#ffffffb3;border:1px solid var(--pk-border);border-radius:var(--pk-radius-sm);box-sizing:border-box;color:var(--pk-text);font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.pk-input:focus{background:#fff;border-color:var(--pk-blue-500);box-shadow:0 0 0 3px #3b82f624}.pk-input::placeholder{color:var(--pk-muted-lt)}.pk-mode-toggle{grid-gap:0;background:var(--pk-blue-50);border:1px solid var(--pk-border-strong);border-radius:var(--pk-radius-sm);display:grid;gap:0;grid-template-columns:1fr 1fr;overflow:hidden}.pk-mode-btn{align-items:center;background:#0000;border:none;color:var(--pk-muted);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px;justify-content:center;letter-spacing:.3px;padding:9px 12px;text-align:center;transition:all .18s ease}.pk-mode-btn.active{background:linear-gradient(145deg,var(--pk-blue-600),var(--pk-blue-500));box-shadow:0 2px 10px #2563eb47;color:#fff}.pk-mode-btn:not(.active):hover{background:var(--pk-blue-100);color:var(--pk-blue-600)}.pk-threshold-panel{animation:pk-slideDown .2s ease;background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #3b82f647;border-radius:var(--pk-radius-sm);margin-top:10px;padding:12px 14px}@keyframes pk-slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.pk-thr-label{align-items:center;color:var(--pk-blue-700);display:flex;font-size:12px;font-weight:600;gap:6px;margin-bottom:8px}.pk-range-group{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:1fr 64px}.pk-range{accent-color:var(--pk-blue-600);width:100%}.pk-range-val{background:var(--pk-blue-50);border:1px solid var(--pk-border-strong);border-radius:var(--pk-radius-sm);color:var(--pk-blue-600);font-size:13px;font-weight:600;padding:6px 4px;text-align:center}.pk-divider{background:var(--pk-border);height:1px;margin:14px 0}.pk-hint{color:var(--pk-muted-lt);font-size:11px;font-style:italic}.pk-ref-item{align-items:center;background:#fff9;border:1px solid var(--pk-border);border-radius:var(--pk-radius-sm);display:flex;gap:7px;padding:8px 10px;transition:background .12s}.pk-ref-item:hover{background:#ffffffe6}.pk-progress-wrap{background:var(--pk-border);border-radius:99px;height:4px;margin-top:6px;overflow:hidden;width:100%}.pk-progress-bar{background:linear-gradient(90deg,var(--pk-blue-500),var(--pk-blue-400));border-radius:99px;height:100%;transition:width .3s ease}.pk-progress-indeterminate{animation:pk-sweep 1.4s ease-in-out infinite;width:45%}@keyframes pk-sweep{0%{transform:translateX(-100%)}to{transform:translateX(260%)}}.pk-alert{align-items:flex-start;animation:pk-slideDown .2s ease;border-radius:var(--pk-radius-sm);display:flex;font-size:12px;font-weight:500;gap:8px;padding:10px 12px}.pk-alert-err{background:var(--pk-danger-bg);border:1px solid #dc262647;color:var(--pk-danger)}.pk-alert-info{background:var(--pk-blue-50);border:1px solid var(--pk-border-strong);color:var(--pk-blue-700)}@keyframes pk-spin{to{transform:rotate(1turn)}}.pk-spinner{animation:pk-spin .7s linear infinite;border:2px solid #fff6;border-radius:50%;border-top-color:#fff;display:inline-block;flex-shrink:0;height:14px;margin-right:6px;vertical-align:-3px;width:14px}.pk-spinner-dark{border-color:#6366f140;border-top-color:var(--pk-blue-600);margin-right:0;vertical-align:middle}.pk-stage{background:linear-gradient(135deg,#f8faff,#edf2ff);border:1px solid var(--pk-border);border-radius:var(--pk-radius);box-shadow:inset 0 2px 8px #1e3a8a0f;max-width:100%;overflow:auto;overscroll-behavior:contain;position:relative;touch-action:pan-x pan-y;width:100%}.pk-stage-fill{align-items:center;display:flex;flex:1 1;justify-content:center;min-height:0;overflow:hidden}.pk-stage-center{display:grid;padding:12px;place-items:center}.pk-zoom-viewport{background:linear-gradient(135deg,#f8faff,#edf2ff);border:1px solid var(--pk-border);border-radius:var(--pk-radius);box-shadow:inset 0 2px 8px #1e3a8a0f;cursor:grab;height:100%;overflow:hidden;position:relative;touch-action:none;width:100%}.pk-zoom-viewport:active{cursor:grabbing}.pk-zoom-inner{left:0;position:absolute;top:0;transform-origin:0 0;-webkit-user-select:none;user-select:none;will-change:transform}.pk-canvas-wrap{display:inline-block;max-width:none;position:relative;vertical-align:top}.pk-draw-layer{cursor:crosshair;inset:0;position:absolute}.pk-overlay-svg{inset:0;pointer-events:none;position:absolute}.pk-kpi-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.pk-kpi{background:linear-gradient(135deg,#fffc,#dbeafe66);border:1px solid var(--pk-border);border-radius:var(--pk-radius-sm);box-shadow:var(--pk-shadow-sm);padding:12px 14px;transition:transform .15s ease}.pk-kpi:hover{transform:translateY(-2px)}.pk-kpi-label{color:var(--pk-muted);font-size:11px;font-weight:500;letter-spacing:.3px}.pk-kpi-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--pk-navy),var(--pk-blue-600));-webkit-background-clip:text;background-clip:text;font-size:26px;font-weight:700;letter-spacing:-.5px;margin-top:6px}.pk-stream-log{background:linear-gradient(135deg,#f0f7ff,#e8f0ff);border:1px solid var(--pk-border);border-radius:var(--pk-radius-sm);color:var(--pk-text-mid);font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-size:11.5px;line-height:1.55;max-height:180px;overflow-y:auto;padding:10px 12px;white-space:pre-wrap}.pk-stream-log::-webkit-scrollbar{width:4px}.pk-stream-log::-webkit-scrollbar-thumb{background:var(--pk-border-strong);border-radius:4px}.pk-pill{background:#ffffffa6;border:1px solid var(--pk-border);border-radius:999px;box-shadow:var(--pk-shadow-sm);color:var(--pk-muted);gap:6px;padding:5px 11px}.pk-pill,.pk-project-pill{align-items:center;display:inline-flex;font-size:12px;font-weight:500}.pk-project-pill{background:linear-gradient(135deg,var(--pk-blue-50),var(--pk-blue-100));border:1px solid var(--pk-border-strong);border-radius:999px;color:var(--pk-navy-mid);gap:7px;margin-bottom:14px;max-width:100%;overflow:hidden;padding:6px 12px;text-overflow:ellipsis;white-space:nowrap}.pk-dot{background:var(--pk-ok);border-radius:50%;flex-shrink:0;height:8px;width:8px}@media (max-width:1100px){.pk-container{grid-template-columns:250px 1fr;overflow-y:auto}.pk-container>.pk-card:last-child{grid-column:1/-1}}@media (max-width:760px){.pk-container{grid-template-columns:1fr;padding:10px 10px 20px}}.fh-root{--fh-bg:#f4f2ec;--fh-surface:#fff;--fh-surface-2:#f9f8f4;--fh-border:#e3dfd4;--fh-border-mid:#c8c2b0;--fh-teal:#2e5e58;--fh-teal-lt:#dce7e4;--fh-teal-mid:#3d7a73;--fh-teal-dark:#1e3e3a;--fh-blue:#3b82f6;--fh-blue-lt:#eff6ff;--fh-blue-dark:#1d4ed8;--fh-text:#1a1a18;--fh-text-mid:#3a3a35;--fh-text-muted:#6b6860;--fh-text-faint:#9a9890;--fh-pass:#1e6b3e;--fh-pass-bg:#d6f0e0;--fh-fail:#c03030;--fh-fail-bg:#fdecea;--fh-warn:#b45309;--fh-warn-bg:#fef3c7;--fh-info:#1d4ed8;--fh-info-bg:#dbeafe;--fh-radius-sm:6px;--fh-radius:10px;--fh-radius-lg:14px;--fh-radius-xl:18px;--fh-shadow-sm:0 1px 3px #0000000f,0 1px 2px #0000000a;--fh-shadow:0 4px 16px #00000012,0 1px 4px #0000000d;--fh-shadow-lg:0 8px 32px #0000001a,0 2px 8px #0000000f;background:var(--fh-bg);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;height:100vh;overflow:hidden}.fh-topbar{background:var(--fh-surface);border-bottom:1px solid var(--fh-border);box-shadow:var(--fh-shadow-sm);flex-shrink:0;gap:12px;height:52px;padding:0 20px}.fh-topbar,.fh-topbar-title{align-items:center;display:flex}.fh-topbar-title{color:var(--fh-text);font-size:14px;font-weight:700;gap:8px}.fh-topbar-badge{background:var(--fh-teal-lt);border-radius:999px;color:var(--fh-teal-dark);font-size:11px;font-weight:600;padding:2px 8px}.fh-back-btn{align-items:center;background:none;border:none;border-radius:var(--fh-radius-sm);color:var(--fh-text-muted);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:5px;padding:5px 8px;transition:background .15s,color .15s}.fh-back-btn:hover{background:var(--fh-surface-2);color:var(--fh-text)}.fh-workspace{grid-gap:12px;display:grid;flex:1 1;gap:12px;grid-template-columns:280px 1.4fr 1fr;padding:12px 16px 14px}.fh-panel,.fh-workspace{min-height:0;overflow:hidden}.fh-panel{background:var(--fh-surface);border:1px solid var(--fh-border);border-radius:var(--fh-radius-xl);box-shadow:var(--fh-shadow);display:flex;flex-direction:column}.fh-panel-header{border-bottom:1px solid var(--fh-border);gap:10px;padding:14px 16px 12px}.fh-panel-header,.fh-panel-icon{align-items:center;display:flex;flex-shrink:0}.fh-panel-icon{background:var(--fh-teal);border-radius:var(--fh-radius);height:30px;justify-content:center;width:30px}.fh-panel-icon-blue{background:var(--fh-blue-dark)}.fh-panel-title{color:var(--fh-text);flex:1 1;font-size:13px;font-weight:700;margin:0}.fh-panel-body{flex:1 1;min-height:0;overflow-y:auto;padding:14px 14px 10px}.fh-panel-body::-webkit-scrollbar{width:4px}.fh-panel-body::-webkit-scrollbar-thumb{background:var(--fh-border-mid);border-radius:99px}.fh-label{align-items:center;color:var(--fh-teal-dark);display:flex;font-size:10px;font-weight:700;gap:5px;letter-spacing:.6px;margin-bottom:7px;text-transform:uppercase}.fh-divider{background:var(--fh-border);height:1px;margin:12px 0}.fh-btn{align-items:center;background:var(--fh-surface-2);border:1px solid var(--fh-border);border-radius:var(--fh-radius);color:var(--fh-text-mid);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:6px;justify-content:center;line-height:1;padding:7px 12px;transition:all .15s;white-space:nowrap}.fh-btn:hover:not(:disabled){background:var(--fh-border);color:var(--fh-text)}.fh-btn:disabled{cursor:not-allowed;opacity:.45}.fh-btn-primary{background:var(--fh-teal);border-color:var(--fh-teal);color:#fff;font-weight:600}.fh-btn-primary:hover:not(:disabled){background:var(--fh-teal-dark);border-color:var(--fh-teal-dark);color:#fff}.fh-btn-sm{font-size:11px;padding:5px 9px}.fh-btn-icon{border-radius:var(--fh-radius-sm);padding:6px}.fh-btn-full{width:100%}.fh-input,.fh-select{background:var(--fh-surface);border:1px solid var(--fh-border);border-radius:var(--fh-radius-sm);box-sizing:border-box;color:var(--fh-text);font-size:12px;outline:none;padding:6px 10px;transition:border-color .15s,box-shadow .15s;width:100%}.fh-input:focus,.fh-select:focus{border-color:var(--fh-teal-mid);box-shadow:0 0 0 3px #0d94881f}.fh-list-item{align-items:center;background:none;border:1px solid #0000;border-radius:var(--fh-radius);color:var(--fh-text-mid);cursor:pointer;display:flex;font-size:12px;gap:8px;padding:7px 10px;text-align:left;transition:all .12s;width:100%}.fh-list-item:hover{background:var(--fh-surface-2);border-color:var(--fh-border)}.fh-list-item.active{background:var(--fh-teal-lt);border-color:#0d94884d;color:var(--fh-teal-dark);font-weight:600}.fh-step-pill{gap:8px;margin-bottom:8px}.fh-step-num,.fh-step-pill{align-items:center;display:flex}.fh-step-num{background:var(--fh-teal);border-radius:50%;color:#fff;flex-shrink:0;font-size:10px;font-weight:700;height:20px;justify-content:center;width:20px}.fh-step-text{color:var(--fh-text-mid);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.fh-candidate{background:var(--fh-surface);border:1px solid var(--fh-border);border-radius:var(--fh-radius);cursor:pointer;margin-bottom:6px;padding:9px 11px;transition:all .12s}.fh-candidate:hover{border-color:var(--fh-teal-mid);box-shadow:var(--fh-shadow-sm)}.fh-candidate.active{background:var(--fh-teal-lt);border-color:var(--fh-teal);box-shadow:0 0 0 3px #0d948814}.fh-score{border-radius:999px;font-size:10px;font-weight:700;padding:2px 7px}.fh-score-high{background:var(--fh-pass-bg);color:var(--fh-pass)}.fh-score-mid{background:var(--fh-warn-bg);color:var(--fh-warn)}.fh-score-low{background:#f3f4f6;color:var(--fh-text-muted)}.fh-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:700;gap:4px;padding:3px 9px}.fh-badge-code{background:var(--fh-pass-bg);color:var(--fh-pass)}.fh-badge-vlm{background:var(--fh-warn-bg);color:var(--fh-warn)}.fh-badge-conf-ok{background:var(--fh-info-bg);color:var(--fh-info)}.fh-badge-conf-lo{background:var(--fh-fail-bg);color:var(--fh-fail)}.fh-pdf-viewport{background:#e8ebf2}.fh-chip{align-items:center;background:var(--fh-blue-lt);border:1px solid #bfdbfe;border-radius:var(--fh-radius-sm);color:var(--fh-blue-dark);display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:4px 10px}.fh-ck-grid{display:flex;flex-direction:column;gap:6px}.fh-ck-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:122px 1fr}.fh-ck-label{color:var(--fh-text-mid);font-size:11px;font-weight:600}.fh-floor-row{border:1px solid var(--fh-border);border-radius:var(--fh-radius);margin-bottom:6px;overflow:hidden;transition:box-shadow .15s}.fh-floor-row:hover{box-shadow:var(--fh-shadow-sm)}.fh-floor-header{align-items:center;cursor:pointer;display:flex;gap:10px;padding:10px 13px;-webkit-user-select:none;user-select:none}.fh-floor-key{color:var(--fh-text);font-size:13px;font-weight:700;min-width:40px}.fh-floor-expected,.fh-floor-measured{font-feature-settings:"tnum";color:var(--fh-text-muted);font-size:12px;font-variant-numeric:tabular-nums}.fh-floor-diff{font-feature-settings:"tnum";font-size:12px;font-variant-numeric:tabular-nums;font-weight:700}.fh-floor-diff-ok{color:var(--fh-pass)}.fh-floor-diff-bad{color:var(--fh-fail)}.fh-floor-checks{border-top:1px solid var(--fh-border)}.fh-check-row{align-items:flex-start;border-bottom:1px solid var(--fh-border);display:flex;font-size:12px;gap:10px;padding:8px 13px}.fh-check-row:last-child{border-bottom:none}.fh-check-row.fail{background:#fff8f8}.fh-check-row.warn{background:#fffbf0}.fh-check-msg{color:var(--fh-text-mid);flex:1 1;line-height:1.45}.fh-check-detail{color:var(--fh-text-faint);font-size:11px;margin-top:2px}.fh-sev{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:700;gap:3px;letter-spacing:.3px;padding:2px 8px;white-space:nowrap}.fh-sev-PASS{background:var(--fh-pass-bg);color:var(--fh-pass)}.fh-sev-FAIL{background:var(--fh-fail-bg);color:var(--fh-fail)}.fh-sev-WARN{background:var(--fh-warn-bg);color:var(--fh-warn)}.fh-sev-INFO{background:var(--fh-info-bg);color:var(--fh-info)}.fh-sev-SKIP{background:#f3f4f6;color:var(--fh-text-faint)}.fh-explain-card{background:linear-gradient(135deg,#f0fdfa,#f0f9ff);border:1px solid #0d948833;border-radius:var(--fh-radius-lg);margin-top:12px;padding:14px}.fh-explain-title{align-items:center;color:var(--fh-teal-dark);display:flex;font-size:11px;font-weight:700;gap:5px;margin-bottom:7px}.fh-explain-text{color:#134e4a;font-size:12px;line-height:1.7;margin:0 0 8px}.fh-citation{border-left:2px solid var(--fh-teal-mid);color:var(--fh-teal-dark);font-size:11px;margin-bottom:4px;padding-left:8px}.fh-alert{align-items:flex-start;border-radius:var(--fh-radius);display:flex;font-size:12px;gap:7px;margin-bottom:10px;padding:9px 12px}.fh-alert-warn{background:var(--fh-warn-bg);border:1px solid #fde68a;color:#92400e}.fh-alert-err{background:var(--fh-fail-bg);border:1px solid #fecaca;color:#991b1b}.fh-alert-info{background:var(--fh-info-bg);border:1px solid #bfdbfe;color:#1e3a8a}.fh-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.fh-tab{background:var(--fh-surface-2);border:1px solid var(--fh-border);border-radius:999px;color:var(--fh-text-muted);cursor:pointer;font-size:11px;font-weight:600;padding:5px 12px;transition:all .12s}.fh-tab:hover{border-color:#93affe;color:#1b41b9}.fh-tab.active{background:#e0e9fc;border-color:#3661ea59;color:#1b41b9}.fh-page-nav{align-items:center;display:flex;gap:6px}.fh-page-nav input{text-align:center;width:46px}.fh-action-bar{background:var(--fh-surface-2);border-top:1px solid var(--fh-border);display:flex;flex-shrink:0;flex-wrap:wrap;gap:6px;padding:10px 14px}.fh-spin{animation:fh-spin .65s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;flex-shrink:0;height:12px;width:12px}.fh-spin-dark{border-color:#0000001f;border-top-color:var(--fh-teal-dark)}@keyframes fh-spin{to{transform:rotate(1turn)}}.fh-empty{align-items:center;color:var(--fh-text-faint);display:flex;flex-direction:column;gap:8px;justify-content:center;padding:48px 24px;text-align:center}.fh-empty-icon{margin-bottom:4px;opacity:.3}.fh-empty-title{color:var(--fh-text-muted);font-size:13px;font-weight:600}.fh-empty-sub{font-size:12px}.fh-project-pill{align-items:center;background:var(--fh-surface-2);border:1px solid var(--fh-border);border-radius:var(--fh-radius);color:var(--fh-text-mid);display:flex;font-size:12px;font-weight:500;gap:7px;margin-bottom:12px;min-width:0;padding:6px 10px}.fh-project-dot{background:var(--fh-teal);border-radius:50%;flex-shrink:0;height:7px;width:7px}.fh-zoom-bar{align-items:center;display:flex;gap:4px}.fh-zoom-pct{font-feature-settings:"tnum";color:var(--fh-text-muted);font-size:11px;font-variant-numeric:tabular-nums;min-width:36px;text-align:center}.fh-right-tabs{align-items:center;background:var(--fh-surface-2);border-bottom:1px solid var(--fh-border);display:flex;flex-shrink:0;gap:0;padding:0 14px}.fh-right-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--fh-text-muted);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;margin-bottom:-1px;padding:9px 14px;transition:color .12s,border-color .12s;white-space:nowrap}.fh-right-tab:hover:not(:disabled){color:#1b41b9}.fh-right-tab.active{border-bottom-color:#3661ea;color:#3661ea}.fh-right-tab:disabled{cursor:default;opacity:.4}.fh-pdf-viewport{background:#e8e6df;cursor:grab;flex:1 1;min-height:0;overflow:hidden;position:relative}.fh-pdf-viewport:active{cursor:grabbing}.fh-pdf-inner{left:0;position:absolute;top:0;transform-origin:0 0}.fh-pdf-canvas-wrap{border-radius:2px;box-shadow:0 4px 24px #0000002e;display:inline-block;overflow:hidden}.ws-root{--ws-bg:#f8fafc;--ws-surface:#fff;--ws-border:#e2e8f0;--ws-border-mid:#cbd5e1;--ws-blue:#1d4ed8;--ws-blue-lt:#eff6ff;--ws-blue-mid:#3b82f6;--ws-text:#0f172a;--ws-text-mid:#334155;--ws-text-muted:#64748b;--ws-text-faint:#94a3b8;--ws-pass:#16a34a;--ws-pass-bg:#dcfce7;--ws-fail:#dc2626;--ws-fail-bg:#fee2e2;--ws-review:#d97706;--ws-review-bg:#fef3c7;--ws-na:#64748b;--ws-na-bg:#f1f5f9;--ws-radius:8px;--ws-radius-sm:5px;--ws-shadow:0 1px 4px #00000014;--ws-shadow-md:0 4px 16px #00000014;background:var(--ws-bg);color:var(--ws-text);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;height:100vh}.ws-topbar{border-bottom:1px solid var(--ws-border);flex-shrink:0;gap:10px;height:48px;padding:0 20px}.ws-back-btn,.ws-topbar{align-items:center;background:#fff;display:flex}.ws-back-btn{border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);color:var(--ws-text-mid);cursor:pointer;font-size:12px;font-weight:500;gap:5px;padding:5px 10px;transition:background .12s}.ws-back-btn:hover{background:var(--ws-bg)}.ws-topbar-title{align-items:center;color:var(--ws-text);display:flex;font-size:14px;font-weight:600;gap:6px}.ws-topbar-badge{background:var(--ws-blue-lt);border-radius:20px;color:var(--ws-blue);font-size:11px;font-weight:700;padding:2px 8px}.ws-workspace{display:flex;flex:1 1;gap:0;min-height:0}.ws-panel{background:#fff;border-right:1px solid var(--ws-border);display:flex;flex-direction:column;overflow:hidden}.ws-panel-left{flex-shrink:0;width:280px}.ws-panel-main{flex:1 1;min-width:0}.ws-panel-right{border-right:none;flex-shrink:0;width:340px}.ws-panel-header{align-items:center;border-bottom:1px solid var(--ws-border);display:flex;flex-shrink:0;gap:10px;padding:14px 16px}.ws-panel-icon{align-items:center;background:var(--ws-blue);border-radius:var(--ws-radius-sm);display:flex;height:28px;justify-content:center;width:28px}.ws-panel-title{color:var(--ws-text);font-size:13px;font-weight:600;margin:0}.ws-panel-body{flex:1 1;overflow-y:auto;padding:14px 16px}.ws-progress-wrap{display:flex;flex-direction:column;gap:12px;padding:24px 20px}.ws-progress-label{color:var(--ws-text-mid);font-size:12px;font-weight:600}.ws-progress-bar-bg{background:var(--ws-border);border-radius:99px;height:6px;overflow:hidden}.ws-progress-bar-fill{background:var(--ws-blue);border-radius:99px;height:100%;transition:width .3s ease}.ws-progress-msg{color:var(--ws-text-muted);font-size:11px}.ws-summary-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.ws-summary-chip{align-items:center;border:1px solid #0000;border-radius:var(--ws-radius);display:flex;font-size:12px;font-weight:600;gap:5px;padding:5px 10px}.ws-summary-chip.pass{background:var(--ws-pass-bg);border-color:#bbf7d0;color:var(--ws-pass)}.ws-summary-chip.fail{background:var(--ws-fail-bg);border-color:#fecaca;color:var(--ws-fail)}.ws-summary-chip.review{background:var(--ws-review-bg);border-color:#fde68a;color:var(--ws-review)}.ws-summary-chip.total{background:var(--ws-bg);border-color:var(--ws-border);color:var(--ws-text-mid)}.ws-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:700;gap:3px;padding:2px 7px;white-space:nowrap}.ws-badge.PASS{background:var(--ws-pass-bg);color:var(--ws-pass)}.ws-badge.FAIL{background:var(--ws-fail-bg);color:var(--ws-fail)}.ws-badge.REVIEW{background:var(--ws-review-bg);color:var(--ws-review)}.ws-badge.NA{background:var(--ws-na-bg);color:var(--ws-na)}.ws-entry-list{display:flex;flex-direction:column;gap:4px}.ws-entry-item{align-items:center;border:1px solid #0000;border-radius:var(--ws-radius-sm);cursor:pointer;display:flex;gap:8px;padding:8px 12px;transition:all .12s}.ws-entry-item:hover{background:var(--ws-bg);border-color:var(--ws-border)}.ws-entry-item.active{background:var(--ws-blue-lt);border-color:#bfdbfe}.ws-entry-ref{color:var(--ws-blue);font-size:12px;font-weight:700;min-width:40px}.ws-entry-title{color:var(--ws-text-mid);flex:1 1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-table-wrap{flex:1 1;overflow:auto;padding:16px}.ws-table{border-collapse:collapse;font-size:12px;width:100%}.ws-table th{background:var(--ws-bg);border-bottom:2px solid var(--ws-border);color:var(--ws-text-muted);font-size:11px;font-weight:600;padding:9px 12px;text-align:left;white-space:nowrap}.ws-table td{border-bottom:1px solid var(--ws-border);color:var(--ws-text-mid);padding:9px 12px;vertical-align:middle}.ws-table tr:hover td{background:var(--ws-bg)}.ws-table tr.selected td{background:var(--ws-blue-lt)}.ws-table tr.fail td{background:#fff5f5}.ws-table tr.review td{background:#fffbeb}.ws-table-ref{color:var(--ws-blue);font-size:12px;font-weight:700}.ws-table-empty{align-items:center;color:var(--ws-text-faint);display:flex;flex-direction:column;gap:10px;justify-content:center;padding:60px 20px}.ws-detail-section{margin-bottom:14px}.ws-detail-label{align-items:center;color:var(--ws-text-muted);display:flex;font-size:10px;font-weight:700;gap:5px;letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}.ws-detail-field{align-items:flex-start;border-bottom:1px solid var(--ws-border);display:flex;font-size:12px;gap:8px;justify-content:space-between;padding:5px 0}.ws-detail-field:last-child{border-bottom:none}.ws-detail-key{color:var(--ws-text-muted);flex-shrink:0;min-width:100px}.ws-detail-val{color:var(--ws-text);font-weight:500;min-width:0;text-align:right;word-break:break-word}.ws-detail-field-block{align-items:stretch;flex-direction:column;gap:6px}.ws-detail-field-block .ws-detail-val{font-weight:400;text-align:left}.ws-obj-list{gap:6px}.ws-obj-card,.ws-obj-list{display:flex;flex-direction:column}.ws-obj-card{background:var(--ws-bg);border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);font-size:11px;gap:3px;padding:6px 8px}.ws-obj-card-title{color:var(--ws-text-muted);font-size:10px;font-weight:700;letter-spacing:.04em;margin-bottom:2px;text-transform:uppercase}.ws-obj-card-row{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;line-height:1.4}.ws-obj-card-key{color:var(--ws-text-muted);flex-shrink:0}.ws-obj-card-val{color:var(--ws-text);min-width:0;text-align:right;word-break:break-word}.ws-reasoning{background:var(--ws-bg);color:var(--ws-text-mid);line-height:1.6;padding:10px 12px}.ws-mismatch-item,.ws-reasoning{border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);font-size:12px}.ws-mismatch-item{margin-bottom:6px;padding:8px 12px}.ws-mismatch-item.FAIL{background:#fff5f5;border-color:#fecaca}.ws-mismatch-item.REVIEW{background:#fffbeb;border-color:#fde68a}.ws-mismatch-header{align-items:center;display:flex;gap:8px;margin-bottom:4px}.ws-mismatch-symbol{color:var(--ws-text);font-weight:700}.ws-mismatch-msg{color:var(--ws-text-mid);font-size:11px}.ws-overlay-wrap{background:#e2e8f0;display:flex;flex:1 1;min-height:0;overflow:hidden}.ws-zoom-bar{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffeb;border:1px solid var(--ws-border);border-radius:8px;box-shadow:0 1px 3px #0a162814;display:flex;gap:4px;padding:4px 6px;position:absolute;right:8px;top:8px;z-index:2}.ws-zoom-btn{align-items:center;background:#fff;border:1px solid var(--ws-border);border-radius:6px;color:var(--ws-text);cursor:pointer;display:inline-flex;height:24px;justify-content:center;transition:background .12s,border-color .12s;width:24px}.ws-zoom-btn:hover:not(:disabled){background:var(--ws-bg);border-color:var(--ws-border-mid)}.ws-zoom-btn:disabled{cursor:not-allowed;opacity:.5}.ws-zoom-pct{font-feature-settings:"tnum";color:var(--ws-text-muted);font-size:11px;font-variant-numeric:tabular-nums;min-width:36px;text-align:center}.ws-tabs{border-bottom:1px solid var(--ws-border);display:flex;flex-shrink:0;gap:0}.ws-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--ws-text-muted);cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:5px;padding:10px 16px;transition:all .12s}.ws-tab.active,.ws-tab:hover{color:var(--ws-blue)}.ws-tab.active{border-bottom-color:var(--ws-blue);font-weight:600}.ws-tab:disabled{cursor:not-allowed;opacity:.4}.ws-btn{align-items:center;background:#fff;border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);color:var(--ws-text-mid);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:5px;padding:6px 12px;transition:all .12s}.ws-btn:hover{background:var(--ws-bg);border-color:var(--ws-border-mid)}.ws-btn:disabled{cursor:not-allowed;opacity:.4}.ws-btn-primary{background:var(--ws-blue);border-color:var(--ws-blue);color:#fff}.ws-btn-primary:hover{background:#1e40af;border-color:#1e40af}.ws-btn-full{justify-content:center;width:100%}.ws-btn-approve{background:#16a34a;border-color:#16a34a;color:#fff}.ws-btn-approve:hover:not(:disabled){background:#15803d;border-color:#15803d}.ws-btn-reject{background:#dc2626;border-color:#dc2626;color:#fff}.ws-btn-reject:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.ws-review-status{color:var(--ws-text-muted);font-size:11px;margin-bottom:6px}.ws-review-status-val{color:var(--ws-text);font-weight:600;margin-left:4px}.ws-review-textarea{background:#fff;border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);box-sizing:border-box;color:var(--ws-text);font:inherit;font-size:12px;min-height:56px;padding:8px 10px;resize:vertical;width:100%}.ws-review-textarea:focus{border-color:var(--ws-blue-mid);outline:none}.ws-review-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ws-plan-panel{background:var(--ws-surface);border-top:1px solid var(--ws-border);flex-shrink:0}.ws-plan-panel-header{align-items:center;border-bottom:1px solid var(--ws-border);cursor:pointer;display:flex;gap:8px;padding:12px 16px;-webkit-user-select:none;user-select:none}.ws-plan-panel-header:hover{background:var(--ws-bg)}.ws-plan-title{color:var(--ws-text);font-size:13px;font-weight:700}.ws-plan-sub,.ws-plan-toggle{color:var(--ws-text-muted);font-size:11px}.ws-plan-toggle{align-items:center;display:inline-flex;gap:4px;margin-left:auto}.ws-plan-body{grid-gap:16px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:14px 16px}.ws-plan-field{display:flex;flex-direction:column;gap:4px}.ws-plan-field label{color:var(--ws-text-muted);font-size:11px;font-weight:600}.ws-plan-input{background:#fff;border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);font-size:12px;padding:6px 10px}.ws-plan-input:focus{border-color:var(--ws-blue-mid);outline:none}.ws-plan-checkbox{color:var(--ws-text-mid);font-size:12px;gap:6px}.ws-plan-actions,.ws-plan-checkbox{align-items:center;display:flex;grid-column:1/-1}.ws-plan-actions{flex-wrap:wrap;gap:10px}.ws-plan-progress-wrap{display:flex;flex-direction:column;gap:4px;grid-column:1/-1}.ws-plan-result{grid-gap:16px;border-top:1px dashed var(--ws-border);display:grid;gap:16px;grid-column:1/-1;grid-template-columns:320px 1fr;padding-top:14px}.ws-plan-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto}.ws-plan-list-item{align-items:flex-start;background:#fff;border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);cursor:pointer;display:flex;font-size:11px;gap:6px;padding:6px 8px}.ws-plan-list-item:hover{background:var(--ws-bg)}.ws-plan-list-item.active{background:var(--ws-blue-lt);border-color:#bfdbfe}.ws-plan-list-item.FAIL{border-left:3px solid var(--ws-fail)}.ws-plan-list-item.REVIEW{border-left:3px solid var(--ws-review)}.ws-plan-list-item.PASS{border-left:3px solid var(--ws-pass)}.ws-plan-overlay-wrap{background:#e2e8f0;border:1px solid var(--ws-border);border-radius:var(--ws-radius-sm);display:flex;height:360px;min-height:300px;overflow:hidden}.ws-spin{animation:ws-spin .7s linear infinite;border:2px solid #fff6;border-radius:50%;border-top-color:#fff;flex-shrink:0;height:12px;width:12px}.ws-spin-dark{border-color:#0000001f;border-top-color:var(--ws-blue)}@keyframes ws-spin{to{transform:rotate(1turn)}}.ws-empty{align-items:center;color:var(--ws-text-faint);display:flex;flex-direction:column;gap:8px;justify-content:center;padding:48px 20px;text-align:center}.ws-empty-title{color:var(--ws-text-muted);font-size:13px;font-weight:600}.ws-empty-sub{color:var(--ws-text-faint);font-size:11px;line-height:1.5}.ws-label{align-items:center;color:var(--ws-text-muted);display:flex;font-size:10px;font-weight:700;gap:4px;letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}.ws-divider{background:var(--ws-border);height:1px;margin:12px 0}.ws-alert{border-radius:var(--ws-radius-sm);display:flex;font-size:12px;gap:8px;margin-bottom:10px;padding:9px 12px}.ws-alert-err{background:var(--ws-fail-bg);border:1px solid #fecaca;color:var(--ws-fail)}.ws-alert-warn{background:var(--ws-review-bg);border:1px solid #fde68a;color:var(--ws-review)}.ws-alert-info{background:var(--ws-blue-lt);border:1px solid #bfdbfe;color:var(--ws-blue)}.ws-action-bar{background:#fff;border-top:1px solid var(--ws-border);display:flex;flex-shrink:0;gap:8px;padding:12px 16px}.ws-kind{background:var(--ws-bg);border:1px solid var(--ws-border);border-radius:4px;color:var(--ws-text-muted);display:inline-block;font-size:10px;font-weight:700;padding:2px 7px}:root{--bs-radius-sm:8px;--bs-border:#00000014;--bs-border-strong:#00000029;--bs-text:#1a1a18;--bs-text-mid:#4b5563;--bs-muted:#6b7280;--bs-muted-lt:#9ca3af;--bs-blue-50:#eff6ff;--bs-blue-500:#3b82f6;--bs-blue-600:#2563eb}.bs-root{background:#f4f2ec;display:flex;flex-direction:column;min-height:100vh}.bs-topbar{align-items:center;background:#fff;border-bottom:1px solid #00000014;border-bottom:1px solid var(--bs-border);display:flex;flex-shrink:0;gap:10px;padding:10px 18px}.bs-back-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#4b5563;color:var(--bs-text-mid);cursor:pointer;display:inline-flex;font-size:12px;gap:5px;padding:4px 8px}.bs-back-btn:hover{background:#0000000a}.bs-topbar-title{align-items:center;color:#1a1a18;color:var(--bs-text);display:inline-flex;font-size:13px;font-weight:700;gap:6px}.bs-topbar-badge{background:#7c3aed1f;border-radius:4px;color:#7c3aed;font-size:10px;font-weight:800;letter-spacing:.5px;padding:2px 8px}.bs-workspace{display:grid;flex:1 1;grid-template-columns:320px 1fr;min-height:0;position:relative;transition:grid-template-columns .22s cubic-bezier(.22,1,.36,1)}.bs-workspace.with-sidebar{grid-template-columns:320px 1fr 420px}.bs-workspace.left-collapsed{grid-template-columns:0 1fr}.bs-workspace.left-collapsed.with-sidebar{grid-template-columns:0 1fr 420px}.bs-workspace.left-collapsed .bs-panel-left{border-right-color:#0000;opacity:0;overflow:hidden;padding:0;pointer-events:none}.bs-left-toggle{align-items:center;background:#fff;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:8px;color:#4b5563;color:var(--bs-text-mid);cursor:pointer;display:flex;flex-shrink:0;height:30px;justify-content:center;transition:background .12s,color .12s,transform .18s,border-color .12s;width:30px}.bs-left-toggle:hover{background:#f5f3ff;border-color:#7c3aed73;color:#7c3aed}.bs-left-toggle:active{transform:scale(.94)}.bs-left-toggle .bs-cog{transition:transform .36s cubic-bezier(.22,1,.36,1)}.bs-workspace.left-collapsed .bs-left-toggle .bs-cog{transform:rotate(-90deg)}.bs-panel-left{background:#fff;border-right:1px solid #00000014;border-right:1px solid var(--bs-border);overflow-y:auto;padding:16px;transition:padding .22s cubic-bezier(.22,1,.36,1),opacity .18s ease}.bs-panel-main{background:#f6f7fb;display:flex;flex-direction:column;min-width:0;position:relative}.bs-panel-main-header{align-items:center;background:#fff;border-bottom:1px solid #00000014;border-bottom:1px solid var(--bs-border);display:flex;flex-shrink:0;gap:10px;padding:10px 16px}.bs-panel-main-header h2{color:#1a1a18;color:var(--bs-text);font-size:13px;font-weight:700;margin:0}.bs-label{align-items:center;color:#7c3aed;display:flex;font-size:10px;font-weight:700;gap:6px;letter-spacing:.5px;margin:14px 0 6px;text-transform:uppercase}.bs-divider{background:#00000014;background:var(--bs-border);height:1px;margin:12px 0}.bs-input{background:#fff;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:6px;font-size:12px;outline:none;padding:5px 8px;width:100%}.bs-input:focus{border-color:#3b82f6;border-color:var(--bs-blue-500)}.bs-row{display:flex}.bs-btn,.bs-row{align-items:center;gap:6px}.bs-btn{background:#fff;border:1px solid #00000029;border:1px solid var(--bs-border-strong);border-radius:6px;color:#1a1a18;color:var(--bs-text);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;justify-content:center;padding:6px 12px;transition:background .12s}.bs-btn:hover:not(:disabled){background:#00000008}.bs-btn:disabled{cursor:not-allowed;opacity:.45}.bs-btn-primary{background:linear-gradient(145deg,#7c3aed,#a78bfa);border-color:#6d28d9;box-shadow:0 3px 12px #7c3aed4d;color:#fff}.bs-btn-primary:hover:not(:disabled){background:linear-gradient(145deg,#6d28d9,#7c3aed)}.bs-btn-danger{background:#fef2f280;border-color:#dc262673;color:#dc2626}.bs-btn-icon{font-size:11px;padding:3px 7px}.bs-mode-toggle{grid-gap:4px;background:#00000008;border-radius:8px;display:grid;gap:4px;grid-template-columns:1fr 1fr;padding:3px}.bs-mode-btn{background:#0000;border:none;border-radius:6px;color:#4b5563;color:var(--bs-text-mid);cursor:pointer;font-size:11px;font-weight:600;padding:6px 8px}.bs-mode-btn.active{color:#fff}.bs-pill{align-items:center;background:#0000000a;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:999px;color:#4b5563;color:var(--bs-text-mid);display:inline-flex;font-size:11px;gap:4px;padding:2px 8px}.bs-alert{align-items:flex-start;border-radius:8px;display:flex;font-size:11.5px;gap:6px;padding:8px 10px}.bs-alert-err{background:#fdecea;border:1px solid #f5c6c6;color:#b91c1c}.bs-alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8}.bs-progress-bar-wrap{background:#7c3aed1a;border-radius:999px;height:6px;overflow:hidden}.bs-progress-bar{background:linear-gradient(90deg,#7c3aed,#a78bfa);height:100%;transition:width .2s}.bs-spin{animation:bs-spin .8s linear infinite;border:2px solid #fff6;border-radius:50%;border-top-color:#fff;display:inline-block;height:11px;width:11px}@keyframes bs-spin{to{transform:rotate(1turn)}}.bs-canvas-stage{background:#e9eaf0;flex:1 1;min-height:0;min-width:0;overflow:hidden;position:relative}.bs-canvas-wrap{left:50%;margin-left:0;margin-top:0;position:absolute;top:50%;transform-origin:0 0}.bs-canvas-inner,.bs-canvas-wrap{will-change:transform}.bs-canvas-inner canvas{box-shadow:0 4px 14px #00000014;display:block}.bs-draw-layer{background:#0000;inset:0;position:absolute}.bs-overlay-svg{inset:0;pointer-events:none;position:absolute}.bs-loading-overlay{align-items:center;animation:bs-fade-in .18s ease;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#e9eaf0c7;display:flex;flex-direction:column;gap:12px;inset:0;justify-content:center;position:absolute;z-index:15}.bs-loading-spinner{animation:bs-spin .8s linear infinite;border:3px solid #7c3aed2e;border-radius:50%;border-top-color:#7c3aed;height:32px;width:32px}.bs-loading-label{color:#4b5563;font-size:12px;font-weight:600;letter-spacing:.2px}@keyframes bs-fade-in{0%{opacity:0}to{opacity:1}}.bs-empty-preview{color:#9ca3af;color:var(--bs-muted-lt);padding:56px 16px;text-align:center}.bs-empty-preview .ico{font-size:36px;margin-bottom:12px}.bs-result-item{background:#f5f3ff80;border:1px solid #7c3aed1f;border-radius:8px;border-radius:var(--bs-radius-sm);cursor:pointer;margin-bottom:4px;padding:10px 12px;transition:all .15s ease}.bs-result-item:hover{background:#ede9fee6;border-color:#7c3aed59;box-shadow:0 2px 8px #7c3aed1a}.bs-result-item--active{background:#7c3aed1a!important;border-color:#7c3aed73!important;box-shadow:0 0 0 2px #7c3aed26}.bs-result-item-row{align-items:center;display:flex;gap:8px}.bs-result-item-badge{border-radius:4px;font-size:10px;font-weight:700;min-width:32px;padding:2px 6px;text-align:center}.bs-result-item-badge--line{background:#ef44441f;color:#dc2626}.bs-result-item-badge--table{background:#2563eb1f;color:#2563eb}.bs-result-item-label{color:#4b5563;color:var(--bs-text-mid);flex:1 1;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bs-result-item-tests{display:flex;flex-shrink:0;gap:3px}.bs-test-badge{border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.3px;padding:1px 5px}.bs-test-badge--pass{background:#16a34a1f;color:#16a34a}.bs-test-badge--warn{background:#d9770626;color:#b45309}.bs-test-badge--fail{background:#dc26261f;color:#dc2626}.bs-test-badge--info{background:#64748b1f;color:#64748b}.bs-test-badge--clickable{cursor:pointer;transition:transform .1s,box-shadow .1s}.bs-test-badge--clickable:hover{box-shadow:0 0 0 2px #7c3aed40;transform:scale(1.12)}.bs-test-badge--editing{outline:2px solid #7c3aed99;outline-offset:1px;transform:scale(1.1)}.bs-detail{background:#ffffffd9;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:8px;border-radius:var(--bs-radius-sm);margin-top:8px;padding:10px 12px}.bs-detail-field{align-items:center;display:flex;gap:8px;margin-bottom:6px}.bs-detail-field label{color:#2563eb;color:var(--bs-blue-600);flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.5px;min-width:68px;text-transform:uppercase}.bs-detail-field input{background:#fffc;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:6px;flex:1 1;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;outline:none;padding:5px 8px}.bs-detail-field input:focus{border-color:#3b82f6;border-color:var(--bs-blue-500)}.bs-detail-tests{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.bs-detail-test-item{align-items:center;background:#f5f3ffcc;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:5px;display:flex;font-size:10px;font-weight:600;gap:4px;padding:3px 8px}.bs-table-preview{font-size:10px;margin-top:6px;max-height:120px;overflow-y:auto}.bs-table-preview table{border-collapse:collapse;width:100%}.bs-table-preview td,.bs-table-preview th{border:1px solid #00000014;border:1px solid var(--bs-border);font-size:10px;padding:3px 6px;text-align:left}.bs-table-preview th{background:#7c3aed14;color:#2563eb;color:var(--bs-blue-600);font-weight:700}.bs-rule-wrap{display:inline-flex;position:relative}.bs-rule-tooltip{animation:bs-fadeInUp .15s ease;background:linear-gradient(145deg,#1e1b4b,#2e1065);border:1px solid #a78bfa59;border-radius:10px;bottom:calc(100% + 7px);box-shadow:0 8px 32px #00000073;display:none;left:50%;padding:10px 13px;pointer-events:none;position:absolute;transform:translateX(-50%);width:270px;z-index:9999}@keyframes bs-fadeInUp{0%{opacity:0;transform:translateX(-50%) translateY(4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.bs-rule-wrap:hover .bs-rule-tooltip{display:block}.bs-rule-tooltip-header{align-items:center;display:flex;gap:7px;margin-bottom:6px}.bs-rule-tooltip-code{background:#a78bfa38;border-radius:4px;color:#c4b5fd;font-size:11px;font-weight:800;letter-spacing:.5px;padding:2px 7px}.bs-rule-tooltip-severity{border-radius:999px;font-size:9px;font-weight:700;letter-spacing:.5px;padding:2px 7px}.bs-rule-tooltip-severity--fail{background:#ef444438;color:#fca5a5}.bs-rule-tooltip-severity--warn{background:#fbbf2438;color:#fde68a}.bs-rule-tooltip-severity--info{background:#64748b38;color:#cbd5e1}.bs-rule-tooltip-desc{color:#e2e8f0;font-size:11px;line-height:1.55}.bs-rule-tooltip:after{border:6px solid #0000;border-top-color:#2e1065;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.bs-status-editor{display:inline-flex;position:relative}.bs-status-dropdown{background:#fff;border:1px solid #00000029;border:1px solid var(--bs-border-strong);border-radius:8px;bottom:calc(100% + 5px);box-shadow:0 6px 24px #1e3a8a2e;left:50%;min-width:100px;overflow:hidden;position:absolute;transform:translateX(-50%);z-index:9998}.bs-status-dropdown button{background:#0000;border:none;cursor:pointer;display:block;font-size:11px;font-weight:600;padding:6px 14px;text-align:left;width:100%}.bs-status-dropdown button:hover{background:#eff6ff;background:var(--bs-blue-50)}.bs-status-dropdown button.opt-pass{color:#16a34a}.bs-status-dropdown button.opt-warn{color:#b45309}.bs-status-dropdown button.opt-fail{color:#dc2626}.bs-status-dropdown button.opt-info{color:#64748b}.bs-crop-popup{background:#000;border:2px solid #facc15;border-radius:14px;box-shadow:0 8px 40px #0000008c,0 0 0 4px #facc152e;overflow:hidden;pointer-events:none;position:fixed;z-index:9990}.bs-crop-popup canvas{display:block}.bs-crop-popup-label{background:#000000a6;border-radius:5px;color:#facc15;font-size:10px;font-weight:700;left:10px;letter-spacing:.5px;padding:2px 8px;position:absolute;top:8px}.bs-sidebar{background:#fff;border-left:1px solid #00000014;border-left:1px solid var(--bs-border);display:flex;flex-direction:column;min-height:0;min-width:0}.bs-sidebar-header{align-items:center;border-bottom:1px solid #00000014;border-bottom:1px solid var(--bs-border);display:flex;flex-shrink:0;gap:10px;padding:14px 18px}.bs-sidebar-header h2{color:#1a1a18;color:var(--bs-text);font-size:14px;font-weight:700;margin:0}.bs-sidebar-close{background:#0000;border:none;border-radius:6px;color:#6b7280;color:var(--bs-muted);cursor:pointer;font-size:16px;margin-left:auto;padding:4px 8px}.bs-sidebar-close:hover{background:#0000000d;color:#1a1a18;color:var(--bs-text)}.bs-sidebar-body{flex:1 1;overflow-y:auto;padding:14px 16px}.bs-sidebar-section{margin-bottom:14px}.bs-sidebar-section-title{align-items:center;color:#7c3aed;display:flex;font-size:10px;font-weight:700;gap:8px;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.bs-doc-btn{align-items:center;background:#fff;border:1px solid #00000014;border:1px solid var(--bs-border);border-radius:6px;color:#4b5563;color:var(--bs-text-mid);cursor:pointer;display:flex;font-size:11px;gap:6px;padding:6px 10px;text-align:left;width:100%}.bs-doc-btn:hover{background:#00000005}.bs-doc-btn.active{background:linear-gradient(145deg,#7c3aed,#a78bfa);border-color:#6d28d9;color:#fff}.bs-doc-btn span.name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.App{font-family:Pretendard,Noto Sans KR,sans-serif}.hide-scrollbar{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none}}#scrollableDiv *{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none}}textarea::placeholder{transition:none!important;-webkit-transition:none!important}.App *{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none}}.left-box,.right-box{zoom:.85}.dotLoader{background:radial-gradient(circle closest-side,#1782ff80 90%,#0000) 0 /33.33333% 100% space;width:24px}.dotLoader,.loader{animation:l1 1s steps(4) infinite;aspect-ratio:4;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}.loader{background:radial-gradient(circle closest-side,#000 90%,#0000) 0 /33.33333% 100% space;width:60px}@keyframes l1{to{-webkit-clip-path:inset(0 -34% 0 0);clip-path:inset(0 -34% 0 0)}}.slick-track{margin:0!important}.clamped-text{-webkit-line-clamp:1}.clamped-text,.clamped-text-2{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis}.clamped-text-2{-webkit-line-clamp:2}h1{margin-bottom:6px!important;margin-top:20px!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{-webkit-text-fill-color:#000!important;background-color:#fff!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}input:-webkit-autofill{animation-fill-mode:both;animation-name:onAutoFillStart}.rc-pagination{display:flex;font-size:14px;margin:0;padding:0}.rc-pagination ol,.rc-pagination ul{list-style:none;margin:0;padding:0}.rc-pagination-start{justify-content:start}.rc-pagination-center{justify-content:center}.rc-pagination-end{justify-content:end}.rc-pagination:after{clear:both;content:" ";display:block;height:0;overflow:hidden;visibility:hidden}.rc-pagination-item,.rc-pagination-total-text{display:inline-block;height:28px;line-height:26px;margin-right:8px;vertical-align:middle}.rc-pagination-item{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;cursor:pointer;font-family:Arial;list-style:none;min-width:28px;outline:0;text-align:center;-webkit-user-select:none;user-select:none}.rc-pagination-item a{color:#000000d9;display:block;padding:0 6px;transition:none}.rc-pagination-item a:hover{text-decoration:none}.rc-pagination-item:focus,.rc-pagination-item:hover{border-color:#1890ff;transition:all .3s}.rc-pagination-item:focus a,.rc-pagination-item:hover a{color:#1890ff}.rc-pagination-item-active{background:#fff;border-color:#1890ff;font-weight:500}.rc-pagination-item-active a{color:#1890ff}.rc-pagination-item-active:focus,.rc-pagination-item-active:hover{border-color:#40a9ff}.rc-pagination-item-active:focus a,.rc-pagination-item-active:hover a{color:#40a9ff}.rc-pagination-jump-next,.rc-pagination-jump-prev{outline:0}.rc-pagination-jump-next button,.rc-pagination-jump-prev button{background:#0000;border:none;color:#666;cursor:pointer}.rc-pagination-jump-next button:after,.rc-pagination-jump-prev button:after{content:"•••";display:block}.rc-pagination-jump-next,.rc-pagination-jump-prev,.rc-pagination-prev{margin-right:8px}.rc-pagination-jump-next,.rc-pagination-jump-prev,.rc-pagination-next,.rc-pagination-prev{border-radius:2px;color:#000000d9;cursor:pointer;display:inline-block;font-family:Arial;height:28px;line-height:28px;list-style:none;min-width:28px;text-align:center;transition:all .3s;vertical-align:middle}.rc-pagination-next,.rc-pagination-prev{outline:0}.rc-pagination-next button,.rc-pagination-prev button{color:#000000d9;cursor:pointer;-webkit-user-select:none;user-select:none}.rc-pagination-next:hover button,.rc-pagination-prev:hover button{border-color:#40a9ff}.rc-pagination-next .rc-pagination-item-link,.rc-pagination-prev .rc-pagination-item-link{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;display:block;font-size:12px;height:100%;outline:none;text-align:center;transition:all .3s;width:100%}.rc-pagination-next:focus .rc-pagination-item-link,.rc-pagination-next:hover .rc-pagination-item-link,.rc-pagination-prev:focus .rc-pagination-item-link,.rc-pagination-prev:hover .rc-pagination-item-link{border-color:#1890ff;color:#1890ff}.rc-pagination-prev button:after{content:"‹";display:block}.rc-pagination-next button:after{content:"›";display:block}.rc-pagination-disabled,.rc-pagination-disabled:focus,.rc-pagination-disabled:hover{cursor:not-allowed}.rc-pagination-disabled .rc-pagination-item-link,.rc-pagination-disabled:focus .rc-pagination-item-link,.rc-pagination-disabled:hover .rc-pagination-item-link{border-color:#d9d9d9;color:#00000040;cursor:not-allowed}.rc-pagination-slash{margin:0 10px 0 12px}.rc-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media (-ms-high-contrast:none){.rc-pagination-options,.rc-pagination-options ::-ms-backdrop{vertical-align:top}}.rc-pagination-options-size-changer.rc-select{display:inline-block;margin-right:8px;width:auto}.rc-pagination-options-quick-jumper{display:inline-block;height:28px;line-height:28px;vertical-align:top}.rc-pagination-options-quick-jumper input{margin:0 8px;width:50px}.rc-pagination-simple .rc-pagination-next,.rc-pagination-simple .rc-pagination-prev{height:24px;line-height:24px;vertical-align:top}.rc-pagination-simple .rc-pagination-next .rc-pagination-item-link,.rc-pagination-simple .rc-pagination-prev .rc-pagination-item-link{background-color:initial;border:0;height:24px}.rc-pagination-simple .rc-pagination-next .rc-pagination-item-link:after,.rc-pagination-simple .rc-pagination-prev .rc-pagination-item-link:after{height:24px;line-height:24px}.rc-pagination-simple .rc-pagination-simple-pager{align-items:center;display:flex;height:24px;margin-right:8px}.rc-pagination-simple .rc-pagination-simple-pager input{background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;box-sizing:border-box;height:100%;outline:none;padding:0 6px;text-align:center;transition:border-color .3s}.rc-pagination-simple .rc-pagination-simple-pager input:hover{border-color:#2010da}.rc-pagination-simple input{width:40px}.rc-pagination.rc-pagination-disabled{cursor:not-allowed}.rc-pagination.rc-pagination-disabled .rc-pagination-item{background:hsv(0,0,96%);border-color:#d9d9d9;cursor:not-allowed}.rc-pagination.rc-pagination-disabled .rc-pagination-item a{background:#0000;border:none;color:#00000040;cursor:not-allowed}.rc-pagination.rc-pagination-disabled .rc-pagination-item-active{background:#dadade;border-color:#0000}.rc-pagination.rc-pagination-disabled .rc-pagination-item-active a{color:#fff}.rc-pagination.rc-pagination-disabled .rc-pagination-item-link{background:hsv(0,0,96%);border-color:#d9d9d9;color:#00000040;cursor:not-allowed}.rc-pagination.rc-pagination-disabled .rc-pagination-item-link-icon{opacity:0}.rc-pagination.rc-pagination-disabled .rc-pagination-item-ellipsis{opacity:1}@media only screen and (max-width:992px){.rc-pagination-item-after-jump-prev,.rc-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.rc-pagination-options{display:none}}
/*# sourceMappingURL=main.2eb21801.css.map*/