/* Workbench shell. Existing modules retain their business markup and permissions. */
body.workbench { --sidebar:204px; --ink:#19333f; --muted:#71818a; --line:#e0e7eb; --paper:#f2f6f8; --navy:#1b3d4c; --orange:#cc7835; --orange-dark:#aa6026; background:var(--paper); font-size:14px; }
.workbench [hidden] { display:none !important; }
.workbench button:focus-visible,.workbench summary:focus-visible,.workbench a:focus-visible { outline:2px solid #bc733f; outline-offset:3px; }
.workbench button:disabled { opacity:.45; cursor:not-allowed; transform:none; }
.workbench .site-header { position:fixed; inset:0 0 auto; height:72px; padding:0 28px; gap:26px; background:#fff; color:var(--ink); border-bottom:1px solid var(--line); box-shadow:none; }
.workbench .brand { min-width:0; gap:12px; }
.workbench .brand strong { font-size:16px; letter-spacing:0; font-weight:600; }
.workbench .brand small { font-size:9px; color:var(--muted); letter-spacing:.12em; }
.workbench .brand-mark { display:grid; }
.workbench .primary-nav { margin-left:38px; }
.workbench .primary-nav a { color:var(--muted); padding:0 16px; font-size:13px; }
.workbench .primary-nav a:hover,.workbench .primary-nav a.active { color:var(--ink); }
.workbench .primary-nav a.active:after { background:var(--orange); height:2px; }
.workbench .account-actions { margin-left:auto; }
.workbench .account-actions button { color:var(--ink); border:1px solid var(--line); border-radius:7px; font-weight:500; background:#fff; }
.workbench .account-actions button:hover { background:#f1f5f7; border-color:#b1c3cc; }
.workbench .account-actions .register-button { background:var(--navy); color:#fff; border-color:var(--navy); }
.workbench-sidebar { position:fixed; left:0; top:72px; bottom:0; width:var(--sidebar); padding:26px 14px 18px; background:#fff; border-right:1px solid var(--line); z-index:10; display:flex; flex-direction:column; overflow:auto; }
.nav-section-label { margin:0 12px 10px; color:#8a989f; font-size:11px; letter-spacing:.04em; }
#sidebar-data-operations { flex-shrink:0; }
.scene-browser-chevron { margin-left:auto; width:6px; height:6px; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); opacity:.65; }
#scene-browser-toggle[aria-expanded="true"] .scene-browser-chevron { transform:rotate(225deg); }
.scene-browser-tree { min-width:0; margin:3px 0 0 17px; padding-left:8px; border-left:1px solid var(--line); }
.workbench .scene-browser-tree .scene-domain-tabs { display:grid; gap:3px; margin:0; padding:0; border:0; overflow:visible; }
.scene-browser-tree .scene-tree-branch { min-width:0; }
.scene-browser-tree .scene-domain-tabs button { width:100%; min-height:33px; padding:7px 9px; gap:5px; border:0; border-radius:5px; background:transparent; color:#617581; font-size:12px; line-height:1.55; text-align:left; white-space:normal; overflow-wrap:anywhere; }
.scene-browser-tree .scene-domain-tabs button:hover { background:#f3f7f9; color:var(--ink); }
.scene-browser-tree .scene-domain-tabs button[aria-pressed="true"] { background:#eaf2f6; color:#214e62; font-weight:500; box-shadow:none; }
.scene-browser-tree .scene-tree-branch>button[aria-expanded]:after,.scene-browser-tree .scene-tree-subbranch>button[aria-expanded]:after { content:""; margin-left:auto; width:5px; height:5px; flex-shrink:0; border-right:1px solid currentColor; border-bottom:1px solid currentColor; transform:rotate(45deg); opacity:.6; }
.scene-browser-tree .scene-tree-branch>button[aria-expanded="true"]:after,.scene-browser-tree .scene-tree-subbranch>button[aria-expanded="true"]:after { transform:rotate(225deg); }
.scene-browser-tree .scene-tree-children { margin:2px 0 4px 8px; padding-left:7px; border-left:1px solid var(--line); }
.scene-browser-tree .scene-tree-children:empty { display:none; }
.workbench .scene-browser-tree .scene-subcategory-nav,.workbench .scene-browser-tree .scene-tertiary-nav { display:grid; gap:2px; margin:0; padding:0; }
.scene-browser-tree .scene-subcategory-nav:before,.scene-browser-tree .scene-tertiary-nav:before { display:none; }
.scene-browser-tree .scene-subcategory-nav button { min-height:31px; padding:6px 7px; font-size:11px; }
.workbench .scene-browser-tree .scene-tertiary-nav { margin:2px 0 4px 7px; padding-left:7px; border-left:1px solid var(--line); }
.scene-browser-tree .scene-tertiary-nav button { min-height:29px; padding:5px 6px; font-size:11px; font-weight:400; }
.scene-browser-tree .scene-tertiary-nav button b { font-size:9px; color:#748a96; }
.scene-browser-tree .scene-tertiary-nav button[aria-pressed="true"] b { color:inherit; }
.scene-browser-tree .scene-tertiary-nav p { padding:5px 6px; font-size:11px; }
.workbench-nav { display:grid; gap:5px; margin-bottom:29px; }
.workbench-nav button { display:flex; align-items:center; gap:11px; width:100%; min-height:43px; padding:10px 13px; text-align:left; border:0; border-radius:7px; background:transparent; color:#4b626e; font-size:13px; white-space:nowrap; }
.workbench-nav button svg { width:17px; height:17px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.workbench-nav button:hover { background:#f4f7f9; }
.workbench-nav button[aria-current="page"] { background:#eaf1f5; color:#b66a2e; font-weight:600; }
.nav-count { margin-left:auto; color:#6b818b; font-size:11px; }
.workbench-nav.sidebar-account { margin-top:auto; margin-bottom:12px; padding-top:12px; border-top:1px solid var(--line); }
.sidebar-footer { border-top:1px solid var(--line); padding:16px 12px 0; font-size:10px; line-height:1.8; color:#89979e; }
.workbench main { max-width:1640px; min-height:calc(100dvh - 66px); margin:72px 0 0 var(--sidebar); padding:28px clamp(20px,2.4vw,44px) 48px; }
.workbench[data-page="library"] .library-intro { gap:18px; margin:0 0 22px; align-items:center; flex-direction:row; }
.workbench .library-intro h1 { margin:4px 0 5px; font-size:25px; font-weight:600; line-height:1.5; }
.workbench[data-workspace="scenes"] #view-eyebrow,.workbench[data-workspace="scenes"] #view-description,.workbench[data-workspace="risk"] #view-eyebrow,.workbench[data-workspace="risk"] #view-description { display:none; }
.workbench .library-intro>div>p:last-child { font-size:12px; max-width:700px; }
.workbench .eyebrow { color:#8a9aa2; font:11px/1.5 "Microsoft YaHei",sans-serif; letter-spacing:0; }
.workbench-import { position:relative; flex-shrink:0; z-index:6; }
.workbench-import summary { list-style:none; cursor:pointer; white-space:nowrap; }
.workbench-import summary::-webkit-details-marker { display:none; }
.workbench-import summary span { font-size:17px; margin-right:4px; }
.import-menu { position:absolute; top:calc(100% + 8px); right:0; display:grid; padding:6px; width:180px; background:#fff; border:1px solid var(--line); box-shadow:0 10px 30px #19333f18; border-radius:9px; }
.import-menu button { text-align:left; border:0; background:#fff; color:var(--ink); padding:11px 13px; border-radius:5px; font-size:13px; }
.import-menu button:hover { background:#edf3f6; }
.workbench .primary-button,.workbench .secondary-button,.workbench .danger-button { border-radius:6px; padding:9px 14px; font-size:12px; font-weight:500; }
.workbench .primary-button { background:var(--navy); color:#fff; }
.workbench .primary-button:hover { background:#2c5264; transform:none; }
.workbench .secondary-button { background:#fff; border:1px solid var(--line); color:#47616f; }
.workbench .secondary-button:hover { border-color:#a8beca; background:#f8fafb; }
.workbench .danger-button { border-color:#ebd4d1; color:#a8554d; }
.workbench .danger-button:hover { background:#fff1ef; color:#94423b; }
.workbench .scene-domain-tabs { display:flex; gap:7px; border-bottom:1px solid var(--line); margin:0 0 20px; padding:0 0 11px; overflow-x:auto; }
.scene-domain-tabs button { border:0; border-radius:6px; padding:8px 12px; background:transparent; color:#778992; font-size:12px; white-space:nowrap; }
.scene-domain-tabs button:hover { color:var(--ink); background:#e7eef2; }
.scene-domain-tabs button[aria-pressed="true"] { background:#fff; color:var(--ink); box-shadow:0 1px 3px #173c4d0b; }
.workbench .scene-subcategory-nav { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-5px 0 22px; }
.scene-subcategory-nav:before { content:"场景分类"; margin-right:5px; color:var(--muted); font-size:11px; }
.scene-subcategory-nav button { padding:7px 12px; border:1px solid var(--line); border-radius:6px; background:#fff; color:#627b88; font-size:12px; line-height:1.5; }
.scene-subcategory-nav button:hover { border-color:#b0c5cf; color:var(--ink); }
.scene-subcategory-nav button[aria-pressed="true"] { color:#9f5c2c; background:#fff5eb; border-color:#deb992; }
.workbench .scene-tertiary-nav { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:-8px 0 22px; }
.scene-tertiary-nav:before { content:"具体类型"; margin-right:5px; color:var(--muted); font-size:11px; }
.scene-tertiary-nav button { display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid var(--line); border-radius:5px; background:#fff; color:#627b88; font-size:12px; line-height:1.5; }
.scene-tertiary-nav button b { font-size:10px; font-weight:600; }
.scene-tertiary-nav button:hover { border-color:#b0c5cf; color:var(--ink); }
.scene-tertiary-nav button[aria-pressed="true"] { background:#e6f0f4; border-color:#98b8c9; color:#234d60; }
.scene-tertiary-nav p { margin:0; color:var(--muted); font-size:12px; }
.workbench[data-workspace="risk"] #risk-workspace .risk-categories { display:none; }
.workbench-nav .sidebar-import { width:100%; }
.sidebar-import summary { display:flex; align-items:center; gap:9px; min-height:43px; padding:10px 13px; border-radius:7px; background:transparent; color:#4b626e; font-size:13px; }
.sidebar-import summary:hover { background:#f4f7f9; }
.sidebar-import summary>span { width:17px; margin:0; color:#71818a; text-align:center; }
.sidebar-import summary:after { content:"⌄"; margin-left:auto; color:#8a9aa2; }
.sidebar-import[open]>summary { background:#eaf1f5; }
.sidebar-import[open]>summary:after { content:"⌃"; }
.sidebar-import .import-menu { position:static; width:auto; margin:5px 0 6px 21px; padding:2px 0; border:0; border-left:1px solid var(--line); border-radius:0; box-shadow:none; }
.sidebar-import .import-menu button { min-height:36px; padding:8px 13px; font-size:12px; }
.user-permissions-dialog { width:min(1040px,calc(100% - 32px)); max-height:90dvh; padding:26px; border:1px solid #dbe5eb; border-radius:12px; background:#fff; color:var(--ink); overflow:auto; }
.permissions-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.permissions-dialog-header h2 { margin:0 0 7px; font-size:22px; font-weight:600; }
.permissions-dialog-header p { margin:0; font-size:12px; color:var(--muted); line-height:1.8; }
.permissions-toolbar { display:flex; align-items:flex-end; gap:10px; margin:20px 0 10px; }
.permissions-search { flex:1; display:grid; gap:7px; font-size:12px; color:var(--muted); }
.permissions-search input,.permissions-scope select { width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); font-size:13px; }
.permissions-status { min-height:22px; margin:8px 0 16px; color:var(--muted); font-size:12px; }
.permissions-status.error { color:#ad4c43; }
.permissions-status.success { color:#477b69; }
.permissions-layout { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr); gap:22px; align-items:start; }
.permissions-user-list { display:grid; gap:8px; max-height:56dvh; overflow:auto; padding-right:5px; }
.permissions-user-row { display:grid; gap:5px; width:100%; padding:14px; border:1px solid var(--line); border-radius:7px; background:#fff; text-align:left; color:var(--ink); }
.permissions-user-row small { color:var(--muted); font-size:11px; }
.permissions-user-row[aria-pressed="true"] { border-color:#95b6c8; background:#edf4f7; }
.permissions-editor { min-width:0; padding:20px; border:1px solid var(--line); border-radius:9px; background:#f8fafb; }
.permissions-editor h3 { margin:0 0 9px; font-size:17px; }
.permissions-editor>p { font-size:12px; color:var(--muted); line-height:1.8; }
.permissions-options { display:grid; gap:12px; margin:18px 0; padding:0; border:0; }
.permissions-options legend { margin-bottom:12px; font-size:13px; font-weight:500; }
.permissions-options label { display:grid; grid-template-columns:17px minmax(0,1fr); column-gap:10px; align-items:start; padding:12px; border:1px solid var(--line); border-radius:6px; background:#fff; font-size:13px; }
.permissions-options input { margin:3px 0 0; accent-color:var(--navy); }
.permissions-options strong { font-weight:500; }
.permissions-options small { display:block; grid-column:2; margin-top:5px; font-size:11px; line-height:1.7; color:var(--muted); }
.permissions-scope { display:grid; gap:7px; margin-top:16px; font-size:12px; color:var(--muted); }
.permissions-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.permissions-pager { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; font-size:12px; color:var(--muted); }
@media(max-width:650px) { .user-permissions-dialog { padding:18px; } .permissions-layout { grid-template-columns:minmax(0,1fr); } .permissions-user-list { max-height:190px; } .permissions-dialog-header h2 { font-size:19px; } .permissions-editor { padding:16px; } }
.workbench #upload-dialog { width:min(720px,calc(100% - 30px)); }
.workbench #upload-dialog .upload-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
.workbench #upload-dialog .drop-zone { min-height:230px; }
.workbench #upload-dialog .upload-fields textarea { min-height:86px; }
.workbench #batch-dialog .batch-fields { grid-template-columns:minmax(0,1fr); }
.workbench .workspace { display:block; position:relative; border:0; box-shadow:none; background:transparent; min-height:0; }
.workbench .workspace.filters-open { display:grid; grid-template-columns:248px minmax(0,1fr); gap:22px; }
.workbench .filter-panel { padding:17px; border:1px solid var(--line); background:#fff; border-radius:9px; align-self:start; position:sticky; top:92px; max-height:calc(100dvh - 116px); overflow:auto; }
.workbench .panel-heading h2 { font-size:14px; }
.workbench .panel-note { font-size:11px; padding:11px 0; }
.workbench .scene-domain-list { margin-top:14px; border:0; gap:8px; }
.workbench .scene-domain { border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.workbench .scene-domain-toggle { font-size:12px; min-height:36px; color:#516b78; background:#f6f9fa; padding:9px 10px; }
.workbench .scene-domain-toggle.active { background:#eaf1f5; color:var(--ink); box-shadow:none; }
.workbench .scene-domain-toggle:hover { background:#eaf1f5; }
.workbench .scene-domain-toggle i { color:#9cadb5; }
.workbench .scene-domain-body { padding:0 8px 8px; background:#fff; }
.workbench .scene-domain-body .tree-dimensions { margin-left:4px; padding-left:9px; }
.workbench .scene-domain-body .filter-group:before { left:-9px; width:7px; }
.workbench .scene-domain-body .filter-chip { font-size:11px; min-height:30px; border-color:#e3e9ec; border-radius:4px; }
.workbench .dimension-toggle { font-size:12px; }
.workbench .filter-panel .filter-options:not([hidden]) { display:grid; grid-template-columns:minmax(0,1fr); gap:7px; }
.workbench .filter-panel .filter-chip { width:100%; text-align:left; }
.workbench .result-panel { padding:0; min-width:0; }
.workbench .search-row { margin:0 0 17px; display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:14px; }
.workbench .search-box { height:40px; flex:0 1 430px; border-color:var(--line); border-radius:7px; padding:0 13px; }
.workbench .search-box input { font-size:12px; }
.workbench .search-box>span { width:12px; height:12px; border-width:1px; opacity:.65; }
.workbench .search-box>span:after { height:1px; }
.workbench .library-actions { display:flex; gap:9px; flex-shrink:0; }
.workbench .view-actions { border:1px solid var(--line); border-radius:6px; overflow:hidden; display:flex; }
.workbench .view-button { width:35px; height:35px; }
.workbench .view-button.active { background:#e8f0f4; color:var(--navy); }
.workbench .result-toolbar { border:0; padding:0; margin-bottom:10px; }
.workbench .result-toolbar h2 { font-size:12px; color:#687f8a; font-weight:500; }
.workbench .result-count { margin-left:0; font-size:11px; color:#81939d; }
.workbench .annotation-note { color:#8b9aa2; font-size:11px; }
.workbench .review-tabs { display:flex; gap:8px; margin:0 0 18px; border-bottom:1px solid var(--line); }
.workbench .review-tabs button { padding:9px 11px; font-size:12px; font-weight:400; border-bottom-width:2px; }
.workbench .review-tabs button[aria-selected="true"] { font-weight:600; border-color:var(--orange); }
.workbench .active-filters { min-height:0; padding:0; gap:6px; }
.workbench .active-filters:not(:empty) { padding:0 0 15px; }
.workbench .active-filter,.workbench .clear-filters { border-radius:4px; }
.workbench .scene-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.workbench .scene-card { border:1px solid #dde6eb; border-radius:10px; overflow:hidden; box-shadow:0 1px 2px #18374404; }
.workbench .scene-card:hover { border-color:#a9c0cd; box-shadow:0 6px 18px #173c4d0c; transform:translateY(-2px); }
.workbench .scene-image { aspect-ratio:16/10; }
.workbench .review-badge { top:10px; left:10px; background:#fffffff0; color:#7a6b53; border-radius:4px; font-size:10px; padding:3px 7px; }
.workbench .review-badge.confirmed { background:#fffffff0; color:#347863; }
.workbench .scene-body { padding:13px 15px 16px; }
.workbench .scene-code { display:none; }
.workbench .scene-card h3 { margin:0 0 9px; font-size:13px; font-weight:500; }
.workbench .scene-meta { flex-direction:column; gap:2px; font-size:10px; color:#8b9ca4; }
.workbench .tag-row { margin-top:10px; gap:5px; }
.workbench .tag { border-radius:3px; padding:2px 6px; font-size:10px; font-weight:400; background:#edf3f6; color:#687e89; }
.workbench .tag b { color:#3b5d6e; font-size:9px; }
.workbench .scene-grid.list { grid-template-columns:1fr; }
.workbench .scene-grid.list .scene-card { grid-template-columns:220px minmax(0,1fr); }
.workbench .scene-grid.list .scene-meta { flex-direction:row; flex-wrap:wrap; gap:12px; }
.workbench .scene-grid.list .scene-image { height:100%; }
.workbench .site-footer { margin-left:var(--sidebar); padding:20px 30px; background:transparent; color:#95a3ab; border:0; font-size:10px; display:flex; justify-content:space-between; gap:20px; }
.workbench .taxonomy-reference { margin:0; background:transparent; padding:0; border:0; }
.workbench .reference-heading { justify-content:space-between; margin:0 0 22px; }
.workbench .reference-heading h2 { font-size:16px; }
.workbench .taxonomy-card { background:#fff; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.workbench .taxonomy-card h3 { font-size:14px; }
.workbench .workflow-strip { display:flex; align-items:center; flex-wrap:wrap; gap:18px; color:#889aa4; background:#fff; border:1px solid var(--line); border-radius:9px; padding:18px 22px; margin:4px 0 32px; font-size:12px; }
.workflow-strip i { color:#b6c2c8; font-style:normal; }
.workflow-strip strong { color:#b26c35; font-weight:500; }
#review-workspace h2 { font-size:17px; font-weight:500; margin:0 0 6px; }
.workspace-description { font-size:12px; color:#8396a1; margin:5px 0 20px; }
.review-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-width:950px; gap:22px; }
.review-source-card { padding:28px; background:#fff; border:1px solid var(--line); border-radius:10px; }
.source-symbol { display:grid; place-items:center; width:43px; height:43px; background:#edf4f7; border-radius:9px; color:#628598; font-size:24px; }
.review-source-card h3 { margin:17px 0 7px; font-size:17px; font-weight:500; }
.review-source-card p { color:#8b9ba3; min-height:44px; margin:0 0 22px; font-size:12px; }
.review-source-card button { margin-right:5px; }
/* A nonmodal native dialog provides the video workspace and keeps native close cleanup. */
.workbench #video-dialog { position:fixed; inset:72px 0 0 var(--sidebar); width:auto; height:auto; max-width:none; max-height:none; margin:0; border:0; padding:28px clamp(20px,2.4vw,44px) 50px; background:var(--paper); color:var(--ink); overflow:auto; z-index:5; }
.workbench #video-dialog[open] { display:block; }
body.workbench[data-workspace="videos"][data-video-origin="dataset"] { --sidebar:0px; }
.workbench[data-workspace="videos"][data-video-origin="dataset"] .workbench-sidebar { display:none; }
.workbench[data-workspace="videos"][data-video-origin="dataset"] #video-dialog { inset:72px 0 0; padding-left:max(24px,calc((100vw - 1280px)/2 + 32px)); padding-right:max(24px,calc((100vw - 1280px)/2 + 32px)); }
.workbench[data-workspace="videos"] #workbench-content,.workbench[data-workspace="videos"]>.site-footer { visibility:hidden; }
.video-workbench-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.video-workbench-header h2 { margin:4px 0 5px; font-size:25px; font-weight:600; }
.video-workbench-header p:last-child { font-size:12px; color:var(--muted); margin:0; }
.video-workbench-header>div:last-child { display:flex; gap:8px; flex-shrink:0; }
.video-upload-panel { border:1px solid var(--line); border-radius:9px; background:#fff; margin-bottom:24px; }
.video-upload-panel>summary { padding:15px 20px; font-size:13px; color:#587584; cursor:pointer; }
.video-upload-panel form { padding:0 20px 20px; }
.workbench .video-records { border:0; padding:0; margin:0; }
.workbench .video-records h3 { font-size:14px; font-weight:500; margin:0 0 14px; }
.workbench .video-records #video-list { grid-template-columns:repeat(3,minmax(0,1fr)); max-height:none; overflow:visible; gap:18px; padding:0; }
.workbench .mine-video-card { border-radius:10px; padding:0; overflow:hidden; gap:12px; }
.workbench .mine-video-card-heading { padding:14px 14px 0; }
.workbench .mine-video-card-actions { padding:0 14px 14px; }
.workbench .mine-video-card-status { padding:0 14px; }
.workbench .mine-video-card-delete { padding:4px 7px; font-size:10px; }
.workbench .video-frames { margin-top:30px; padding:24px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.workbench .video-frames>h3 { font-size:17px; font-weight:500; margin:0; }
.workbench .frame-options { align-items:end; padding:16px; border:1px solid var(--line); background:#f7fafb; border-radius:7px; gap:14px; }
.workbench .frame-options label { font-size:11px; }
.workbench .frame-options select,.workbench .frame-options input { border-color:var(--line); border-radius:4px; padding:7px 9px; }
.workbench .frame-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.workbench .frame-gallery figure { border:1px solid var(--line); border-radius:7px; }
.workbench .frame-gallery .frame-image-trigger { aspect-ratio:auto; }
.workbench .frame-gallery .frame-image-trigger img { width:100%; height:auto; }
.workbench .frame-hint { font-size:11px; color:#8b9aa2; line-height:1.65; }
.workbench .frame-toolbar { border:0; padding:12px 0; margin:0; }
.workbench .frame-actions { gap:7px; }
.workbench .frame-actions select { border-radius:5px; }
/* Full-screen review workspace. Image and SVG keep their shared proportional box. */
.workbench #recognition-dialog { width:100%; height:100dvh; max-width:none; max-height:none; margin:0; inset:0; padding:0 24px 80px; border:0; border-radius:0; overflow:hidden; background:#f2f6f8; }
.workbench #recognition-dialog[open] { display:flex; flex-direction:column; }
.review-workbench-header { display:flex; align-items:center; gap:20px; margin:0 -24px; padding:15px 24px; min-height:80px; background:#fff; border-bottom:1px solid var(--line); flex-shrink:0; }
.review-workbench-header p { color:#8b9da6; font-size:10px; margin:0 0 3px; }
.workbench .review-workbench-header h2 { font-size:16px; font-weight:500; margin:0; overflow-wrap:anywhere; }
.review-workbench-header .review-back { white-space:nowrap; }
.review-header-note { margin-left:auto; font-size:11px; color:#8d9da5; white-space:nowrap; }
.workbench #recognition-status { margin:12px 0; padding:9px 13px; font-size:12px; border-radius:6px; flex-shrink:0; }
.workbench #recognition-status:empty { display:none; }
.workbench .recognition-layout { flex:1; min-height:0; margin:0; gap:24px; grid-template-columns:minmax(0,1fr) minmax(340px,385px); }
.recognition-stage { min-width:0; min-height:0; overflow:auto; display:flex; justify-content:center; align-items:center; background:#e8eef2; border-radius:10px; padding:15px; }
.workbench .recognition-media { width:100%; align-self:auto; border-radius:4px; box-shadow:0 5px 18px #19333f19; flex-shrink:0; }
.workbench .recognition-media img { display:block; width:100%; height:auto; }
.workbench .recognition-layout>.recognition-sidebar { min-width:0; height:100%; max-height:none; overflow:auto; border:1px solid var(--line); border-radius:9px; background:#fff; padding:17px 18px 20px; }
.workbench .recognition-suggestions { margin:0 0 14px; border:0; border-bottom:1px solid var(--line); background:transparent; padding:0 0 12px; }
.workbench #recognition-review-form h3 { font-size:14px; font-weight:500; margin:16px 0 8px; }
.workbench #recognition-review-form>h3:first-child { margin-top:0; }
.workbench .review-labels { gap:12px; }
.workbench .review-labels fieldset { border:1px solid #e7edf0; border-radius:6px; padding:8px 11px; }
.workbench .review-labels legend { color:#607f8f; font-size:12px; font-weight:500; padding:0 4px; }
.workbench .review-labels label { margin:6px 0; font-size:11px; grid-template-columns:minmax(0,1fr) 90px; }
.workbench .review-labels select { width:90px; border-color:var(--line); border-radius:4px; font-size:11px; }
.workbench .review-labels label b { font-weight:500; color:#93a4ac; margin-right:3px; }
.workbench .review-model-suggestion { padding:1px 3px; font-size:9px; }
.workbench .review-box { border:1px solid var(--line); border-radius:5px; padding:9px; margin:10px 0; }
.workbench .review-box.selected { outline:1px solid #ba865e; outline-offset:0; background:#fdf9f4; }
.workbench .review-box input,.workbench .review-box select { border-color:var(--line); border-radius:3px; }
.workbench .recognition-image-tools { left:8px; right:8px; border-radius:4px; justify-content:space-between; font-size:10px; }
.workbench .review-savebar { position:fixed; bottom:0; left:0; right:0; z-index:4; height:68px; display:flex; align-items:center; justify-content:flex-end; gap:16px; padding:12px 25px; background:#fff; border-top:1px solid var(--line); }
.review-savebar>span { font-size:11px; color:#8a9da6; }
.workbench .review-savebar button { min-width:154px; }
.workbench .review-queue-controls { position:fixed; left:24px; bottom:0; top:auto; z-index:5; margin:0; height:68px; max-width:calc(100% - 400px); padding:12px 0; gap:8px; border:0; background:transparent; }
.workbench .review-queue-controls strong { font-size:11px; font-weight:400; color:#7b929e; }
.workbench .review-queue-controls button { padding:7px 10px; font-size:11px; }
.workbench .review-entry-actions { display:none; }
.workbench .group-review-dialog { border-radius:12px; }
.workbench dialog:not(#video-dialog):not(#recognition-dialog) { border-radius:11px; }
.workbench dialog::backdrop { background:#132d3c72; backdrop-filter:blur(2px); }
@media(min-width:1750px) { .workbench main { margin-right:auto; } .workbench .scene-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1280px) { body.workbench { --sidebar:180px; } .workbench .primary-nav { margin-left:12px; } .workbench .scene-grid { gap:14px; } .workbench .workspace.filters-open .scene-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .workbench .video-records #video-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .workbench .frame-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1020px) { .workbench .primary-nav { display:none; } .workbench .scene-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .workbench .workspace.filters-open { grid-template-columns:220px minmax(0,1fr); gap:15px; } .workbench .workspace.filters-open .scene-grid { grid-template-columns:1fr; } .workbench .recognition-layout { grid-template-columns:minmax(0,1fr) 340px; gap:14px; } .review-savebar>span { display:none; } .workbench .review-queue-controls { max-width:calc(100% - 205px); } .workbench .review-queue-controls strong { flex-basis:100%; } .workbench .review-queue-controls { gap:3px; align-content:center; padding:5px 0; } }
@media(max-width:780px) {
  body.workbench { --sidebar:0px; }
  .workbench .site-header { height:64px; padding:0 16px; gap:10px; }
  .workbench .brand strong { font-size:14px; } .workbench .brand small { font-size:8px; }
  .workbench .brand-mark { width:19px; grid-template-columns:repeat(3,4px); gap:3px; }
  .workbench-sidebar { top:64px; bottom:auto; width:100%; padding:7px 12px; border-right:0; border-bottom:1px solid var(--line); display:flex; flex-direction:row; gap:6px; overflow-x:auto; background:#fff; }
  .workbench-sidebar { scrollbar-width:none; } .workbench-sidebar::-webkit-scrollbar { display:none; }
  #sidebar-data-operations { display:contents; }
  .scene-browser-tree { position:fixed; top:116px; left:13px; right:13px; margin:0; padding:12px; max-height:calc(100dvh - 145px); overflow:auto; border:1px solid var(--line); border-radius:8px; background:#fff; box-shadow:0 10px 25px #19333f1a; z-index:30; }
  .scene-browser-tree .scene-domain-tabs button { min-height:36px; }
  .nav-section-label,.sidebar-footer { display:none; } .workbench-nav { display:flex; margin:0; gap:3px; flex-shrink:0; }
  .workbench-nav.sidebar-account { margin:0; padding-top:0; border-top:0; }
  .workbench-nav button { min-height:36px; width:auto; font-size:12px; padding:7px 10px; gap:7px; }
  .workbench-nav .sidebar-import { width:auto; }
  .sidebar-import summary { min-height:36px; padding:7px 10px; font-size:12px; }
  .sidebar-import .import-menu { position:fixed; top:116px; left:13px; right:13px; width:auto; z-index:30; margin:0; padding:6px; border:1px solid var(--line); border-radius:8px; box-shadow:0 10px 25px #19333f1a; }
  .workbench-nav button svg { width:15px; height:15px; }
  .workbench main { margin-top:116px; padding:22px 18px 36px; }
  .workbench .library-intro h1 { font-size:23px; } .workbench .library-intro>div>p:last-child { max-width:450px; }
  .workbench .workspace.filters-open { display:block; } .workbench .filter-panel { position:static; margin-bottom:18px; max-height:55dvh; }
  .workbench .workspace.filters-open .scene-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .workbench .site-footer { padding:18px; font-size:9px; flex-wrap:wrap; gap:6px; }
  .workbench .annotation-note { display:none; }
  .review-source-grid { gap:14px; } .review-source-card { padding:20px; }
  .workbench #video-dialog { top:116px; padding:22px 18px 36px; }
  .workbench[data-workspace="videos"][data-video-origin="dataset"] #video-dialog { top:64px; padding:22px 18px 36px; }
  .video-workbench-header { align-items:flex-start; flex-direction:column; gap:14px; }
  .workbench .video-frames { padding:16px; } .workbench .frame-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .workbench #recognition-dialog { overflow:auto; padding:0 14px 144px; }
  .review-workbench-header { margin:0 -14px; padding:12px 14px; gap:12px; min-height:72px; }
  .review-header-note { display:none; } .workbench .review-workbench-header h2 { font-size:14px; }
  .workbench .recognition-layout { display:flex; flex-direction:column; flex:initial; gap:16px; }
  .recognition-stage { flex-shrink:0; min-height:160px; padding:10px; }
  .workbench .recognition-media { max-width:100% !important; }
  .workbench .recognition-layout>.recognition-sidebar { height:auto; overflow:visible; padding:16px; }
  .workbench .review-savebar { bottom:0; height:64px; padding:10px 14px; }
  .workbench .review-queue-controls { left:0; right:0; bottom:64px; max-width:none; height:auto; min-height:56px; background:#fff; border-top:1px solid var(--line); padding:8px 14px; gap:6px; }
  .workbench .review-queue-controls strong { flex-basis:auto; margin-right:auto; }
  .workbench .review-savebar button { width:100%; }
}
@media(max-width:480px) {
  .workbench .account-actions button { padding:0 9px; height:32px; font-size:11px; }
  .workbench .brand strong { font-size:12px; } .workbench .brand small { font-size:7px; }
  .workbench .brand-mark { display:none; }
  .workbench main,.workbench #video-dialog { padding-left:13px; padding-right:13px; }
  .workbench .library-intro { gap:12px; align-items:flex-start; } .workbench .library-intro>div>p:last-child { font-size:11px; }
  .workbench-import summary { padding:8px 10px; font-size:11px; }
  .workbench .scene-domain-tabs { gap:3px; } .scene-domain-tabs button { padding:7px 9px; font-size:11px; }
  .workbench .scene-subcategory-nav { gap:6px; margin-bottom:18px; }
  .scene-subcategory-nav:before { flex-basis:100%; }
  .scene-subcategory-nav button { padding:6px 10px; font-size:11px; }
  .workbench .scene-tertiary-nav { gap:6px; margin-bottom:18px; }
  .scene-tertiary-nav:before { flex-basis:100%; }
  .scene-tertiary-nav button { padding:6px 9px; font-size:11px; }
  .workbench .search-row { gap:8px; } .workbench .search-box { min-width:0; flex:1; }
  .workbench .search-box input { font-size:11px; } .workbench .library-actions { gap:5px; }
  .workbench .library-actions>.secondary-button { padding:9px 8px; font-size:11px; }
  .workbench .view-actions { display:none; }
  .workbench .result-toolbar>div:first-child { flex-wrap:wrap; gap:5px; }
  .workbench .review-tabs { gap:0; } .workbench .review-tabs button { padding:8px 10px; font-size:11px; }
  .workbench .scene-grid,.workbench .workspace.filters-open .scene-grid,.workbench .review-source-grid { grid-template-columns:1fr; }
  .workbench .scene-image { aspect-ratio:16/9; } .workbench .scene-grid.list .scene-card { grid-template-columns:1fr; }
  .workbench .workflow-strip { padding:14px; gap:9px; font-size:10px; margin-bottom:22px; }
  .workbench .video-records #video-list { grid-template-columns:1fr; }
  .workbench .frame-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .workbench .frame-options { display:flex; flex-wrap:wrap; padding:12px; gap:10px; }
  .workbench .frame-options label { min-width:0; flex:1 1 110px; }
  .workbench .frame-options select,.workbench .frame-options input { width:100%; min-width:0; }
  .workbench .frame-options button { width:100%; }
  .workbench .frame-actions { flex-wrap:wrap; } .workbench .frame-actions button { padding:7px 9px; font-size:10px; }
  .workbench .frame-actions select { max-width:138px; font-size:10px; }
  .workbench .review-queue-controls strong { flex-basis:100%; }
  .workbench #recognition-dialog { padding-bottom:155px; }
  .workbench .recognition-image-tools>span { max-width:65%; }
}
@media(prefers-reduced-motion:reduce) { .workbench * { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
.road-annotation-panel { border:1px solid var(--line); border-radius:6px; padding:10px; background:#f8fbfb; margin:14px 0; }
.road-annotation-panel>summary { font-size:14px; font-weight:600; cursor:pointer; }
.road-state-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:10px; }
.road-annotation-panel label { display:grid; gap:3px; min-width:0; font-size:11px; line-height:1.5; }
.road-annotation-panel select,.road-annotation-panel input[type="number"] { min-width:0; width:100%; padding:6px 4px; border:1px solid #cbd5d9; background:#fff; border-radius:3px; font-size:12px; }
.road-editor-tools { display:flex; align-items:end; justify-content:space-between; gap:12px; margin:10px 0; }
.road-editor-tools>label:first-child { flex:1; }.road-annotation-panel .road-visibility { display:flex; flex-shrink:0; align-items:center; gap:5px; padding-bottom:6px; }
.road-editor-actions { display:flex; flex-wrap:wrap; gap:5px; margin:8px 0; }.road-editor-actions button { font-size:11px; padding:6px 8px; border-radius:3px; }
.road-editor-actions [hidden] { display:none; }.road-annotation-panel button:disabled { opacity:.45; cursor:not-allowed; }
.road-editor-coordinates { display:grid; grid-template-columns:1fr 1fr; gap:6px; }.road-annotation-panel [data-road-status] { font-size:11px; line-height:1.65; }
.road-annotation-panel [data-road-status].error { color:#a73126; }.road-annotation-panel :focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
.recognition-media svg.road-editing { pointer-events:auto; cursor:crosshair; touch-action:none; }.recognition-media svg.road-editing .review-box-shape,.recognition-media svg.road-editing .review-resize-handle { pointer-events:none; }
.recognition-media svg .road-edit-hit { pointer-events:all; cursor:pointer; }.recognition-media svg .road-edit-handle { pointer-events:all; cursor:move; }
.frame-image-trigger { position:relative; }.frame-image-trigger>svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
@media(max-width:600px) { .road-state-grid { grid-template-columns:1fr; }.road-editor-actions button { padding:7px 9px; } }
