.login-card[data-v-a09484a5]{max-width:380px;margin:80px auto 0;padding:32px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.login-card__title[data-v-a09484a5]{font-size:20px;font-weight:600;color:var(--text);margin:0 0 4px}.login-card__hint[data-v-a09484a5]{font-size:13px;color:var(--text-secondary);margin:0 0 8px}.login-card__form[data-v-a09484a5]{display:flex;flex-direction:column;gap:12px}.login-card__label[data-v-a09484a5]{font-size:12px;font-weight:500;color:var(--text-secondary);letter-spacing:.01em}.login-card__input[data-v-a09484a5]{padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel);font-size:14px;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.login-card__input[data-v-a09484a5]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-card__pw-wrap[data-v-a09484a5]{position:relative}.login-card__pw-wrap .login-card__input[data-v-a09484a5]{width:100%;box-sizing:border-box;padding-right:38px}.login-card__eye[data-v-a09484a5]{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:2px;display:flex;align-items:center;line-height:0}.login-card__eye[data-v-a09484a5]:hover{color:var(--text)}.login-card__error[data-v-a09484a5]{font-size:13px;color:var(--danger);background:var(--danger-soft);padding:8px 12px;border-radius:var(--radius-sm);margin:0}.login-card__submit[data-v-a09484a5]{margin-top:4px;padding:10px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s;font-family:inherit}.login-card__submit[data-v-a09484a5]:hover:not(:disabled){background:var(--accent-hover)}.login-card__submit[data-v-a09484a5]:disabled{background:var(--neutral);cursor:not-allowed}.login-card__link[data-v-a09484a5]{font-size:13px;color:var(--text-secondary);text-decoration:none;text-align:center;transition:color .15s}.login-card__link[data-v-a09484a5]:hover{color:var(--accent)}.login-card__divider[data-v-a09484a5]{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--text-secondary)}.login-card__divider[data-v-a09484a5]:before,.login-card__divider[data-v-a09484a5]:after{content:"";flex:1;height:1px;background:var(--border)}.login-card__oidc[data-v-a09484a5]{display:flex;flex-direction:column;gap:8px}.login-card__oidc-btn[data-v-a09484a5]{padding:10px 16px;background:var(--panel);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;text-align:center;font-family:inherit}.login-card__oidc-btn[data-v-a09484a5]:hover{background:var(--panel-hover, var(--border));border-color:var(--accent)}.feedback-backdrop[data-v-31aad563]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.feedback-modal[data-v-31aad563]{background:#fff;border-radius:10px;width:440px;max-width:calc(100vw - 32px);padding:24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 8px 32px #0000002e}.feedback-modal__header[data-v-31aad563]{display:flex;align-items:center;justify-content:space-between}.feedback-modal__title[data-v-31aad563]{font-size:16px;font-weight:700;color:#111827}.feedback-modal__close[data-v-31aad563]{background:none;border:none;font-size:16px;color:#6b7280;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.feedback-modal__close[data-v-31aad563]:hover{background:#f3f4f6;color:#111827}.feedback-modal__hint[data-v-31aad563]{font-size:13px;color:#6b7280;margin:0}.feedback-modal__textarea[data-v-31aad563]{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;resize:vertical;font-family:inherit;color:#111827;box-sizing:border-box;transition:border-color .15s}.feedback-modal__textarea[data-v-31aad563]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.feedback-modal__textarea[data-v-31aad563]:disabled{opacity:.6}.feedback-modal__error[data-v-31aad563]{font-size:13px;color:#dc2626;margin:0}.feedback-modal__actions[data-v-31aad563]{display:flex;justify-content:flex-end;gap:8px}.feedback-modal__btn[data-v-31aad563]{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .15s,opacity .15s}.feedback-modal__btn[data-v-31aad563]:disabled{opacity:.5;cursor:not-allowed}.feedback-modal__btn--primary[data-v-31aad563]{background:#2563eb;color:#fff}.feedback-modal__btn--primary[data-v-31aad563]:hover:not(:disabled){background:#1d4ed8}.feedback-modal__btn--ghost[data-v-31aad563]{background:transparent;color:#374151;border:1px solid #d1d5db}.feedback-modal__btn--ghost[data-v-31aad563]:hover{background:#f3f4f6}.feedback-modal__success[data-v-31aad563]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0;text-align:center;color:#374151;font-size:14px}.feedback-modal__success-icon[data-v-31aad563]{width:44px;height:44px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}.br-backdrop[data-v-425b55ca]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.br-modal[data-v-425b55ca]{background:#fff;border-radius:12px;width:520px;max-width:100%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.br-header[data-v-425b55ca]{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 0}.br-header__left[data-v-425b55ca]{display:flex;align-items:center;gap:10px}.br-title[data-v-425b55ca]{font-size:16px;font-weight:700;color:#0f172a}.br-back[data-v-425b55ca]{font-size:13px;color:#64748b;background:none;border:none;cursor:pointer;padding:2px 0;font-weight:500}.br-back[data-v-425b55ca]:hover{color:#0f172a}.br-close[data-v-425b55ca]{background:none;border:none;font-size:16px;color:#94a3b8;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.br-close[data-v-425b55ca]:hover{background:#f1f5f9;color:#0f172a}.br-steps[data-v-425b55ca]{display:flex;align-items:center;gap:0;padding:16px 20px 0}.br-step[data-v-425b55ca]{display:flex;align-items:center;gap:7px}.br-step__dot[data-v-425b55ca]{width:22px;height:22px;border-radius:50%;background:#e2e8f0;color:#94a3b8;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.br-step--active .br-step__dot[data-v-425b55ca]{background:#1a6b7a;color:#fff}.br-step--done .br-step__dot[data-v-425b55ca]{background:#dcfce7;color:#15803d}.br-step__label[data-v-425b55ca]{font-size:12px;font-weight:500;color:#94a3b8}.br-step--active .br-step__label[data-v-425b55ca]{color:#1a6b7a}.br-step--done .br-step__label[data-v-425b55ca]{color:#15803d}.br-step__line[data-v-425b55ca]{flex:1;height:1px;background:#e2e8f0;margin:0 10px;transition:background .15s}.br-step__line--done[data-v-425b55ca]{background:#86efac}.br-body[data-v-425b55ca]{padding:20px;display:flex;flex-direction:column;gap:14px}.br-hint[data-v-425b55ca]{font-size:13px;color:#64748b;margin:0}.br-categories[data-v-425b55ca]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.br-cat[data-v-425b55ca]{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px;border:1.5px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;transition:border-color .12s,background .12s,box-shadow .12s}.br-cat[data-v-425b55ca]:hover{border-color:#1a6b7a;background:#f0fdfa;box-shadow:0 2px 8px #1a6b7a1a}.br-cat__icon[data-v-425b55ca]{display:flex;line-height:1;color:#475569}.br-cat:hover .br-cat__icon[data-v-425b55ca]{color:#1a6b7a}.br-cat__label[data-v-425b55ca]{font-size:13px;font-weight:600;color:#0f172a}.br-cat__hint[data-v-425b55ca]{font-size:11px;color:#94a3b8;line-height:1.3}.br-selected-cat[data-v-425b55ca]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f0fdfa;border:1px solid #99f6e4;border-radius:8px}.br-selected-cat__icon[data-v-425b55ca]{font-size:16px}.br-selected-cat__label[data-v-425b55ca]{font-size:13px;font-weight:600;color:#0f766e}.br-details-top[data-v-425b55ca]{display:flex;flex-direction:column;gap:12px;padding-bottom:4px;border-bottom:1px solid #f1f5f9;margin-bottom:4px}.br-sev-row[data-v-425b55ca]{display:flex;flex-direction:column;gap:5px}.br-sev-label[data-v-425b55ca]{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.br-sev-pills[data-v-425b55ca]{display:flex;gap:6px}.br-sev-pill[data-v-425b55ca]{display:flex;align-items:center;gap:6px;padding:5px 13px;border:1.5px solid #e2e8f0;border-radius:20px;background:#fff;font-size:13px;font-weight:500;color:#475569;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.br-sev-pill[data-v-425b55ca]:hover{border-color:#cbd5e1;background:#f8fafc}.br-sev-pill--active[data-v-425b55ca]{border-color:#334155;background:#f8fafc;color:#0f172a;font-weight:600}.br-sev-pill__dot[data-v-425b55ca]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.br-sev-desc[data-v-425b55ca]{font-size:12px;color:#94a3b8;font-style:italic;min-height:16px}.br-field[data-v-425b55ca]{display:flex;flex-direction:column;gap:6px}.br-label[data-v-425b55ca]{font-size:13px;font-weight:600;color:#1e293b}.br-required[data-v-425b55ca]{color:#dc2626;margin-left:2px}.br-optional[data-v-425b55ca]{font-size:11px;font-weight:400;color:#94a3b8;margin-left:4px}.br-textarea[data-v-425b55ca]{width:100%;box-sizing:border-box;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:13px;font-family:inherit;color:#374151;resize:vertical;outline:none;transition:border-color .15s;line-height:1.5}.br-textarea[data-v-425b55ca]:focus{border-color:#1a6b7a}.br-textarea[data-v-425b55ca]:disabled{opacity:.6}.br-desc-meta[data-v-425b55ca]{display:flex;justify-content:space-between;align-items:center;margin-top:-10px}.br-desc-hint[data-v-425b55ca]{font-size:11px;color:#94a3b8}.br-desc-hint--warn[data-v-425b55ca]{color:#d97706;font-weight:500}.br-desc-hint--ok[data-v-425b55ca]{color:#16a34a;font-weight:500}.br-char-count[data-v-425b55ca]{font-size:11px;color:#94a3b8}.br-error[data-v-425b55ca]{font-size:13px;color:#dc2626;background:#fef2f2;padding:8px 12px;border-radius:6px;margin:0}.br-actions[data-v-425b55ca]{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.br-btn[data-v-425b55ca]{padding:9px 18px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:background .15s,opacity .15s;font-family:inherit}.br-btn[data-v-425b55ca]:disabled{opacity:.5;cursor:not-allowed}.br-btn--primary[data-v-425b55ca]{background:#1a6b7a;color:#fff}.br-btn--primary[data-v-425b55ca]:hover:not(:disabled){background:#145f6b}.br-btn--ghost[data-v-425b55ca]{background:transparent;color:#374151;border:1.5px solid #e2e8f0}.br-btn--ghost[data-v-425b55ca]:hover{background:#f8fafc}.br-success[data-v-425b55ca]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 24px;text-align:center}.br-success__icon[data-v-425b55ca]{width:52px;height:52px;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700}.br-success__title[data-v-425b55ca]{font-size:17px;font-weight:700;color:#0f172a;margin:0}.br-success__text[data-v-425b55ca]{font-size:13px;color:#64748b;margin:0;max-width:340px;line-height:1.6}.br-success__link[data-v-425b55ca]{font-size:13px;font-weight:600;color:#1a6b7a;text-decoration:none;padding:6px 14px;border:1px solid #99f6e4;border-radius:6px;background:#f0fdfa;transition:background .12s}.br-success__link[data-v-425b55ca]:hover{background:#ccfbf1}.dashboard-sidebar[data-v-c805a2a0]{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-fg);display:flex;flex-direction:column;padding:16px 12px;gap:16px;height:100%;flex-shrink:0}.dashboard-sidebar__brand[data-v-c805a2a0]{display:flex;align-items:center;gap:8px;padding:4px 8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.dashboard-sidebar__logo[data-v-c805a2a0]{height:28px;width:auto;flex-shrink:0}.dashboard-sidebar__wordmark[data-v-c805a2a0]{font-weight:800;font-size:15px;color:var(--sidebar-fg);letter-spacing:.08em}.dashboard-sidebar__nav[data-v-c805a2a0]{display:flex;flex-direction:column;gap:4px;margin-top:4px}.dashboard-sidebar__tab[data-v-c805a2a0]{display:flex;align-items:center;padding:8px 12px;border-radius:var(--radius-sm);color:var(--sidebar-fg-muted);text-decoration:none;font-size:14px;font-weight:500;transition:background .15s,color .15s}.dashboard-sidebar__tab[data-v-c805a2a0]:hover{background:var(--sidebar-bg-hover);color:var(--sidebar-fg)}.dashboard-sidebar__tab--active[data-v-c805a2a0]{background:var(--sidebar-bg-active);color:#fff}.dashboard-sidebar__feedback[data-v-c805a2a0]{margin:0 8px;padding:7px 10px;border-radius:var(--radius-sm);background:transparent;color:var(--sidebar-fg-muted);border:1px solid rgba(255,255,255,.12);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap;display:flex;align-items:center;gap:7px}.dashboard-sidebar__feedback[data-v-c805a2a0]:hover{background:var(--sidebar-bg-hover);color:#fff;border-color:#ffffff3d}.dashboard-sidebar__feedback--bug[data-v-c805a2a0]:hover{background:#ef444426;color:#fca5a5;border-color:#ef44444d}.dashboard-sidebar__spacer[data-v-c805a2a0]{flex:1;min-height:0}.dashboard-sidebar__nav--secondary[data-v-c805a2a0]{margin-top:0;margin-bottom:4px}.dashboard-sidebar__identity[data-v-c805a2a0]{border-top:1px solid rgba(255,255,255,.08);padding-top:12px;display:flex;flex-direction:column;gap:8px}.dashboard-sidebar__identity-row[data-v-c805a2a0]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px}.dashboard-sidebar__name[data-v-c805a2a0]{font-size:14px;font-weight:600;color:var(--sidebar-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.dashboard-sidebar__role[data-v-c805a2a0]{font-size:12px;font-weight:500;letter-spacing:.01em;padding:2px 8px;border-radius:999px;flex-shrink:0}.dashboard-sidebar__role--admin[data-v-c805a2a0]{background:#dbeafe;color:#1e40af}.dashboard-sidebar__role--annotator[data-v-c805a2a0]{background:#f3f4f6;color:#4b5563}.dashboard-sidebar__logout[data-v-c805a2a0]{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;padding:5px 8px;flex-shrink:0;border-radius:var(--radius-sm);background:transparent;color:var(--sidebar-fg-muted);border:1px solid rgba(255,255,255,.12);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.dashboard-sidebar__logout[data-v-c805a2a0]:hover{background:#ef444426;color:#f87171;border-color:#ef44444d}.toast[data-v-7b1fa4ac]{position:fixed;top:24px;right:24px;z-index:1000;display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius);box-shadow:0 8px 24px #1118271f;font-size:14px;font-weight:500;max-width:420px;line-height:1.4}.toast--success[data-v-7b1fa4ac]{background:var(--success-soft);color:var(--success);border:1px solid var(--success)}.toast--info[data-v-7b1fa4ac]{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent)}.toast--warning[data-v-7b1fa4ac]{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.toast--danger[data-v-7b1fa4ac]{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.toast__message[data-v-7b1fa4ac]{flex:1;min-width:0}.toast__dismiss[data-v-7b1fa4ac]{background:transparent;border:none;cursor:pointer;color:inherit;font-size:14px;font-weight:600;padding:0 4px;line-height:1;opacity:.7;transition:opacity .15s}.toast__dismiss[data-v-7b1fa4ac]:hover{opacity:1}.toast-slide-enter-active[data-v-7b1fa4ac]{transition:transform .2s ease-out,opacity .2s ease-out}.toast-slide-leave-active[data-v-7b1fa4ac]{transition:transform .15s ease-in,opacity .15s ease-in}.toast-slide-enter-from[data-v-7b1fa4ac],.toast-slide-leave-to[data-v-7b1fa4ac]{transform:translate(24px);opacity:0}.dashboard-layout[data-v-c8324643]{display:flex;flex-direction:row;height:100vh;width:100vw;background:var(--bg);overflow:hidden}.dashboard-layout__content[data-v-c8324643]{flex:1;min-width:0;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.dashboard-layout__container[data-v-c8324643]{width:100%;max-width:1200px;margin:0 auto;padding:24px 32px;flex:1}.dashboard-layout__container--full[data-v-c8324643]{max-width:none;padding:0;display:flex;flex-direction:column;min-height:0}.ep-backdrop[data-v-c8324643]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200}.ep-card[data-v-c8324643]{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px;width:100%;max-width:480px;display:flex;flex-direction:column;gap:16px}.ep-card__title[data-v-c8324643]{font-size:18px;font-weight:600;color:var(--text);margin:0}.ep-card__hint[data-v-c8324643]{font-size:14px;color:var(--text-secondary);margin:0}.ep-section[data-v-c8324643]{display:flex;flex-direction:column;gap:8px}.ep-label[data-v-c8324643]{font-size:13px;font-weight:500;color:var(--text-secondary)}.ep-radio-group[data-v-c8324643]{display:flex;gap:20px}.ep-radio[data-v-c8324643]{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text);cursor:pointer}.ep-select[data-v-c8324643]{padding:9px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel);font-size:14px;color:var(--text);font-family:inherit;width:100%;box-sizing:border-box;outline:none}.ep-select[data-v-c8324643]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ep-error[data-v-c8324643]{font-size:13px;color:var(--danger);background:var(--danger-soft);padding:8px 12px;border-radius:var(--radius-sm);margin:0}.ep-actions[data-v-c8324643]{display:flex;align-items:center;gap:12px;margin-top:4px}.ep-btn[data-v-c8324643]{padding:9px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.ep-btn--primary[data-v-c8324643]{background:var(--accent);color:#fff;border:none}.ep-btn--primary[data-v-c8324643]:hover:not(:disabled){background:var(--accent-hover)}.ep-btn--primary[data-v-c8324643]:disabled{background:var(--neutral);cursor:not-allowed}.ep-btn--ghost[data-v-c8324643]{background:none;border:none;color:var(--text-secondary);padding-left:0}.ep-btn--ghost[data-v-c8324643]:hover{color:var(--text)}.dashboard-workflow-layout[data-v-83df3ec9]{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg);overflow:hidden}.viewer-fade-enter-active[data-v-83df3ec9],.viewer-fade-leave-active[data-v-83df3ec9]{transition:opacity .18s ease}.viewer-fade-enter-from[data-v-83df3ec9],.viewer-fade-leave-to[data-v-83df3ec9]{opacity:0}.ml-prediction-panel[data-v-5d5b3ca0]{display:flex;flex-direction:column;gap:12px;color:#ccc;font-size:13px}.ml-prediction-panel__status[data-v-5d5b3ca0]{margin:0;color:#888;font-style:italic;font-size:12px}.ml-prediction-panel__btn[data-v-5d5b3ca0]{padding:8px 12px;background:#1a2a3a;border:1px solid #204060;border-radius:4px;color:#4fb0e5;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.ml-prediction-panel__btn[data-v-5d5b3ca0]:hover{background:#204060}.ml-prediction-panel__opacity[data-v-5d5b3ca0]{display:flex;flex-direction:column;gap:6px}.ml-prediction-panel__opacity-label[data-v-5d5b3ca0]{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#888;display:flex;justify-content:space-between;align-items:center}.ml-prediction-panel__opacity-value[data-v-5d5b3ca0]{color:#ccc;font-weight:600}.ml-prediction-panel__summary[data-v-5d5b3ca0]{display:flex;flex-direction:column;gap:6px}.ml-prediction-panel__count[data-v-5d5b3ca0]{display:flex;align-items:center;gap:6px;font-size:12px}.ml-prediction-panel__dot[data-v-5d5b3ca0]{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}.ml-prediction-panel__dot--benign[data-v-5d5b3ca0]{background:#4fe58a}.ml-prediction-panel__dot--cancer[data-v-5d5b3ca0]{background:#e54f4f}.ml-prediction-panel__dot--exclude[data-v-5d5b3ca0]{background:#e5c84f}.annotation-panel[data-v-46e1e7e3]{display:flex;flex-direction:column;gap:16px;color:#ccc;font-size:13px}.annotation-panel__status-row[data-v-46e1e7e3]{display:flex;align-items:center;gap:8px}.annotation-panel__saving[data-v-46e1e7e3]{font-size:11px;color:#888;font-style:italic}.annotation-panel__status-badge[data-v-46e1e7e3]{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.annotation-panel__status-badge--pending[data-v-46e1e7e3]{background:#2a2a2a;color:#888;border:1px solid #3a3a3a}.annotation-panel__status-badge--draft[data-v-46e1e7e3]{background:#3a3a1a;color:#e5c84f;border:1px solid #6a6020}.annotation-panel__status-badge--submitted[data-v-46e1e7e3]{background:#1a3a2a;color:#4fe58a;border:1px solid #206040}.annotation-panel__section[data-v-46e1e7e3]{display:flex;flex-direction:column;gap:8px}.annotation-panel__section-title[data-v-46e1e7e3]{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#888}.annotation-panel__label-buttons[data-v-46e1e7e3]{display:flex;gap:6px;flex-wrap:wrap}.annotation-panel__label-btn[data-v-46e1e7e3]{flex:1;min-width:60px;padding:6px 4px;border-radius:4px;border:1px solid #444;background:#2a2a3a;color:#bbb;font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.annotation-panel__label-btn[data-v-46e1e7e3]:disabled{opacity:.5;cursor:not-allowed}.annotation-panel__label-btn--benign.annotation-panel__label-btn--active[data-v-46e1e7e3]{background:#1a3a2a;color:#4fe58a;border-color:#206040}.annotation-panel__label-btn--cancer.annotation-panel__label-btn--active[data-v-46e1e7e3]{background:#3a1a1a;color:#e54f4f;border-color:#602020}.annotation-panel__label-btn--exclude.annotation-panel__label-btn--active[data-v-46e1e7e3]{background:#3a3a1a;color:#e5c84f;border-color:#6a6020}.annotation-panel__notes[data-v-46e1e7e3]{width:100%;box-sizing:border-box;background:#2a2a3a;border:1px solid #444;border-radius:4px;color:#ccc;font-size:12px;padding:8px;resize:vertical;font-family:inherit}.annotation-panel__notes[data-v-46e1e7e3]:disabled{opacity:.5;cursor:not-allowed}.annotation-panel__notes[data-v-46e1e7e3]::placeholder{color:#555}.annotation-panel__actions[data-v-46e1e7e3]{display:flex;gap:8px}.annotation-panel__btn[data-v-46e1e7e3]{flex:1;padding:8px 4px;border-radius:4px;border:1px solid #444;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.annotation-panel__btn[data-v-46e1e7e3]:disabled{opacity:.4;cursor:not-allowed}.annotation-panel__btn--save[data-v-46e1e7e3]{background:#1a2a3a;color:#4fb0e5;border-color:#204060}.annotation-panel__btn--save[data-v-46e1e7e3]:not(:disabled):hover{background:#204060}.annotation-panel__btn--submit[data-v-46e1e7e3]{background:#1a3a2a;color:#4fe58a;border-color:#206040}.annotation-panel__btn--submit[data-v-46e1e7e3]:not(:disabled):hover{background:#206040}.annotation-panel__empty[data-v-46e1e7e3]{margin:0;font-size:12px;font-style:italic;color:#888}.annotation-panel__readonly-value[data-v-46e1e7e3]{margin:0;font-size:13px;color:#ddd;font-weight:500}.annotation-panel__readonly-value--muted[data-v-46e1e7e3]{color:#777;font-style:italic;font-weight:400}.annotation-panel__readonly-notes[data-v-46e1e7e3]{margin:0;font-size:12px;color:#ccc;line-height:1.4;white-space:pre-wrap;word-break:break-word;background:#2a2a3a;border:1px solid #3a3a4a;border-radius:4px;padding:8px}.annotation-panel__readonly-chips[data-v-46e1e7e3]{display:flex;flex-wrap:wrap;gap:4px}.annotation-panel__readonly-chip[data-v-46e1e7e3]{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.annotation-panel__readonly-chip--benign[data-v-46e1e7e3]{background:#1a3a2a;color:#4fe58a}.annotation-panel__readonly-chip--cancer[data-v-46e1e7e3]{background:#3a1a1a;color:#e54f4f}.annotation-panel__readonly-chip--exclude[data-v-46e1e7e3]{background:#3a3a1a;color:#e5c84f}:root{--bg: #f7f9fc;--panel: #ffffff;--muted: #6b7280;--border: #e5e7eb;--border-strong: #d1d5db;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #dbeafe;--chip: #f3f4f6;--shadow: 0 6px 20px rgba(0,0,0,.06), 0 2px 6px rgba(0,0,0,.05);--shadow-lg: 0 10px 25px rgba(0,0,0,.1), 0 4px 10px rgba(0,0,0,.05);--shadow-xl: 0 20px 40px rgba(0,0,0,.15);--radius: 12px;--radius-sm: 6px;--radius-lg: 16px;--danger: #ef4444;--danger-soft: #fee2e2;--success: #10b981;--success-soft: #d1fae5;--warning: #f59e0b;--warning-soft: #fef3c7;--info: #3b82f6;--info-soft: #dbeafe;--neutral: #9ca3af;--selected: #eff6ff;--bg-secondary: #f9fafb;--text: #111827;--fg: #111827;--text-secondary: #6b7280;--hover: #f3f4f6;--primary: #3b82f6;--primary-light: #dbeafe;--label-text: #1f2937;--header-height: 64px;--sidebar-bg: #1f2937;--sidebar-bg-active: #374151;--sidebar-bg-hover: #2d3748;--sidebar-fg: #e5e7eb;--sidebar-fg-muted: #9ca3af;--sidebar-width: 240px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%;overflow:hidden}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}#app{display:flex;flex-direction:column}header{position:sticky;top:0;z-index:100;height:var(--header-height);padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:#fff;box-shadow:0 2px 4px #00000008;flex-shrink:0}.brand{display:flex;align-items:center;gap:10px}.brand img{height:48px;width:auto}.brand-text{font-weight:700;color:var(--accent);letter-spacing:.2px}.container{display:grid;grid-template-columns:320px 1fr;flex:1;min-height:0}.container.hide-sidebar{grid-template-columns:1fr}.container.hide-sidebar>aside{display:none}aside{border-right:1px solid var(--border);overflow:auto;background:var(--chip);position:relative;transition:width .2s ease,min-width .2s ease;width:320px;min-width:320px}main{min-height:0;display:flex;flex-direction:column;position:relative}aside.collapsed{width:48px!important;min-width:48px!important;overflow:visible}aside.collapsed .sidebar-content{display:none}.sidebar-content{padding:0}.collapse-toggle{position:absolute;top:12px;right:8px;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:all .15s;color:#6b7280}.collapse-toggle:hover{background:#f3f4f6;color:#111827}aside.collapsed .collapse-toggle{right:auto;left:10px}.mode-grid main{grid-template-rows:1fr}.mode-viewer main{grid-template-rows:1fr}.loading-badge{background:#fbbf24;color:#92400e;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.search{padding:12px}.search input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;color:#111827;outline:none;font-size:.9rem}.search input:focus{border-color:var(--accent)}.tree{padding:8px}.dir{padding:8px 10px;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .15s;margin-bottom:2px;border:1px solid transparent}.dir:hover{background:#eef2f7}.dir.selected{background:var(--selected);border:1px solid var(--accent);font-weight:500}.dir .right{display:flex;align-items:center;gap:8px}.children{padding-left:12px;border-left:1px dashed #cbd5e1;margin-left:6px}.browser-controls{padding:12px 14px;background:#fff;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:center;flex-shrink:0}.slide-search{flex:1;position:relative}.slide-search input{width:100%;padding:8px 12px 8px 36px;border-radius:8px;border:1px solid var(--border);background:#fff;outline:none;font-size:.9rem;color:var(--text)}.slide-search input:focus{border-color:var(--accent)}.slide-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);opacity:.5;pointer-events:none}.view-toggle{display:flex;gap:4px;background:var(--chip);padding:4px;border-radius:8px}.view-btn{padding:6px 10px;border:none;background:transparent;cursor:pointer;border-radius:6px;color:#6b7280;transition:all .15s;display:flex;align-items:center;justify-content:center}.view-btn.active{background:#fff;color:#111827;box-shadow:0 1px 3px #0000001a}.slide-count{color:var(--muted);font-size:.9rem;white-space:nowrap}.pagination{padding:12px 14px;background:#fff;border-top:1px solid var(--border);display:flex;justify-content:center;align-items:center;gap:8px;flex-shrink:0}.page-btn{padding:6px 12px;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;min-width:36px;text-align:center;font-size:.875rem}.page-btn:hover:not(:disabled){background:var(--chip)}.page-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.page-btn:disabled{opacity:.5;cursor:not-allowed}.page-info{color:var(--muted);padding:0 12px;font-size:.875rem}.grid-container{flex:1;overflow-y:auto;background:#fff;position:relative}.grid{padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;position:relative}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;overflow:hidden;box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s;position:relative}.card:hover{transform:translateY(-1px);box-shadow:0 10px 28px #00000014}.card.loading .thumb{background:#f3f4f6}.card.loading .thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.thumb{width:100%;height:180px;background:#f1f5f9;display:grid;place-items:center;position:relative;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:contain;background:#fff}.thumb .fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#94a3b8}.meta{padding:10px 12px;font-size:.9rem;color:#374151}.meta-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.meta-row:last-child{margin-bottom:0}.filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;flex:1;min-width:0;margin-right:6px}.filesize{color:var(--muted);font-size:.85rem}.ext-pill{font-size:.72rem;background:#eef2ff;color:#1e3a8a;padding:2px 8px;border-radius:999px;border:1px solid #c7d2fe;flex-shrink:0}.grid-status-badge{position:absolute;top:8px;right:8px;padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:600;z-index:10;display:flex;align-items:center;gap:4px;background:#ffffffe6;box-shadow:0 1px 2px #0000001a}.grid-status-badge.submitted{background:#d1fae5;color:#065f46;border:1px solid #34d399}.grid-status-badge.draft{background:#fef3c7;color:#92400e;border:1px solid #f59e0b}.grid-status-badge.compact{position:static;padding:2px 6px;font-size:.75em}.ml-badge{position:absolute;bottom:8px;right:8px;background:#10b981;color:#fff;font-size:.65rem;font-weight:600;padding:2px 6px;border-radius:4px;display:flex;align-items:center;z-index:5;box-shadow:0 1px 2px #00000026}.list-item .ml-badge{position:static;margin-left:8px}.list-container{flex:1;overflow-y:auto;background:#fff}.list{padding:8px}.list-item{display:flex;align-items:center;padding:10px 14px;border:1px solid var(--border);background:#fff;margin-bottom:4px;border-radius:8px;cursor:pointer;transition:all .15s}.list-item:hover{background:#f0f2f6;transform:translate(2px)}.list-thumb{width:60px;height:45px;background:#f1f5f9;border-radius:6px;margin-right:14px;overflow:hidden;flex-shrink:0;position:relative;display:grid;place-items:center}.list-thumb img{width:100%;height:100%;object-fit:cover}.list-thumb .loading-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#ffffffe6;font-size:1.2rem;color:var(--muted)}.list-info{flex:1;min-width:0}.list-name{font-weight:500;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-meta{display:flex;gap:12px;margin-top:4px;font-size:.85rem;color:var(--muted);align-items:center;flex-wrap:wrap}.list-ext{background:#eef2ff;color:#1e3a8a;padding:2px 6px;border-radius:4px;font-size:.75rem}.empty{color:var(--muted);display:flex;align-items:center;justify-content:center;height:100%;flex-direction:column;gap:12px;padding:40px;text-align:center}#viewer{position:relative;background:#fff;min-height:0;display:grid;grid-template-columns:1fr 320px;flex:1;outline:none}#viewer.no-sidebar{grid-template-columns:1fr}#osd-container{position:relative;background:#fff}#osd{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff}canvas.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}canvas.grid-overlay{z-index:9}canvas.prediction-overlay{z-index:8}.back-btn{position:absolute;top:56px;left:16px;z-index:20;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:#fffffffa;color:#111827;cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow);transition:all .2s}.back-btn:hover{background:#f3f4f6;transform:scale(1.05)}.toggle-sidebar{position:absolute;top:56px;right:16px;z-index:20;width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:#fffffffa;cursor:pointer;display:grid;place-items:center}.slide-nav{position:absolute;top:0;left:0;right:0;z-index:15;display:flex;align-items:center;justify-content:center;gap:12px;background:#fffffff2;border-bottom:1px solid var(--border);padding:8px 16px;box-shadow:0 1px 3px #0000001a}.slide-nav-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#374151;font-size:.85rem;cursor:pointer;transition:all .15s}.slide-nav-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.slide-nav-btn:disabled{opacity:.4;cursor:not-allowed}.slide-nav-info{font-size:.9rem;color:#374151;display:flex;align-items:center;gap:8px}.slide-nav-name{max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.slide-nav-count{color:var(--muted);font-size:.8rem}.sidebar{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px;width:320px}.sidebar h3{margin:0;font-size:1.1rem;color:#111827}.info-section{background:var(--chip);border-radius:10px;padding:14px}.section-header{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0;margin-bottom:8px}.section-header:hover{opacity:.8}.section-header h3{margin:0;flex:1}.section-chevron{width:16px;height:16px;transition:transform .2s ease;flex-shrink:0}.section-chevron.collapsed{transform:rotate(-90deg)}.section-content{overflow:hidden;transition:max-height .2s ease}.info-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:none}.info-label{color:var(--label-text);font-size:.9rem}.info-value{color:#111827;font-weight:500;font-size:.9rem;text-align:right;max-width:60%;word-break:break-word}.label-image{width:100%;border-radius:8px;margin-top:10px;cursor:pointer}.toggle-switch{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#e5e7eb;transition:.2s;border-radius:200px}.toggle-slider:before{position:absolute;content:"";height:14px;width:14px;left:2px;bottom:2px;background-color:#fff;transition:.2s;border-radius:50%;box-shadow:0 1px 2px #0003}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(14px)}.warnline{display:flex;align-items:flex-start;gap:8px;margin-top:6px;background:#fef3c7;color:#92400e;border:1px solid #f59e0b;border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.3;max-width:100%;word-wrap:break-word}.warnline svg{flex:0 0 auto;margin-top:1px}.warntext{white-space:normal}.label-buttons{display:flex;flex-direction:column;gap:8px}.label-btn{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .15s ease;position:relative;border:2px solid #e2e8f0;background:#fff;color:#374151}.label-btn:hover{background:#f3f4f6;border-color:#d1d5db}.label-btn.benign,.label-btn.btn-benign.active{border-color:#22c55e;background:#22c55e;color:#fff}.label-btn.benign:hover,.label-btn.btn-benign.active:hover{background:#16a34a;border-color:#16a34a}.label-btn.cancer,.label-btn.btn-cancer.active{border-color:#dc2626;background:#dc2626;color:#fff}.label-btn.cancer:hover,.label-btn.btn-cancer.active:hover{background:#b91c1c;border-color:#b91c1c}.label-btn.exclude,.label-btn.btn-exclude.active{border-color:#6b7280;background:#6b7280;color:#fff}.label-btn.exclude:hover,.label-btn.btn-exclude.active:hover{background:#4b5563;border-color:#4b5563}.key-active{outline:2px solid var(--accent);outline-offset:2px}.label-btn .shortcut-hint{margin-left:auto;font-size:.75rem;font-weight:600;padding:2px 6px;border-radius:4px;background:#00000014;color:#6b7280;font-family:monospace}.label-btn.active .shortcut-hint,.label-btn.benign .shortcut-hint,.label-btn.cancer .shortcut-hint,.label-btn.exclude .shortcut-hint{background:#ffffff40;color:#ffffffe6}input[type=range]{height:6px;border-radius:3px;background:linear-gradient(to right,#3b82f6 0%,#3b82f6 var(--slider-fill, 50%),#e2e8f0 var(--slider-fill, 50%),#e2e8f0 100%);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;accent-color:#3b82f6;width:100%}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#3b82f6;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0003}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#3b82f6;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px #0003}input[type=range]::-moz-range-progress{background:#3b82f6;height:6px;border-radius:3px}textarea{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:.9rem;color:var(--text);resize:vertical;outline:none;transition:border-color .15s;font-family:inherit}textarea:focus{border-color:var(--accent)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:8px;background:var(--primary);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:8px;background:var(--danger);color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:#fff;color:#374151;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-secondary:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.chart-container{padding:16px 8px;background:#f9fafb;border-radius:8px}.chart-bar-group{display:flex;align-items:stretch;justify-content:space-around;height:120px;gap:8px}.chart-bar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:0}.chart-bar-wrapper{width:100%;flex:1;display:flex;align-items:flex-end;justify-content:center;min-height:0}.chart-bar{width:60%;min-height:4px;border-radius:4px 4px 0 0;transition:all .3s ease;position:relative;--bar-height: 4px;height:var(--bar-height);max-height:100%;box-sizing:border-box;background:#38bdf8}.chart-bar:hover{opacity:.8;transform:scaleY(1.02)}.chart-label{font-size:.75rem;color:#6b7280;text-align:center;font-weight:500;line-height:1.2}.admin-panel{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #5a67d8;padding:12px 20px;z-index:30}.admin-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.analytics-dropdown{background:#fff;color:#111827;padding:6px 12px;border-radius:6px;border:2px solid transparent;font-weight:500;font-size:.9rem;cursor:pointer;min-width:300px;transition:all .2s}.analytics-dropdown:hover:not(:disabled){border-color:#e2e8f0}.analytics-dropdown:focus{outline:none;border-color:#667eea}.analytics-dropdown:disabled{opacity:.6;cursor:not-allowed}.load-btn{background:#fff;color:#5a67d8;padding:6px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:500;transition:all .2s}.load-btn:hover:not(:disabled){background:#f7fafc;transform:translateY(-1px)}.load-btn:disabled{opacity:.5;cursor:not-allowed}.replay-btn{background:#fff;color:#5a67d8;padding:6px 16px;border-radius:6px;border:none;cursor:pointer;font-weight:500;transition:all .2s}.replay-btn:hover:not(:disabled){background:#f7fafc;transform:translateY(-1px)}.replay-btn:disabled{opacity:.5;cursor:not-allowed}.replay-scrubber{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:20px;background:transparent;outline:none;cursor:pointer;padding:0;margin:0}.replay-scrubber::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(90deg,#38bdf8 var(--fill, 0%),rgba(255,255,255,.25) var(--fill, 0%))}.replay-scrubber::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #38bdf8;cursor:pointer;box-shadow:0 1px 4px #0006;transition:transform .15s ease;margin-top:-4px}.replay-scrubber::-moz-range-track{height:8px;border-radius:4px;background:#ffffff40}.replay-scrubber::-moz-range-progress{height:8px;border-radius:4px;background:#38bdf8}.replay-scrubber::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #38bdf8;cursor:pointer;box-shadow:0 1px 4px #0006}.replay-scrubber:hover::-webkit-slider-thumb,.replay-scrubber:active::-webkit-slider-thumb{transform:scale(1.25)}.brush-indicator{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.8rem;font-weight:600;background:#111827;color:#fff;box-shadow:var(--shadow)}.brush-indicator.benign{background:#22c55e}.brush-indicator.cancer{background:#dc2626}.brush-indicator.exclude{background:#6b7280}.mode-badge{background:#111827;color:#fff;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600}.status-badge{padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.draft{background:#fef3c7;color:#92400e}.status-badge.submitted{background:#dcfce7;color:#166534}.status-badge.none{background:#f3f4f6;color:#6b7280}.debug-panel{position:fixed;bottom:10px;right:10px;background:#000c;color:#fff;padding:8px 12px;border-radius:8px;font-size:.75rem;font-family:monospace;z-index:1000;display:none}.debug-panel.show{display:block}#viewer:-webkit-full-screen,#viewer:fullscreen{display:grid;grid-template-columns:1fr 320px;width:100vw;height:100vh}#viewer:-webkit-full-screen.no-sidebar,#viewer:fullscreen.no-sidebar{grid-template-columns:1fr}.section-divider{height:1px;background:var(--border);margin:10px 0}.section-group{margin-bottom:12px}.shortcuts-scroll{max-height:400px;overflow-y:auto}.shortcut-category{margin-bottom:10px}.shortcut-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:.82rem}.shortcut-action{color:var(--text)}.shortcut-keys{font-family:monospace;font-size:.78rem;color:var(--muted);background:var(--chip);padding:2px 6px;border-radius:4px;border:1px solid var(--border);white-space:nowrap}.status-indicator{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;background:var(--chip);border:1px solid var(--border)}.status-indicator.submitted{background:#dcfce7;border-color:#86efac}.status-indicator.draft{background:#fef3c7;border-color:#fcd34d}.status-indicator.none{background:var(--chip);border-color:var(--border)}.status-icon{flex-shrink:0}.status-text{font-size:.85rem;font-weight:600}.action-buttons-group{display:flex;gap:8px;margin-bottom:12px}.action-btn{flex:1;padding:8px 12px;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:6px}.action-btn.btn-primary{background:var(--primary);color:#fff;border:none}.action-btn.btn-primary:hover:not(:disabled){background:#2563eb}.action-btn.btn-primary:disabled{opacity:.4;cursor:not-allowed}.action-btn.btn-secondary{background:#fff;color:#374151;border:1px solid var(--border)}.action-btn.btn-secondary:hover:not(:disabled){background:var(--chip);border-color:#9ca3af}.action-btn.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.selection-info{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-bottom:10px;font-size:.85rem;color:#1e40af}.clear-btn{font-size:.78rem;padding:2px 8px;border:1px solid #93c5fd;border-radius:4px;background:#fff;color:#1e40af;cursor:pointer;transition:all .15s}.clear-btn:hover{background:#dbeafe}.labeling-sidebar{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:16px;width:320px;flex-shrink:0}.labeling-sidebar h3{margin:0;font-size:1.1rem;color:#111827}.labeling-sidebar h4{margin:0;font-size:.95rem;color:#111827;font-weight:600}.labeling-sidebar .info-section{background:var(--chip);border-radius:10px;padding:14px}.labeling-sidebar .section-header{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0;margin-bottom:8px;background:transparent}.labeling-sidebar .section-header:hover{opacity:.8}.labeling-sidebar .section-header h3{margin:0;flex:1}.labeling-sidebar .section-chevron{width:16px;height:16px;transition:transform .2s ease;flex-shrink:0}.labeling-sidebar .section-chevron.collapsed{transform:rotate(-90deg)}.labeling-sidebar .section-content{overflow:hidden;padding:0;background:transparent}.labeling-sidebar .section-group{margin-bottom:4px}.labeling-sidebar .info-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}.labeling-sidebar .info-row:last-child{border-bottom:none}.labeling-sidebar .info-label{color:var(--label-text);font-size:.9rem}.labeling-sidebar .info-value{color:#111827;font-weight:500;font-size:.9rem;text-align:right;max-width:60%;word-break:break-word}
