codebee 0.1.101 → 0.1.103
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/LICENSE +21 -21
- package/README.md +3 -6
- package/app/.playwright-cli/console-2026-09-23T08-26-03-635Z.log +88 -0
- package/app/.playwright-cli/page-2026-09-23T08-26-03-845Z.yml +126 -0
- package/app/.playwright-cli/page-2026-09-23T08-29-44-203Z.png +0 -0
- package/app/.playwright-cli/page-2026-09-23T08-35-42-046Z.yml +210 -0
- package/app/.playwright-cli/page-2026-09-23T08-36-52-858Z.png +0 -0
- package/app/.playwright-cli/page-2026-09-23T08-37-33-938Z.png +0 -0
- package/app/.playwright-cli/run-detail-after.png +0 -0
- package/app/core/acceptance.py +100 -100
- package/app/core/acp_client.py +457 -426
- package/app/core/aiflavor.py +197 -197
- package/app/core/analytics.py +38 -38
- package/app/core/artifacts.py +148 -148
- package/app/core/assets.py +110 -110
- package/app/core/attachments.py +623 -623
- package/app/core/audit.py +30 -30
- package/app/core/backend_profiles.py +188 -188
- package/app/core/backup.py +470 -470
- package/app/core/beekeeper.py +183 -183
- package/app/core/benchstore.py +102 -102
- package/app/core/board.py +21 -17
- package/app/core/bookmeta.py +1036 -1036
- package/app/core/bookmeta_catalog.py +180 -180
- package/app/core/branching.py +137 -137
- package/app/core/builtin_agent.py +13 -4
- package/app/core/capability.py +144 -144
- package/app/core/catalog.py +28 -6
- package/app/core/chaptersafe.py +32 -32
- package/app/core/checkpoints.py +117 -31
- package/app/core/cleanup.py +303 -303
- package/app/core/command_auth.py +302 -302
- package/app/core/compaction.py +201 -201
- package/app/core/contracts.py +255 -255
- package/app/core/covergen.py +356 -356
- package/app/core/defectretro.py +43 -43
- package/app/core/diagnostics.py +114 -114
- package/app/core/dispatch.py +1 -1
- package/app/core/dispatch_log.py +128 -128
- package/app/core/env_scrub.py +85 -85
- package/app/core/errorlog.py +137 -137
- package/app/core/eval_matrix.py +91 -82
- package/app/core/evaluation.py +174 -174
- package/app/core/failure_notify.py +290 -290
- package/app/core/flow_graph.py +33 -33
- package/app/core/goal_service.py +167 -167
- package/app/core/health.py +389 -389
- package/app/core/history.py +38 -38
- package/app/core/hooks.py +162 -162
- package/app/core/knowledge_pipeline.py +86 -86
- package/app/core/manager.py +2385 -2385
- package/app/core/mcp_client.py +7 -2
- package/app/core/mocks.py +64 -64
- package/app/core/notify.py +201 -201
- package/app/core/novel_quality.py +181 -181
- package/app/core/openapi.py +217 -209
- package/app/core/operations.py +228 -228
- package/app/core/paihang.py +145 -145
- package/app/core/pipeline.py +6 -3
- package/app/core/policy.py +9 -0
- package/app/core/portguard.py +111 -111
- package/app/core/presence.py +77 -77
- package/app/core/preview.py +293 -293
- package/app/core/project_memory.py +206 -206
- package/app/core/prompt_guard.py +78 -78
- package/app/core/publish/__init__.py +7 -7
- package/app/core/publish/auto.py +659 -562
- package/app/core/publish/chaprows.py +138 -138
- package/app/core/publish/fanqie.py +16 -10
- package/app/core/publish/flow.py +29 -1
- package/app/core/publish/flows-fanqie-calibrated.json +442 -442
- package/app/core/publish/manager.py +1185 -1177
- package/app/core/publish/qimao.py +193 -193
- package/app/core/publish/volumes.py +108 -108
- package/app/core/publish/ws.py +139 -139
- package/app/core/quality_gate.py +201 -201
- package/app/core/redact.py +38 -38
- package/app/core/repeat_guard.py +129 -129
- package/app/core/retrieval.py +137 -137
- package/app/core/sandbox_runtime.py +95 -0
- package/app/core/selfupdate.py +384 -384
- package/app/core/session_log.py +161 -161
- package/app/core/sessions.py +312 -312
- package/app/core/settings.py +215 -215
- package/app/core/settings_schema.py +282 -282
- package/app/core/share_page.py +114 -114
- package/app/core/skill_scan.py +139 -139
- package/app/core/skillpacks/market/character-bible.md +66 -66
- package/app/core/skillpacks/market/code-risk-checklist.md +58 -58
- package/app/core/skillpacks/market/git-workflow.md +57 -57
- package/app/core/skillpacks/market/release-notes.md +72 -72
- package/app/core/skillpacks/market/weekly-report.md +71 -71
- package/app/core/skillpacks/market/worldview-consistency.md +70 -70
- package/app/core/step_runner.py +132 -132
- package/app/core/store.py +13 -3
- package/app/core/story_tracking.py +275 -275
- package/app/core/task_compile.py +199 -199
- package/app/core/telemetry.py +292 -292
- package/app/core/tlsctx.py +64 -64
- package/app/core/token_meter.py +147 -147
- package/app/core/tool_outputs.py +107 -107
- package/app/core/tracing.py +207 -207
- package/app/core/upstream.py +41 -41
- package/app/core/usage.py +1038 -1038
- package/app/core/volumes.py +389 -389
- package/app/core/webhooks.py +89 -89
- package/app/core/wxdigest.py +865 -865
- package/app/core/zentao.py +2692 -2692
- package/app/main.py +1 -0
- package/app/mcp_server.py +244 -244
- package/app/output/_createbook_body.json +1 -0
- package/app/output/_probe_fq_click.py +50 -0
- package/app/output/_probe_fq_form.py +42 -0
- package/app/output/_probe_fq_modal.py +55 -0
- package/app/output/_probe_fq_points.py +71 -0
- package/app/output/_probe_fq_submit.py +34 -0
- package/app/output/_probe_fq_watch.py +62 -0
- package/app/output/workbench-clean-preview.jpg +0 -0
- package/app/output/workbench-reference-render.png +0 -0
- package/app/output/workbench-shell.png +0 -0
- package/app/pick_dialog.py +110 -110
- package/app/ui/app.js +165 -29
- package/app/ui/artdiff.js +74 -74
- package/app/ui/hive3d.js +491 -223
- package/app/ui/i18n.js +18 -1
- package/app/ui/icons/bee.svg +79 -79
- package/app/ui/index.html +24 -4
- package/app/ui/manifest.json +16 -16
- package/app/ui/qrcode.js +2297 -2297
- package/app/ui/style.css +548 -18
- package/bin/tutti.js +147 -147
- package/package.json +1 -1
- package/tools/wx_reader.py +261 -261
package/app/ui/style.css
CHANGED
|
@@ -3888,6 +3888,10 @@ body.inspector-open #run-detail #rd-log.rd-logdrawer {
|
|
|
3888
3888
|
.rd-checkpoints-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
|
|
3889
3889
|
.rd-checkpoints-head strong { margin-right: auto; }
|
|
3890
3890
|
.rd-checkpoint-row, .rd-memory-row { padding: 9px 0; border-top: 1px solid var(--border); }
|
|
3891
|
+
.rd-checkpoint-steps { margin: 8px 0 12px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; }
|
|
3892
|
+
.rd-checkpoint-step { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 0; border-top: 1px dashed var(--border); font-size: 12px; }
|
|
3893
|
+
.rd-checkpoint-step > :first-child { overflow-wrap: anywhere; }
|
|
3894
|
+
.rd-acp-plan-entry { padding-left: 14px; color: var(--muted); }
|
|
3891
3895
|
.rd-checkpoint-row > strong { margin-right: 8px; overflow-wrap: anywhere; }
|
|
3892
3896
|
.rd-checkpoint-row pre, .rd-memory-row pre {
|
|
3893
3897
|
max-height: 240px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere;
|
|
@@ -7194,8 +7198,15 @@ main.browser-page-active #page-settings > #sub-browser .browser-shell {
|
|
|
7194
7198
|
.hive-scene-page-label { white-space: nowrap; font-family: var(--mono); }
|
|
7195
7199
|
.hive-viewport {
|
|
7196
7200
|
position: relative; width: 100%; aspect-ratio: 2848 / 1600; overflow: hidden;
|
|
7197
|
-
container-type: inline-size;
|
|
7198
|
-
|
|
7201
|
+
container-type: inline-size; isolation: isolate;
|
|
7202
|
+
border: 1px solid color-mix(in srgb, #6aa9d2 30%, var(--border)); border-radius: 16px;
|
|
7203
|
+
background: radial-gradient(ellipse at 50% 22%, #eef8ff 0%, #dcecf8 58%, #c9dfef 100%);
|
|
7204
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,.82), 0 18px 46px rgba(17,55,83,.12);
|
|
7205
|
+
cursor: grab; touch-action: pan-y;
|
|
7206
|
+
}
|
|
7207
|
+
.hive-viewport::after {
|
|
7208
|
+
position: absolute; inset: 0; z-index: 3; border-radius: inherit; pointer-events: none;
|
|
7209
|
+
content: ""; box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), inset 0 -34px 56px rgba(18,61,91,.055);
|
|
7199
7210
|
}
|
|
7200
7211
|
.hive-viewport.is-dragging { cursor: grabbing; }
|
|
7201
7212
|
.hive-reference-layer { position: absolute; inset: 0; transform-origin: center; }
|
|
@@ -7204,33 +7215,53 @@ main.browser-page-active #page-settings > #sub-browser .browser-shell {
|
|
|
7204
7215
|
.hive-gl { display: none; }
|
|
7205
7216
|
.hive-gl-overlay { position: absolute; inset: 0; pointer-events: none; }
|
|
7206
7217
|
#rd-hive-viewport.hive-mode-3d #rd-hive-cells { display: none; }
|
|
7218
|
+
#rd-hive-viewport.hive-mode-live3d #rd-hive-cells { display: none !important; }
|
|
7207
7219
|
#rd-hive-viewport.hive-mode-2d { height: auto; aspect-ratio: auto; overflow: visible; border: 0; border-radius: 0; background: transparent; cursor: auto; }
|
|
7208
7220
|
#rd-hive-viewport.hive-mode-2d .hive-reference-layer { display: none; }
|
|
7209
7221
|
.hg-badge {
|
|
7210
7222
|
position: absolute; transform: translate(-50%, -50%); width: 10.8%; height: 7.6%;
|
|
7211
|
-
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .
|
|
7212
|
-
padding: .3cqw; border:
|
|
7213
|
-
color: #
|
|
7223
|
+
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .36cqw;
|
|
7224
|
+
padding: .3cqw; border: 1px solid rgba(142,224,247,.42); border-radius: .78cqw; pointer-events: auto; cursor: pointer;
|
|
7225
|
+
color: #effbff; background: linear-gradient(142deg, rgba(14,43,63,.98), rgba(8,61,83,.97));
|
|
7226
|
+
box-shadow: inset 0 1px 0 rgba(224,250,255,.18), 0 .42cqw 1.1cqw rgba(2,20,37,.30);
|
|
7214
7227
|
text-align: center; font-family: "Microsoft YaHei", sans-serif;
|
|
7215
7228
|
}
|
|
7216
|
-
.hg-badge
|
|
7217
|
-
|
|
7229
|
+
.hg-badge::before {
|
|
7230
|
+
position: absolute; top: 15%; left: 8%; width: .3cqw; height: .3cqw; min-width: 3px; min-height: 3px;
|
|
7231
|
+
border-radius: 50%; content: ""; background: #6c8a9c; box-shadow: 0 0 .35cqw rgba(91,223,245,.25);
|
|
7232
|
+
}
|
|
7233
|
+
.hg-badge .hg-name { font-size: 1.12cqw; font-weight: 750; letter-spacing: .01em; line-height: 1.15; white-space: nowrap; }
|
|
7234
|
+
.hg-badge .hg-meta { font-size: .62cqw; color: #a9cfdd; line-height: 1; white-space: nowrap; }
|
|
7218
7235
|
.hg-badge:disabled { cursor: default; opacity: 1; }
|
|
7219
|
-
.hg-badge:hover:not(:disabled), .hg-badge:focus-visible { outline: .12cqw solid #71eaf9; outline-offset: .
|
|
7220
|
-
.hg-badge.hg-active {
|
|
7236
|
+
.hg-badge:hover:not(:disabled), .hg-badge:focus-visible { outline: .12cqw solid #71eaf9; outline-offset: .16cqw; }
|
|
7237
|
+
.hg-badge.hg-active {
|
|
7238
|
+
border-color: rgba(90,245,225,.85);
|
|
7239
|
+
box-shadow: inset 0 1px 0 rgba(224,250,255,.18), 0 .42cqw 1.1cqw rgba(2,20,37,.30), 0 0 1.15cqw rgba(0,236,255,.38);
|
|
7240
|
+
}
|
|
7241
|
+
.hg-badge.hg-active::before { background: #5df4c7; box-shadow: 0 0 .42cqw rgba(93,244,199,.9); }
|
|
7221
7242
|
.hg-monitor {
|
|
7222
7243
|
position: absolute; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto 1fr;
|
|
7223
|
-
padding: .12cqw .3cqw; gap: .08cqw .18cqw; overflow: hidden;
|
|
7224
|
-
|
|
7225
|
-
|
|
7244
|
+
padding: .12cqw .3cqw; gap: .08cqw .18cqw; overflow: hidden;
|
|
7245
|
+
border: 1px solid rgba(115,202,229,.46); border-radius: .26cqw;
|
|
7246
|
+
pointer-events: auto; cursor: pointer; text-align: left; color: #d8f9ff;
|
|
7247
|
+
background: linear-gradient(160deg, #0b3048 0%, #061a2b 72%, #082236 100%);
|
|
7248
|
+
box-shadow: inset 0 1px 0 rgba(204,248,255,.13), 0 1px 3px rgba(0,12,24,.26);
|
|
7249
|
+
font-family: var(--mono); font-size: .68cqw; line-height: 1.15;
|
|
7250
|
+
}
|
|
7251
|
+
.hg-monitor::before {
|
|
7252
|
+
position: absolute; top: .18cqw; right: .22cqw; width: .24cqw; height: .24cqw; min-width: 2px; min-height: 2px;
|
|
7253
|
+
border-radius: 50%; content: ""; background: #58e3bd; box-shadow: 0 0 .28cqw rgba(88,227,189,.5);
|
|
7226
7254
|
}
|
|
7227
7255
|
.hg-monitor:disabled { opacity: 1; cursor: default; }
|
|
7228
|
-
.hg-monitor:hover:not(:disabled), .hg-monitor:focus-visible { outline: .12cqw solid #91f6ff; outline-offset: .
|
|
7229
|
-
.hg-monitor-role { grid-column: 1 / -1; font-size: .
|
|
7230
|
-
.hg-monitor-status { color: #94deee; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7231
|
-
.hg-monitor-time { grid-column: 2; grid-row: 2; color: #9dd8e4; white-space: nowrap; }
|
|
7232
|
-
.hg-monitor-tail { grid-column: 1 / -1; color: #b3e7f2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7233
|
-
.hg-monitor.st-running { box-shadow: inset 0 -.1cqw #52edf5; }
|
|
7256
|
+
.hg-monitor:hover:not(:disabled), .hg-monitor:focus-visible { outline: .12cqw solid #91f6ff; outline-offset: .08cqw; z-index: 1; }
|
|
7257
|
+
.hg-monitor-role { grid-column: 1 / -1; font-size: .82cqw; line-height: 1.16; font-weight: 700; letter-spacing: .005em; color: #edfaff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7258
|
+
.hg-monitor-status { font-size: .64cqw; color: #94deee; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7259
|
+
.hg-monitor-time { grid-column: 2; grid-row: 2; font-size: .60cqw; color: #9dd8e4; white-space: nowrap; }
|
|
7260
|
+
.hg-monitor-tail { grid-column: 1 / -1; font-size: .62cqw; color: #b3e7f2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
7261
|
+
.hg-monitor.st-running { border-color: rgba(78,239,244,.82); box-shadow: inset 0 -.1cqw #52edf5, inset 0 1px 0 rgba(204,248,255,.13), 0 1px 3px rgba(0,12,24,.26); }
|
|
7262
|
+
.hg-monitor.st-queued::before { background: #7e99aa; box-shadow: none; }
|
|
7263
|
+
.hg-monitor.st-done::before { background: #78f2ae; box-shadow: 0 0 .28cqw rgba(120,242,174,.45); }
|
|
7264
|
+
.hg-monitor.st-failed::before, .hg-monitor.st-timeout::before { background: #ff777b; box-shadow: 0 0 .28cqw rgba(255,119,123,.5); }
|
|
7234
7265
|
.hg-monitor.st-running .hg-monitor-status { color: #5cf5fc; }
|
|
7235
7266
|
.hg-monitor.st-done .hg-monitor-status { color: #99f3bf; }
|
|
7236
7267
|
.hg-monitor.st-failed .hg-monitor-status, .hg-monitor.st-timeout .hg-monitor-status { color: #ffa2a2; }
|
|
@@ -7276,3 +7307,502 @@ main.browser-page-active #page-settings > #sub-browser .browser-shell {
|
|
|
7276
7307
|
.pb-chip input { margin: 0; }
|
|
7277
7308
|
.pb-pend-btns { display: flex; gap: 8px; margin-top: 6px; }
|
|
7278
7309
|
.pb-vol { font-size: 11px; color: var(--accent, #4a7dbe); margin-top: 5px; font-weight: 600; }
|
|
7310
|
+
.pb-vol-sel { display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
|
|
7311
|
+
color: inherit; user-select: none; }
|
|
7312
|
+
.pb-vol-sel:hover, .pb-vol-sel.on { color: var(--text); }
|
|
7313
|
+
.pb-vol-sel input { margin: 0; accent-color: var(--accent, #4a7dbe); }
|
|
7314
|
+
|
|
7315
|
+
|
|
7316
|
+
/* Procedural WebGL hive renderer: canvas is the live 3D layer, DOM controls stay accessible above it. */
|
|
7317
|
+
#rd-hive-viewport .hive-gl-live {
|
|
7318
|
+
display: block;
|
|
7319
|
+
position: absolute;
|
|
7320
|
+
inset: 0;
|
|
7321
|
+
width: 100%;
|
|
7322
|
+
height: 100%;
|
|
7323
|
+
z-index: 0;
|
|
7324
|
+
touch-action: none;
|
|
7325
|
+
}
|
|
7326
|
+
#rd-hive-viewport .hive-reference-layer { z-index: 1; pointer-events: none; }
|
|
7327
|
+
#rd-hive-viewport .hive-gl-overlay { pointer-events: none; }
|
|
7328
|
+
#rd-hive-viewport .hive-gl-overlay button { pointer-events: auto; }
|
|
7329
|
+
#rd-hive-viewport.hive-mode-2d .hive-gl-live { display: none; }
|
|
7330
|
+
#rd-hive-viewport.hive-mode-3d .hive-reference { display: none; }
|
|
7331
|
+
#rd-hive-viewport.hive-mode-3d .hive-reference-layer { pointer-events: none; }
|
|
7332
|
+
/* Stage-card top is projected from the 3D wall by hive3d.js; do not pin it to a screen-space row. */
|
|
7333
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor { top: auto; }
|
|
7334
|
+
@media (prefers-reduced-motion: reduce) {
|
|
7335
|
+
#rd-hive-viewport .hive-gl-live { scroll-behavior: auto; }
|
|
7336
|
+
}
|
|
7337
|
+
|
|
7338
|
+
#rd-hive-viewport .hive-gl-live[hidden] { display: none !important; }
|
|
7339
|
+
|
|
7340
|
+
|
|
7341
|
+
/* Visual calibration pass: reduce floating task labels so the room and desks read first. */
|
|
7342
|
+
#rd-hive-viewport.hive-mode-3d {
|
|
7343
|
+
background: linear-gradient(180deg, #e9f4fc 0%, #d7e9f7 54%, #c9dceb 100%);
|
|
7344
|
+
}
|
|
7345
|
+
#rd-hive-viewport .hive-reference-layer {
|
|
7346
|
+
z-index: 2;
|
|
7347
|
+
overflow: hidden;
|
|
7348
|
+
}
|
|
7349
|
+
#rd-hive-viewport .hg-badge {
|
|
7350
|
+
width: 10.6%;
|
|
7351
|
+
height: 6.6%;
|
|
7352
|
+
padding: .24cqw;
|
|
7353
|
+
border-radius: 1.15cqw;
|
|
7354
|
+
box-shadow: 0 .22cqw .55cqw rgba(14,55,88,.17);
|
|
7355
|
+
}
|
|
7356
|
+
#rd-hive-viewport .hg-badge .hg-name {
|
|
7357
|
+
font-size: clamp(10px, 1.05cqw, 17px);
|
|
7358
|
+
}
|
|
7359
|
+
#rd-hive-viewport .hg-badge .hg-meta {
|
|
7360
|
+
font-size: clamp(7px, .48cqw, 10px);
|
|
7361
|
+
}
|
|
7362
|
+
#rd-hive-viewport .hg-monitor {
|
|
7363
|
+
background: rgba(4, 28, 55, .88);
|
|
7364
|
+
border: 1px solid rgba(121, 225, 246, .28);
|
|
7365
|
+
border-radius: 3px;
|
|
7366
|
+
padding: 2px 4px;
|
|
7367
|
+
font-size: clamp(6px, .45cqw, 9px);
|
|
7368
|
+
line-height: 1.2;
|
|
7369
|
+
box-shadow: 0 2px 6px rgba(4, 24, 45, .12);
|
|
7370
|
+
backdrop-filter: blur(2px);
|
|
7371
|
+
}
|
|
7372
|
+
#rd-hive-viewport .hg-monitor-role {
|
|
7373
|
+
font-size: clamp(6px, .52cqw, 10px);
|
|
7374
|
+
}
|
|
7375
|
+
#rd-hive-viewport .hg-monitor-tail {
|
|
7376
|
+
opacity: .8;
|
|
7377
|
+
}
|
|
7378
|
+
#rd-hive-viewport .hg-monitor.st-idle {
|
|
7379
|
+
background: rgba(7, 38, 66, .58);
|
|
7380
|
+
border-color: rgba(255,255,255,.16);
|
|
7381
|
+
opacity: .84;
|
|
7382
|
+
}
|
|
7383
|
+
#rd-hive-viewport .hg-monitor:disabled {
|
|
7384
|
+
opacity: .42;
|
|
7385
|
+
}
|
|
7386
|
+
@media (max-width: 760px) {
|
|
7387
|
+
#rd-hive-viewport .hg-monitor { display: none; }
|
|
7388
|
+
#rd-hive-viewport .hg-badge { width: 14%; }
|
|
7389
|
+
}
|
|
7390
|
+
|
|
7391
|
+
|
|
7392
|
+
/* True projected-screen labels: type must fit inside compact physical monitor bounds. */
|
|
7393
|
+
#rd-hive-viewport .hg-monitor {
|
|
7394
|
+
box-sizing: border-box;
|
|
7395
|
+
min-width: 0;
|
|
7396
|
+
min-height: 0;
|
|
7397
|
+
padding: 1px 2px;
|
|
7398
|
+
gap: 0;
|
|
7399
|
+
grid-template-rows: auto auto minmax(0, 1fr);
|
|
7400
|
+
border: 1px solid rgba(121, 225, 246, .20);
|
|
7401
|
+
border-radius: 2px;
|
|
7402
|
+
background: rgba(2, 19, 39, .93);
|
|
7403
|
+
box-shadow: none;
|
|
7404
|
+
backdrop-filter: none;
|
|
7405
|
+
line-height: 1.05;
|
|
7406
|
+
}
|
|
7407
|
+
#rd-hive-viewport .hg-monitor-role {
|
|
7408
|
+
min-width: 0;
|
|
7409
|
+
font-size: clamp(5px, .43cqw, 9px);
|
|
7410
|
+
line-height: 1.05;
|
|
7411
|
+
}
|
|
7412
|
+
#rd-hive-viewport .hg-monitor-status,
|
|
7413
|
+
#rd-hive-viewport .hg-monitor-time {
|
|
7414
|
+
font-size: clamp(4px, .35cqw, 7px);
|
|
7415
|
+
line-height: 1.05;
|
|
7416
|
+
}
|
|
7417
|
+
#rd-hive-viewport .hg-monitor-tail {
|
|
7418
|
+
min-width: 0;
|
|
7419
|
+
font-size: clamp(4px, .34cqw, 6px);
|
|
7420
|
+
line-height: 1.05;
|
|
7421
|
+
}
|
|
7422
|
+
#rd-hive-viewport .hg-monitor.st-idle {
|
|
7423
|
+
background: rgba(2, 19, 39, .88);
|
|
7424
|
+
}
|
|
7425
|
+
|
|
7426
|
+
|
|
7427
|
+
/* Workflow arrows are DOM overlays anchored to projected wall-panel edges. */
|
|
7428
|
+
#rd-hive-viewport .hg-flow-link {
|
|
7429
|
+
position: absolute;
|
|
7430
|
+
z-index: 1;
|
|
7431
|
+
display: block;
|
|
7432
|
+
height: 2px;
|
|
7433
|
+
border-radius: 2px;
|
|
7434
|
+
pointer-events: none;
|
|
7435
|
+
transform-origin: left center;
|
|
7436
|
+
background: linear-gradient(90deg, rgba(99, 237, 255, .62), rgba(99, 237, 255, .95));
|
|
7437
|
+
box-shadow: 0 0 5px rgba(72, 226, 255, .5);
|
|
7438
|
+
}
|
|
7439
|
+
#rd-hive-viewport .hg-flow-link::after {
|
|
7440
|
+
content: "";
|
|
7441
|
+
position: absolute;
|
|
7442
|
+
right: 0;
|
|
7443
|
+
top: -3px;
|
|
7444
|
+
width: 7px;
|
|
7445
|
+
height: 7px;
|
|
7446
|
+
border-top: 2px solid #72efff;
|
|
7447
|
+
border-right: 2px solid #72efff;
|
|
7448
|
+
transform: rotate(45deg);
|
|
7449
|
+
filter: drop-shadow(0 0 2px rgba(83, 233, 255, .65));
|
|
7450
|
+
}
|
|
7451
|
+
|
|
7452
|
+
|
|
7453
|
+
/* Premium Hive3D finish: give the glass studio a deep, cinematic frame and legible hardware UI. */
|
|
7454
|
+
#rd-hive-viewport.hive-mode-3d {
|
|
7455
|
+
background:
|
|
7456
|
+
radial-gradient(ellipse at 50% 34%, rgba(24, 83, 112, .36) 0%, rgba(9, 25, 44, .18) 46%, transparent 74%),
|
|
7457
|
+
linear-gradient(180deg, #071725 0%, #091a2b 54%, #06111e 100%);
|
|
7458
|
+
border: 1px solid rgba(98, 200, 226, .22);
|
|
7459
|
+
box-shadow: inset 0 1px 0 rgba(214, 246, 255, .06), 0 24px 72px rgba(0, 0, 0, .24);
|
|
7460
|
+
}
|
|
7461
|
+
#rd-hive-viewport .hg-badge {
|
|
7462
|
+
box-sizing: border-box;
|
|
7463
|
+
background: linear-gradient(145deg, rgba(12, 36, 54, .98), rgba(5, 20, 34, .98)) !important;
|
|
7464
|
+
color: #e8f8ff !important;
|
|
7465
|
+
border: 1px solid rgba(107, 225, 239, .45) !important;
|
|
7466
|
+
border-radius: 7px;
|
|
7467
|
+
box-shadow: inset 0 1px 0 rgba(227, 251, 255, .10), 0 5px 14px rgba(0, 8, 20, .32) !important;
|
|
7468
|
+
text-shadow: 0 1px 8px rgba(66, 190, 225, .12);
|
|
7469
|
+
}
|
|
7470
|
+
#rd-hive-viewport .hg-badge .hg-name {
|
|
7471
|
+
color: #f0fbff !important;
|
|
7472
|
+
letter-spacing: .025em;
|
|
7473
|
+
font-weight: 750;
|
|
7474
|
+
}
|
|
7475
|
+
#rd-hive-viewport .hg-badge .hg-meta { color: #8dbdce !important; }
|
|
7476
|
+
#rd-hive-viewport .hg-badge.hg-active {
|
|
7477
|
+
border-color: rgba(87, 247, 213, .92) !important;
|
|
7478
|
+
box-shadow: inset 0 0 0 1px rgba(87, 247, 213, .10), 0 0 18px rgba(0, 225, 220, .18), 0 5px 14px rgba(0, 8, 20, .32) !important;
|
|
7479
|
+
}
|
|
7480
|
+
#rd-hive-viewport .hg-room-sign {
|
|
7481
|
+
position: absolute;
|
|
7482
|
+
z-index: 2;
|
|
7483
|
+
display: flex;
|
|
7484
|
+
align-items: center;
|
|
7485
|
+
justify-content: space-evenly;
|
|
7486
|
+
gap: clamp(4px, .42cqw, 8px);
|
|
7487
|
+
padding: 0 clamp(4px, .45cqw, 9px);
|
|
7488
|
+
box-sizing: border-box;
|
|
7489
|
+
overflow: hidden;
|
|
7490
|
+
pointer-events: none;
|
|
7491
|
+
white-space: nowrap;
|
|
7492
|
+
color: #e8fbff;
|
|
7493
|
+
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
|
|
7494
|
+
text-shadow: 0 0 9px rgba(37, 187, 220, .18);
|
|
7495
|
+
}
|
|
7496
|
+
#rd-hive-viewport .hg-room-kicker {
|
|
7497
|
+
color: #79b7c9;
|
|
7498
|
+
font-size: clamp(5px, .48cqw, 9px);
|
|
7499
|
+
font-weight: 800;
|
|
7500
|
+
letter-spacing: .12em;
|
|
7501
|
+
}
|
|
7502
|
+
#rd-hive-viewport .hg-room-title {
|
|
7503
|
+
color: #f0fcff;
|
|
7504
|
+
font-size: clamp(7px, .72cqw, 13px);
|
|
7505
|
+
font-weight: 850;
|
|
7506
|
+
letter-spacing: .045em;
|
|
7507
|
+
}
|
|
7508
|
+
#rd-hive-viewport .hg-room-live {
|
|
7509
|
+
color: #72e8ca;
|
|
7510
|
+
font-size: clamp(5px, .44cqw, 8px);
|
|
7511
|
+
font-weight: 750;
|
|
7512
|
+
letter-spacing: .025em;
|
|
7513
|
+
}
|
|
7514
|
+
#rd-hive-viewport .hg-monitor {
|
|
7515
|
+
border-radius: 3px;
|
|
7516
|
+
border-color: rgba(77, 202, 229, .42);
|
|
7517
|
+
background: linear-gradient(145deg, rgba(5, 27, 43, .97), rgba(2, 13, 25, .98));
|
|
7518
|
+
box-shadow: inset 0 1px 0 rgba(209, 247, 255, .06), 0 2px 7px rgba(0, 8, 18, .18);
|
|
7519
|
+
}
|
|
7520
|
+
#rd-hive-viewport .hg-monitor-role { color: #edfbff; }
|
|
7521
|
+
#rd-hive-viewport .hg-monitor-status,
|
|
7522
|
+
#rd-hive-viewport .hg-monitor-time { color: #87d7e7; }
|
|
7523
|
+
#rd-hive-viewport .hg-monitor-tail { color: #b0dae5; opacity: .92; }
|
|
7524
|
+
#rd-hive-viewport .hg-monitor.st-running {
|
|
7525
|
+
border-color: rgba(76, 243, 220, .95);
|
|
7526
|
+
box-shadow: inset 0 0 0 1px rgba(76, 243, 220, .12), 0 0 8px rgba(31, 210, 211, .15);
|
|
7527
|
+
}
|
|
7528
|
+
|
|
7529
|
+
|
|
7530
|
+
/* Second calibration: the wall identity should read at a glance without overpowering the stages. */
|
|
7531
|
+
#rd-hive-viewport .hg-room-kicker { font-size: clamp(6px, .55cqw, 10px); }
|
|
7532
|
+
#rd-hive-viewport .hg-room-title { font-size: clamp(8px, .88cqw, 15px); letter-spacing: .055em; }
|
|
7533
|
+
#rd-hive-viewport .hg-room-live { font-size: clamp(6px, .50cqw, 9px); }
|
|
7534
|
+
|
|
7535
|
+
|
|
7536
|
+
/* Readability pass: task labels remain useful at a glance at the shipped scene size. */
|
|
7537
|
+
#rd-hive-viewport .hg-monitor-role {
|
|
7538
|
+
font-size: clamp(6px, .56cqw, 10px);
|
|
7539
|
+
line-height: 1.08;
|
|
7540
|
+
}
|
|
7541
|
+
#rd-hive-viewport .hg-monitor-status,
|
|
7542
|
+
#rd-hive-viewport .hg-monitor-time {
|
|
7543
|
+
font-size: clamp(5px, .40cqw, 7px);
|
|
7544
|
+
line-height: 1.05;
|
|
7545
|
+
}
|
|
7546
|
+
#rd-hive-viewport .hg-monitor-tail {
|
|
7547
|
+
font-size: clamp(5px, .38cqw, 7px);
|
|
7548
|
+
line-height: 1.05;
|
|
7549
|
+
}
|
|
7550
|
+
|
|
7551
|
+
|
|
7552
|
+
/* Reference-match pass: high-key blue office, white phase pills, and cyan flow rails. */
|
|
7553
|
+
#rd-hive-viewport.hive-mode-3d {
|
|
7554
|
+
background: linear-gradient(180deg, #eaf5ff 0%, #dcecf9 58%, #cfe1ef 100%) !important;
|
|
7555
|
+
border: 1px solid rgba(112, 164, 203, .38) !important;
|
|
7556
|
+
border-radius: 12px;
|
|
7557
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 16px 36px rgba(33, 80, 119, .14) !important;
|
|
7558
|
+
}
|
|
7559
|
+
#rd-hive-viewport .hg-badge {
|
|
7560
|
+
box-sizing: border-box;
|
|
7561
|
+
background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%) !important;
|
|
7562
|
+
color: #12283e !important;
|
|
7563
|
+
border: 1px solid rgba(118, 171, 207, .72) !important;
|
|
7564
|
+
border-radius: 1.25cqw;
|
|
7565
|
+
box-shadow: inset 0 1px 0 #fff, 0 3px 0 rgba(25, 58, 88, .12), 0 7px 15px rgba(24, 62, 97, .20) !important;
|
|
7566
|
+
text-shadow: none !important;
|
|
7567
|
+
}
|
|
7568
|
+
#rd-hive-viewport .hg-badge::before {
|
|
7569
|
+
width: clamp(4px, .35cqw, 6px);
|
|
7570
|
+
height: clamp(4px, .35cqw, 6px);
|
|
7571
|
+
min-width: 0;
|
|
7572
|
+
min-height: 0;
|
|
7573
|
+
background: #38c7e8;
|
|
7574
|
+
box-shadow: 0 0 7px rgba(57, 206, 236, .48);
|
|
7575
|
+
}
|
|
7576
|
+
#rd-hive-viewport .hg-badge .hg-name {
|
|
7577
|
+
color: #142e49 !important;
|
|
7578
|
+
font-weight: 760;
|
|
7579
|
+
letter-spacing: 0;
|
|
7580
|
+
}
|
|
7581
|
+
#rd-hive-viewport .hg-badge .hg-meta {
|
|
7582
|
+
color: #58748c !important;
|
|
7583
|
+
font-weight: 600;
|
|
7584
|
+
}
|
|
7585
|
+
#rd-hive-viewport .hg-badge.hg-active {
|
|
7586
|
+
border-color: #58d4ee !important;
|
|
7587
|
+
box-shadow: inset 0 0 0 1px rgba(76, 209, 238, .28), 0 0 0 2px rgba(87, 211, 239, .26), 0 6px 14px rgba(23, 89, 130, .19) !important;
|
|
7588
|
+
}
|
|
7589
|
+
#rd-hive-viewport .hg-badge.hg-active::before {
|
|
7590
|
+
background: #18c8a1;
|
|
7591
|
+
box-shadow: 0 0 7px rgba(24, 200, 161, .70);
|
|
7592
|
+
}
|
|
7593
|
+
#rd-hive-viewport .hg-flow-link {
|
|
7594
|
+
height: 3px;
|
|
7595
|
+
background: linear-gradient(90deg, rgba(74, 229, 255, .70), #55eaff);
|
|
7596
|
+
box-shadow: 0 0 6px rgba(40, 224, 255, .68);
|
|
7597
|
+
}
|
|
7598
|
+
#rd-hive-viewport .hg-flow-link::after {
|
|
7599
|
+
top: -3px;
|
|
7600
|
+
border-color: #64eeff;
|
|
7601
|
+
filter: drop-shadow(0 0 3px rgba(59, 221, 255, .72));
|
|
7602
|
+
}
|
|
7603
|
+
#rd-hive-viewport .hg-monitor {
|
|
7604
|
+
background: linear-gradient(145deg, #06213a 0%, #00162a 100%) !important;
|
|
7605
|
+
border: 1px solid rgba(112, 195, 232, .48) !important;
|
|
7606
|
+
border-radius: 2px;
|
|
7607
|
+
box-shadow: inset 0 1px 0 rgba(209, 244, 255, .13), 0 2px 5px rgba(8, 35, 59, .17) !important;
|
|
7608
|
+
}
|
|
7609
|
+
#rd-hive-viewport .hg-monitor:disabled {
|
|
7610
|
+
opacity: .98 !important;
|
|
7611
|
+
}
|
|
7612
|
+
#rd-hive-viewport .hg-monitor-role {
|
|
7613
|
+
color: #f0fbff !important;
|
|
7614
|
+
}
|
|
7615
|
+
#rd-hive-viewport .hg-monitor-status,
|
|
7616
|
+
#rd-hive-viewport .hg-monitor-time {
|
|
7617
|
+
color: #8fe5f4 !important;
|
|
7618
|
+
}
|
|
7619
|
+
#rd-hive-viewport .hg-monitor-tail {
|
|
7620
|
+
color: #60dcf3 !important;
|
|
7621
|
+
opacity: 1;
|
|
7622
|
+
}
|
|
7623
|
+
|
|
7624
|
+
|
|
7625
|
+
/* Reference geometry finishing: taller white phase pills and illuminated monitor baselines. */
|
|
7626
|
+
#rd-hive-viewport .hg-badge {
|
|
7627
|
+
width: 10.8% !important;
|
|
7628
|
+
height: clamp(42px, 4.5cqw, 54px) !important;
|
|
7629
|
+
padding: 4px 6px !important;
|
|
7630
|
+
border-radius: 12px !important;
|
|
7631
|
+
gap: 3px !important;
|
|
7632
|
+
}
|
|
7633
|
+
#rd-hive-viewport .hg-badge .hg-name {
|
|
7634
|
+
font-size: clamp(11px, .98cqw, 15px) !important;
|
|
7635
|
+
line-height: 1.15 !important;
|
|
7636
|
+
}
|
|
7637
|
+
#rd-hive-viewport .hg-badge .hg-meta {
|
|
7638
|
+
font-size: clamp(7px, .54cqw, 9px) !important;
|
|
7639
|
+
line-height: 1 !important;
|
|
7640
|
+
}
|
|
7641
|
+
#rd-hive-viewport .hg-monitor {
|
|
7642
|
+
position: absolute;
|
|
7643
|
+
}
|
|
7644
|
+
#rd-hive-viewport .hg-monitor::after {
|
|
7645
|
+
position: absolute;
|
|
7646
|
+
content: "";
|
|
7647
|
+
left: 4%;
|
|
7648
|
+
right: 4%;
|
|
7649
|
+
bottom: 2px;
|
|
7650
|
+
height: 2px;
|
|
7651
|
+
border-radius: 2px;
|
|
7652
|
+
background: linear-gradient(90deg, #31cce9, #a0f5ff);
|
|
7653
|
+
box-shadow: 0 0 5px rgba(42, 222, 255, .58);
|
|
7654
|
+
pointer-events: none;
|
|
7655
|
+
}
|
|
7656
|
+
|
|
7657
|
+
|
|
7658
|
+
/* High-fidelity default view: use the shipped rendered reference as the scene plate,
|
|
7659
|
+
while clickable HTML controls on the six phase cards and fourteen monitors stay live. */
|
|
7660
|
+
#rd-hive-viewport.hive-mode-3d .hive-reference {
|
|
7661
|
+
display: block !important;
|
|
7662
|
+
z-index: 0;
|
|
7663
|
+
object-fit: contain;
|
|
7664
|
+
}
|
|
7665
|
+
#rd-hive-viewport.hive-mode-live3d .hive-reference {
|
|
7666
|
+
display: none !important;
|
|
7667
|
+
}
|
|
7668
|
+
#rd-hive-viewport .hive-reference-artboard {
|
|
7669
|
+
position: absolute;
|
|
7670
|
+
inset: 0;
|
|
7671
|
+
transform-origin: 50% 50%;
|
|
7672
|
+
will-change: transform;
|
|
7673
|
+
}
|
|
7674
|
+
#rd-hive-viewport.hive-mode-3d .hive-gl-live {
|
|
7675
|
+
z-index: 0;
|
|
7676
|
+
}
|
|
7677
|
+
#rd-hive-viewport.hive-mode-3d .hg-badge {
|
|
7678
|
+
width: 10.74% !important;
|
|
7679
|
+
height: 7.57% !important;
|
|
7680
|
+
padding: 2px 4px !important;
|
|
7681
|
+
gap: 2px !important;
|
|
7682
|
+
border-radius: 1.15cqw !important;
|
|
7683
|
+
background: linear-gradient(180deg, #fff 0%, #f6faff 100%) !important;
|
|
7684
|
+
border: 1px solid rgba(120, 171, 207, .78) !important;
|
|
7685
|
+
box-shadow: inset 0 1px 0 #fff, 0 3px 0 rgba(25, 58, 88, .12), 0 7px 15px rgba(24, 62, 97, .19) !important;
|
|
7686
|
+
color: #142e49 !important;
|
|
7687
|
+
}
|
|
7688
|
+
#rd-hive-viewport.hive-mode-3d .hg-badge .hg-name {
|
|
7689
|
+
color: #142e49 !important;
|
|
7690
|
+
font-size: clamp(10px, .98cqw, 15px) !important;
|
|
7691
|
+
line-height: 1.08 !important;
|
|
7692
|
+
}
|
|
7693
|
+
#rd-hive-viewport.hive-mode-3d .hg-badge .hg-meta {
|
|
7694
|
+
color: #58748c !important;
|
|
7695
|
+
font-size: clamp(6px, .49cqw, 8px) !important;
|
|
7696
|
+
line-height: 1 !important;
|
|
7697
|
+
}
|
|
7698
|
+
#rd-hive-viewport.hive-mode-3d .hg-flow-link {
|
|
7699
|
+
display: none !important;
|
|
7700
|
+
}
|
|
7701
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor {
|
|
7702
|
+
padding: 1px 2px;
|
|
7703
|
+
border-radius: 3px;
|
|
7704
|
+
background: linear-gradient(180deg, #06213a 0%, #001327 100%);
|
|
7705
|
+
border: 1px solid rgba(101, 194, 233, .58);
|
|
7706
|
+
box-shadow: inset 0 1px 0 rgba(215, 247, 255, .14), 0 2px 4px rgba(0, 18, 35, .22);
|
|
7707
|
+
opacity: 1;
|
|
7708
|
+
}
|
|
7709
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor-role {
|
|
7710
|
+
font-size: clamp(5px, .53cqw, 8px);
|
|
7711
|
+
line-height: 1.03;
|
|
7712
|
+
color: #f0fbff;
|
|
7713
|
+
}
|
|
7714
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor-status,
|
|
7715
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor-time {
|
|
7716
|
+
font-size: clamp(4px, .35cqw, 6px);
|
|
7717
|
+
line-height: 1;
|
|
7718
|
+
color: #6cdbf5;
|
|
7719
|
+
}
|
|
7720
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor-tail {
|
|
7721
|
+
font-size: clamp(4px, .34cqw, 6px);
|
|
7722
|
+
line-height: 1;
|
|
7723
|
+
color: #87e8f7;
|
|
7724
|
+
}
|
|
7725
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor::after {
|
|
7726
|
+
height: 2px;
|
|
7727
|
+
bottom: 1px;
|
|
7728
|
+
opacity: .92;
|
|
7729
|
+
}
|
|
7730
|
+
#rd-hive-viewport.hive-mode-3d .hg-monitor:disabled {
|
|
7731
|
+
opacity: 1 !important;
|
|
7732
|
+
}
|
|
7733
|
+
#rd-hive-viewport.hive-mode-live3d {
|
|
7734
|
+
background: linear-gradient(180deg, #eaf5ff 0%, #dcecf9 58%, #cfe1ef 100%);
|
|
7735
|
+
}
|
|
7736
|
+
#rd-hive-viewport.hive-mode-live3d .hg-badge {
|
|
7737
|
+
background: linear-gradient(180deg, #fff 0%, #f5f9ff 100%);
|
|
7738
|
+
color: #142e49;
|
|
7739
|
+
border: 1px solid rgba(118, 171, 207, .72);
|
|
7740
|
+
}
|
|
7741
|
+
|
|
7742
|
+
/* In real WebGL mode the monitor glass/face is rendered in 3D. Keep DOM text overlays
|
|
7743
|
+
transparent so foreground robots correctly occlude the physical screen through depth testing. */
|
|
7744
|
+
#rd-hive-viewport.hive-mode-live3d .hg-monitor {
|
|
7745
|
+
background: transparent !important;
|
|
7746
|
+
border-color: rgba(94, 207, 235, .24) !important;
|
|
7747
|
+
box-shadow: none !important;
|
|
7748
|
+
backdrop-filter: none !important;
|
|
7749
|
+
}
|
|
7750
|
+
#rd-hive-viewport.hive-mode-live3d .hg-monitor::after { display: none !important; }
|
|
7751
|
+
#rd-hive-viewport.hive-mode-live3d .hg-monitor-role,
|
|
7752
|
+
#rd-hive-viewport.hive-mode-live3d .hg-monitor-status,
|
|
7753
|
+
#rd-hive-viewport.hive-mode-live3d .hg-monitor-time,
|
|
7754
|
+
#rd-hive-viewport.hive-mode-live3d .hg-monitor-tail {
|
|
7755
|
+
text-shadow: 0 1px 2px rgba(0, 12, 24, .92);
|
|
7756
|
+
}
|
|
7757
|
+
|
|
7758
|
+
/* Fullscreen applies to the reference artwork, live WebGL and 2D fallback alike. */
|
|
7759
|
+
.hive-scene-stage { min-width: 0; }
|
|
7760
|
+
.hive-scene-fullscreen { min-width: 64px; }
|
|
7761
|
+
.hive-scene-stage:fullscreen,
|
|
7762
|
+
.hive-scene-stage.is-fullscreen {
|
|
7763
|
+
display: flex; flex-direction: column; gap: 8px;
|
|
7764
|
+
width: 100vw; height: 100vh; min-width: 0; max-width: none;
|
|
7765
|
+
margin: 0; padding: 12px 16px 16px; box-sizing: border-box; overflow: hidden;
|
|
7766
|
+
border: 0; border-radius: 0; background: #eaf3fa; color: #183750;
|
|
7767
|
+
}
|
|
7768
|
+
.hive-scene-stage:fullscreen .hive-scene-tools,
|
|
7769
|
+
.hive-scene-stage.is-fullscreen .hive-scene-tools {
|
|
7770
|
+
flex: 0 0 auto; flex-wrap: wrap; width: 100%; min-height: 38px;
|
|
7771
|
+
margin: 0; gap: 8px; box-sizing: border-box;
|
|
7772
|
+
}
|
|
7773
|
+
.hive-scene-stage:fullscreen .hive-viewport,
|
|
7774
|
+
.hive-scene-stage.is-fullscreen .hive-viewport {
|
|
7775
|
+
flex: 1 1 auto; width: 100%; height: auto; min-height: 0;
|
|
7776
|
+
aspect-ratio: auto; border-radius: 12px;
|
|
7777
|
+
}
|
|
7778
|
+
.hive-scene-stage:fullscreen .hive-viewport .hive-reference,
|
|
7779
|
+
.hive-scene-stage.is-fullscreen .hive-viewport .hive-reference {
|
|
7780
|
+
object-fit: contain; background: #eaf3fa;
|
|
7781
|
+
}
|
|
7782
|
+
.hive-scene-stage:fullscreen .hive-viewport.hive-mode-2d,
|
|
7783
|
+
.hive-scene-stage.is-fullscreen .hive-viewport.hive-mode-2d {
|
|
7784
|
+
flex: 1 1 auto; height: auto; min-height: 0; overflow: auto;
|
|
7785
|
+
}
|
|
7786
|
+
@media (max-width: 680px) {
|
|
7787
|
+
.hive-scene-stage:fullscreen,
|
|
7788
|
+
.hive-scene-stage.is-fullscreen { padding: 8px; gap: 6px; }
|
|
7789
|
+
.hive-scene-stage:fullscreen .hive-scene-tools,
|
|
7790
|
+
.hive-scene-stage.is-fullscreen .hive-scene-tools { gap: 5px; }
|
|
7791
|
+
.hive-scene-stage:fullscreen .hive-scene-hint,
|
|
7792
|
+
.hive-scene-stage.is-fullscreen .hive-scene-hint { display: none; }
|
|
7793
|
+
}
|
|
7794
|
+
|
|
7795
|
+
/* ---- 步骤行窄主列折行(追加于文件尾防并行重排) ----
|
|
7796
|
+
* 步骤行定宽列总和 ≈783px(序号26+角色92+执行者118+st-model 77+st-prov 200+耗时42
|
|
7797
|
+
* +状态chip 44+日志按钮60+8间隙96+内边距28),浏览器缩放/窄窗/检查器打开都会把
|
|
7798
|
+
* 主列压到 783 以下——行放不下就溢出 .step(min-width:auto),传导到
|
|
7799
|
+
* #rd-pane-steps 长出横向滚动条(1010 实案:150% 缩放下 CLI 日志按钮被右缘切半)。
|
|
7800
|
+
* 用容器查询按「面板实际宽度」而非视口折行:≤820px 时与 ≤900 移动端同款允许换行,
|
|
7801
|
+
* role/who 允许收缩(本就带省略号);宽主列保持单行形态不动。容器查询 Edge 105+,
|
|
7802
|
+
* 老浏览器忽略整段=维持现状,优雅降级。 */
|
|
7803
|
+
#rd-steps { container-type: inline-size; }
|
|
7804
|
+
@container (max-width: 820px) {
|
|
7805
|
+
.step { flex-wrap: wrap; row-gap: 6px; }
|
|
7806
|
+
.step .role { flex: 0 1 92px; }
|
|
7807
|
+
.step .who { flex: 0 1 118px; }
|
|
7808
|
+
}
|