/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:51:/home/yeff/public_html/devon/panel
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:52:/home/yeff/public_html/devon/panel/.htaccess
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:53:/home/yeff/public_html/devon/panel/.htaccess.bak.disable_basic_auth_20260407_203806
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:54:/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:55:/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/docker_runtime.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:56:/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/host_runtime.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:57:/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/runtime_status.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:58:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:59:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:60:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:61:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:62:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:63:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/subcategory_pipelines.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:64:/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:65:/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:66:/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/subcategory_pipelines.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:67:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:68:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:69:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:70:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:71:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:72:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:73:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/subcategory_pipelines.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:74:/home/yeff/public_html/devon/panel/_ops
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:75:/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:76:/home/yeff/public_html/devon/panel/_restore_layout
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:77:/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:78:/home/yeff/public_html/devon/panel/_rollback
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:79:/home/yeff/public_html/devon/panel/_rollback/20260325_185438
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:80:/home/yeff/public_html/devon/panel/assets
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:81:/home/yeff/public_html/devon/panel/assets/css
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:82:/home/yeff/public_html/devon/panel/assets/js
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:83:/home/yeff/public_html/devon/panel/data
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:84:/home/yeff/public_html/devon/panel/data/acs.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:85:/home/yeff/public_html/devon/panel/data/app_security_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:86:/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:87:/home/yeff/public_html/devon/panel/data/brps.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:88:/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:89:/home/yeff/public_html/devon/panel/data/card_contract_minimums.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:90:/home/yeff/public_html/devon/panel/data/cas.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:91:/home/yeff/public_html/devon/panel/data/ccc.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:92:/home/yeff/public_html/devon/panel/data/cdms.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:93:/home/yeff/public_html/devon/panel/data/cfc.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:94:/home/yeff/public_html/devon/panel/data/cgs.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:95:/home/yeff/public_html/devon/panel/data/css.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:96:/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:97:/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:98:/home/yeff/public_html/devon/panel/data/devon_continuity.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:99:/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:100:/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:101:/home/yeff/public_html/devon/panel/data/docker_runtime.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:102:/home/yeff/public_html/devon/panel/data/host_runtime.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:103:/home/yeff/public_html/devon/panel/data/host_security_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:104:/home/yeff/public_html/devon/panel/data/hub_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:105:/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:106:/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:107:/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:108:/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:109:/home/yeff/public_html/devon/panel/data/lpc.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:110:/home/yeff/public_html/devon/panel/data/master_architecture_index.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:111:/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:112:/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:113:/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:114:/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:115:/home/yeff/public_html/devon/panel/data/memory_canonical_architecture.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:116:/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:117:/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:118:/home/yeff/public_html/devon/panel/data/module_security_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:119:/home/yeff/public_html/devon/panel/data/monitoring_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:120:/home/yeff/public_html/devon/panel/data/ncs.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:121:/home/yeff/public_html/devon/panel/data/nrc.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:122:/home/yeff/public_html/devon/panel/data/oac.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:123:/home/yeff/public_html/devon/panel/data/ofc.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:124:/home/yeff/public_html/devon/panel/data/ofms.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:125:/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:126:/home/yeff/public_html/devon/panel/data/panel_component_contract.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:127:/home/yeff/public_html/devon/panel/data/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:128:/home/yeff/public_html/devon/panel/data/panel_data_contract.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:129:/home/yeff/public_html/devon/panel/data/panel_manifest.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:130:/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:131:/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:132:/home/yeff/public_html/devon/panel/data/panel_sync_contract.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:133:/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:134:/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:135:/home/yeff/public_html/devon/panel/data/project_progress.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:136:/home/yeff/public_html/devon/panel/data/project_progress_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:137:/home/yeff/public_html/devon/panel/data/project_progress_model.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:138:/home/yeff/public_html/devon/panel/data/project_scope_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:139:/home/yeff/public_html/devon/panel/data/ris.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:140:/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:141:/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:142:/home/yeff/public_html/devon/panel/data/runtime_snapshot.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:143:/home/yeff/public_html/devon/panel/data/runtime_status.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:144:/home/yeff/public_html/devon/panel/data/sandbox_environment_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:145:/home/yeff/public_html/devon/panel/data/sec.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:146:/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:147:/home/yeff/public_html/devon/panel/data/server_registry_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:148:/home/yeff/public_html/devon/panel/data/sse_bridge_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:149:/home/yeff/public_html/devon/panel/data/sts.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:150:/home/yeff/public_html/devon/panel/data/subcategory_pipelines.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:151:/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:152:/home/yeff/public_html/devon/panel/index.html
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:153:/home/yeff/public_html/devon/panel/index.php
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/01_root_tree.txt:154:/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:9:/home/yeff/public_html/devon/panel
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:10:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:11:/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:12:/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:13:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:14:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:15:/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:16:/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:17:/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:18:/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:19:/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:20:/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:21:/home/yeff/public_html/devon/panel/assets/css/panel.css
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:22:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:23:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:24:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:25:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:26:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:27:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:28:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:29:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:30:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:31:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:32:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:33:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:34:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:35:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:36:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:37:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:38:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:39:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:40:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:41:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:42:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:43:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:44:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:45:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:46:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:47:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:48:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:49:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:50:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:51:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:52:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:53:/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:54:/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:55:/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:56:/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:57:/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:58:/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:59:/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:60:/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:61:/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:62:/home/yeff/public_html/devon/panel/assets/js/panel.js
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:63:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-103513
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:64:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:65:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:66:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:67:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:68:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:69:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:70:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:71:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:72:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:73:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:74:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:75:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:76:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:77:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:78:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:79:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:80:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:81:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:82:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:83:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:84:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:85:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:86:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:87:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:88:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:89:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:90:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:91:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:92:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:93:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:94:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:95:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:96:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:97:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:98:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:99:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:100:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:101:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:102:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:103:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:104:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:105:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:106:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:107:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:108:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:109:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:110:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:111:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:112:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:113:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:114:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:115:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:116:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:117:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:118:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:119:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:120:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:121:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:122:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:123:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:124:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:125:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:126:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:127:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:128:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:129:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:130:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:131:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:132:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:133:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:134:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:135:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:136:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:137:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:138:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:139:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:140:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:141:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:142:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:143:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:144:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:145:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:146:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:147:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:148:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:149:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:150:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:151:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:152:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:153:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:154:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:155:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:156:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:157:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:158:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:159:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:160:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:161:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:162:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:163:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:164:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:165:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:166:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:167:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:168:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:169:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:170:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:171:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:172:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:173:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:174:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:175:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:176:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:177:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:178:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:179:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:180:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:181:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:182:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:183:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:184:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:185:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:186:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:187:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:188:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:189:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:190:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:191:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:192:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:193:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:194:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:195:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:196:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:197:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:198:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:199:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:200:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:201:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:202:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:203:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:204:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:205:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:206:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:207:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:208:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:209:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:210:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:211:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:212:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:213:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:214:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:215:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:216:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:217:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:218:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:219:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:220:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:221:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:222:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:223:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:224:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:225:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:226:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:227:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:228:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:229:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:230:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:231:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:232:/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:233:/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:234:/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:235:/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:236:/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:237:/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:238:/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:239:/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:240:/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:241:/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:242:/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:243:/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:244:/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:245:/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:246:/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:247:/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:248:/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:249:/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:250:/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:251:/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:252:/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:253:/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:254:/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:255:/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:256:/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:257:/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:258:/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:259:/home/yeff/public_html/devon/panel/data/devon_continuity.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:260:/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:261:/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:262:/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:263:/home/yeff/public_html/devon/panel/data/panel_component_contract.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:264:/home/yeff/public_html/devon/panel/data/panel_content_index.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:265:/home/yeff/public_html/devon/panel/data/panel_data_contract.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:266:/home/yeff/public_html/devon/panel/data/panel_manifest.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:267:/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:268:/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:269:/home/yeff/public_html/devon/panel/data/panel_sync_contract.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:270:/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:271:/home/yeff/public_html/devon/panel/index.html
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:272:/home/yeff/public_html/devon/panel/index.php
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/02_ui_candidates.txt:273:/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:34:- /home/yeff/public_html/devon/panel/data
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:38:- panel/data = estado do sistema
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:95:Decisão: manter separação formal entre panel/data e canon
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:143:  - `display_in_cards`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:144:  - `display_in_donuts`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:149:- `stage_rollup` is now a sovereign runtime row type and its `progress_pct` is the canonical source for stage completion in the UI.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:150:- `project_progress.json` remains the sovereign source for global project completion.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:151:- `export_panel_runtime.sh` was validated as the Devon → Waresite publication bridge for:
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:156:  - `project_progress.json`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:165:- `display_in_cards`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:166:- `display_in_donuts`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:172:- Global project completion must read from `project_progress.json`.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:173:- Stage completion must read from `stage_rollup.progress_pct`.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:174:- Subcategory cards must not render percentage donuts when `completionRows == 0`.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:182:3. `export_panel_runtime.sh` synchronizes runtime artifacts to Waresite
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:183:4. Operator Panel reads published semantics without manual donut patching for new server-side evidence
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:258:- phase ownership
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:268:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:287:- panel/data = system state
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:298:- panel/documentation bridge artifacts
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:323:- phase origin preserves real installation and configuration sequence
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:339:- Limpeza completa de arquivos órfãos no Waresite /panel/data
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:342:- monitoring_canonical.json criado — define CPU, memory, disk, network, containers, nginx, security
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:345:- hub_index.json atualizado: 10 phases, 12 categories, monitoring_observability adicionado
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:346:- project_progress_canonical.json e project_progress_model.json registrados em overview_scope
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:348:- Export script Devon corrigido para sincronizar canon completo (panel_export/current)
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:354:- Após SSE: remover export_panel_runtime.sh
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:364:- Devon is already emitting real runtime for host, docker, pipeline and project progress.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:372:- This makes some donuts mathematically calculated but semantically invalid.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:416:- Devon server is the origin of real runtime, host, container, and execution data.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:420:- Canonical root: `/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:423:- Canonical continuity file: `/home/yeff/public_html/devon/panel/data/devon_continuity.md`
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:428:- No fake status or fake progress.
/home/yeff/public_html/devon/_evidence/ui_audit_20260409_101142/00_context_dump.txt:456:  - Devon: runtime origin, host state, containers, execution
/home/yeff/public_html/devon/context_dump.sh:6:DATA="$BASE/panel/data"
/home/yeff/public_html/devon/login.php:17:        header("Location: /panel/");
/home/yeff/public_html/devon/login.php:28:<meta name="viewport" content="width=device-width, initial-scale=1.0">
/home/yeff/public_html/devon/login.php:35:  display:flex;
/home/yeff/public_html/devon/canon/03_RULES_OF_OPERATION.md:31:- /home/yeff/public_html/devon/panel/data
/home/yeff/public_html/devon/canon/03_RULES_OF_OPERATION.md:35:- panel/data = estado do sistema
/home/yeff/public_html/devon/canon/04_PATCH_LOG.md:11:  - /home/yeff/public_html/devon/panel/data
/home/yeff/public_html/devon/canon/04_PATCH_LOG.md.bak.close_context_checkpoint_20260409_085624:11:  - /home/yeff/public_html/devon/panel/data
/home/yeff/public_html/devon/canon/06_DECISIONS.md:22:Decisão: manter separação formal entre panel/data e canon
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:250:    .card{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:837:  const res = await fetch('../panel/data/hub_index.json');
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:842:let state = { phaseId: null, categoryId: null, docId: null, mode: "architecture" };
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:845:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:846:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:847:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:848:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:849:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:850:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:855:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:874:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:875:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:881:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:906:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:907:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:910:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:912:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:913:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:914:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:916:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:918:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:919:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:926:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:951:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:968:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:981:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:982:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:984:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:985:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:986:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:988:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:989:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:995:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1002:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1008:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1009:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1010:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1073:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1127:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1147:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1148:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1155:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1177:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html.loaddocsource_restore.20260329_182101:1200:  state.phaseId = HUB.phases[0].id;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:250:    .card{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:834:  "phases": [
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:836:      "id": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:855:      "id": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:876:      "id": "phase-03",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:897:      "id": "phase-04",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:900:      "summary": "container topology, isolation and host versus container runtime boundaries.",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:901:      "badge": "containerization_canon",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:915:      "id": "phase-05",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:934:      "id": "phase-06",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:952:      "id": "phase-07",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:970:      "id": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:989:      "id": "phase-09",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1012:      "badge": "phase 01",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1017:          "path": "../panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1018:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1022:          "depends_on": "panel_manifest, project_scope, all phases, all categories",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1027:          "id": "panel_manifest",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1029:          "path": "../panel/data/panel_manifest.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1030:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1032:          "role": "Entry manifest and machine-readable panel entry point.",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1036:          "architecture_view": "Entry manifest for the panel and documentation surface."
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1041:          "path": "../panel/data/project_scope_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1042:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1053:          "path": "../panel/data/devon_panel_chat_checkpoint.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1054:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1068:      "badge": "phase 02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1073:          "path": "../panel/data/cas.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1074:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1085:          "path": "../panel/data/cgs.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1086:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1097:          "path": "../panel/data/acs.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1098:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1109:          "path": "../panel/data/css.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1110:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1114:          "depends_on": "master_architecture_index, panel_data_contract",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1115:          "used_by": "documentation hub, panel",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1121:          "path": "../panel/data/ncs.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1122:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1133:          "path": "../panel/data/sts.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1134:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1145:          "path": "../panel/data/brps.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1146:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1157:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1158:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1169:          "path": "../panel/data/ris.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1170:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1181:          "path": "../panel/data/ofms.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1182:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1196:      "badge": "phase 03",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1201:          "path": "../panel/data/cfc.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1202:          "phase": "phase-03",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1213:      "id": "containerization",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1215:      "sub": "container topology, isolation and host versus container boundary.",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1216:      "badge": "phase 04",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1221:          "path": "../panel/data/ccc.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1222:          "phase": "phase-04",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1223:          "layer": "containerization",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1236:      "badge": "phase 05",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1241:          "path": "../panel/data/lpc.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1242:          "phase": "phase-05",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1256:      "badge": "phase 06",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1261:          "path": "../panel/data/nrc.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1262:          "phase": "phase-06",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1276:      "badge": "phase 07",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1281:          "path": "../panel/data/oac.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1282:          "phase": "phase-07",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1296:      "badge": "phase 08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1301:          "path": "../panel/data/sec.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1302:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1313:          "path": "../panel/data/host_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1314:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1325:          "path": "../panel/data/app_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1326:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1337:          "path": "../panel/data/module_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1338:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1349:          "path": "../panel/data/runtime_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1350:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1361:          "path": "../panel/data/delivery_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1362:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1373:          "path": "../panel/data/approval_canonization_policy.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1374:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1385:          "path": "../panel/data/memory_isolation_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1386:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1397:          "path": "../panel/data/security_monitoring_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1398:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1412:      "badge": "phase 09",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1417:          "path": "../panel/data/ofc.md",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1418:          "phase": "phase-09",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1437:          "path": "../panel/data/memory_canonical_architecture.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1438:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1449:          "path": "../panel/data/memory_lifecycle_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1450:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1461:          "path": "../panel/data/learning_governance_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1462:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1473:          "path": "../panel/data/planning_reasoning_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1474:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1485:          "path": "../panel/data/tool_execution_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1486:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1497:          "path": "../panel/data/knowledge_ingestion_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1498:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1512:      phaseId: HUB.phases[0].id,
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1519:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1520:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1521:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1522:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1523:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1524:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1529:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1548:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1549:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1555:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1580:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1581:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1584:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1586:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1587:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1588:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1590:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1592:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1593:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1600:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1625:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1642:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1655:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1656:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1658:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1659:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1660:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1662:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1663:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1669:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1676:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1682:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1683:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1684:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1772:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1826:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1846:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1847:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1854:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.fix_schema.20260329_180114:1876:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:250:    .card{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:837:  const res = await fetch('../panel/data/hub_index.json');
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:843:      phaseId: HUB.phases[0].id,
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:850:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:851:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:852:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:853:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:854:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:855:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:860:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:879:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:880:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:886:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:911:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:912:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:915:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:917:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:918:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:919:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:921:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:923:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:924:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:931:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:956:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:973:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:986:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:987:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:989:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:990:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:991:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:993:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:994:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1000:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1007:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1013:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1014:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1015:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1103:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1157:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1177:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1178:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1185:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.bootfix.20260329_181133:1207:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:250:    .card{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:834:  "phases": [
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:836:      "id": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:855:      "id": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:876:      "id": "phase-03",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:897:      "id": "phase-04",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:900:      "summary": "container topology, isolation and host versus container runtime boundaries.",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:901:      "badge": "containerization_canon",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:915:      "id": "phase-05",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:934:      "id": "phase-06",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:952:      "id": "phase-07",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:970:      "id": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:989:      "id": "phase-09",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1012:      "badge": "phase 01",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1017:          "path": "../panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1018:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1023:            "panel_manifest",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1032:          "id": "panel_manifest",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1034:          "path": "../panel/data/panel_manifest.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1035:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1037:          "role": "Entry manifest and machine-readable panel entry point.",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1043:          "architecture_view": "Entry manifest for the panel and documentation surface.",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1050:          "path": "../panel/data/project_scope_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1051:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1066:          "path": "../panel/data/devon_panel_chat_checkpoint.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1067:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1085:      "badge": "phase 02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1090:          "path": "../panel/data/cas.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1091:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1112:          "path": "../panel/data/cgs.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1113:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1128:          "path": "../panel/data/acs.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1129:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1144:          "path": "../panel/data/css.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1145:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1160:          "path": "../panel/data/ncs.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1161:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1176:          "path": "../panel/data/sts.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1177:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1195:          "path": "../panel/data/brps.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1196:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1211:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1212:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1227:          "path": "../panel/data/ris.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1228:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1244:          "path": "../panel/data/ofms.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1245:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1264:      "badge": "phase 03",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1269:          "path": "../panel/data/cfc.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1270:          "phase": "phase-03",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1290:      "id": "containerization",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1292:      "sub": "container topology, isolation and host versus container boundary.",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1293:      "badge": "phase 04",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1298:          "path": "../panel/data/ccc.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1299:          "phase": "phase-04",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1300:          "layer": "containerization",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1318:      "badge": "phase 05",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1323:          "path": "../panel/data/lpc.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1324:          "phase": "phase-05",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1342:      "badge": "phase 06",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1347:          "path": "../panel/data/nrc.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1348:          "phase": "phase-06",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1367:      "badge": "phase 07",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1372:          "path": "../panel/data/oac.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1373:          "phase": "phase-07",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1392:      "badge": "phase 08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1397:          "path": "../panel/data/sec.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1398:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1422:          "path": "../panel/data/host_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1423:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1438:          "path": "../panel/data/app_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1439:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1454:          "path": "../panel/data/module_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1455:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1470:          "path": "../panel/data/runtime_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1471:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1486:          "path": "../panel/data/delivery_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1487:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1502:          "path": "../panel/data/approval_canonization_policy.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1503:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1518:          "path": "../panel/data/memory_isolation_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1519:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1534:          "path": "../panel/data/security_monitoring_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1535:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1553:      "badge": "phase 09",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1558:          "path": "../panel/data/ofc.md",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1559:          "phase": "phase-09",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1583:          "path": "../panel/data/memory_canonical_architecture.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1584:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1599:          "path": "../panel/data/memory_lifecycle_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1600:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1615:          "path": "../panel/data/learning_governance_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1616:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1631:          "path": "../panel/data/planning_reasoning_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1632:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1647:          "path": "../panel/data/tool_execution_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1648:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1663:          "path": "../panel/data/knowledge_ingestion_canonical.json",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1664:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1682:      phaseId: HUB.phases[0].id,
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1689:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1690:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1691:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1692:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1693:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1694:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1699:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1718:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1719:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1725:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1750:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1751:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1754:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1756:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1757:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1758:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1760:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1762:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1763:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1770:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1795:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1812:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1825:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1826:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1828:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1829:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1830:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1832:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1833:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1839:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1846:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1852:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1853:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1854:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1942:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:1996:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:2016:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:2017:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:2024:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.fetch.20260329_181019:2046:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:250:    .card{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:837:  const res = await fetch('../panel/data/hub_index.json');
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:843:      phaseId: HUB.phases[0].id,
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:850:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:851:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:852:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:853:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:854:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:855:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:860:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:879:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:880:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:886:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:911:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:912:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:915:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:917:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:918:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:919:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:921:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:923:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:924:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:931:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:956:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:973:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:986:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:987:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:989:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:990:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:991:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:993:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:994:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1000:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1007:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1013:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1014:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1015:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1078:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1132:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1152:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1153:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1160:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.statefix.20260329_181602:1182:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html:7:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html:13:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html:14:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html:43:      display:grid;
/home/yeff/public_html/devon/docs/index.html:44:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html:49:    .sidebar{
/home/yeff/public_html/devon/docs/index.html:57:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html:58:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html:59:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:63:      min-width:0;
/home/yeff/public_html/devon/docs/index.html:74:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html:75:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html:76:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:79:    .sidebar,
/home/yeff/public_html/devon/docs/index.html:84:    .sidebar::-webkit-scrollbar,
/home/yeff/public_html/devon/docs/index.html:88:    .sidebar::-webkit-scrollbar-track,
/home/yeff/public_html/devon/docs/index.html:92:    .sidebar::-webkit-scrollbar-thumb,
/home/yeff/public_html/devon/docs/index.html:99:      display:flex;
/home/yeff/public_html/devon/docs/index.html:100:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html:102:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:108:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html:112:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html:119:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:127:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html:128:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html:134:      display:grid;
/home/yeff/public_html/devon/docs/index.html:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:143:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:144:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html:148:      display:flex;
/home/yeff/public_html/devon/docs/index.html:149:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:150:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:156:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:157:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html:160:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html:164:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html:169:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:171:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html:179:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html:182:        flex:none;
/home/yeff/public_html/devon/docs/index.html:190:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html:191:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:193:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html:202:        min-width:0;
/home/yeff/public_html/devon/docs/index.html:203:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html:210:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html:220:      display:flex;
/home/yeff/public_html/devon/docs/index.html:221:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:228:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html:230:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html:235:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html:242:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html:243:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html:247:      display:flex;
/home/yeff/public_html/devon/docs/index.html:249:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html:250:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html:263:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html:264:      display:grid;
/home/yeff/public_html/devon/docs/index.html:265:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html:270:    .card{
/home/yeff/public_html/devon/docs/index.html:276:      min-width:0;
/home/yeff/public_html/devon/docs/index.html:278:    .card-top{
/home/yeff/public_html/devon/docs/index.html:279:      display:flex;
/home/yeff/public_html/devon/docs/index.html:280:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:285:    .card-title{
/home/yeff/public_html/devon/docs/index.html:286:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html:290:    .card-sub{
/home/yeff/public_html/devon/docs/index.html:292:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:296:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html:297:      display:flex;
/home/yeff/public_html/devon/docs/index.html:300:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html:301:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html:306:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html:309:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html:313:    .phase{
/home/yeff/public_html/devon/docs/index.html:319:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html:320:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html:321:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html:324:      display:flex;
/home/yeff/public_html/devon/docs/index.html:325:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html:326:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html:327:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:331:    .phase.active{
/home/yeff/public_html/devon/docs/index.html:336:    .phase-step{
/home/yeff/public_html/devon/docs/index.html:338:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html:339:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html:344:    .phase-name{
/home/yeff/public_html/devon/docs/index.html:346:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html:350:      display:flex;
/home/yeff/public_html/devon/docs/index.html:351:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:354:    .phase p{
/home/yeff/public_html/devon/docs/index.html:357:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:362:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html:365:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html:366:      display:flex;
/home/yeff/public_html/devon/docs/index.html:369:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html:370:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html:375:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html:378:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html:387:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html:388:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html:389:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html:391:      display:flex;
/home/yeff/public_html/devon/docs/index.html:392:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html:393:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html:394:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:400:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html:409:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html:410:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html:414:      display:flex;
/home/yeff/public_html/devon/docs/index.html:415:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:420:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:426:      display:grid;
/home/yeff/public_html/devon/docs/index.html:427:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html:432:      display:grid;
/home/yeff/public_html/devon/docs/index.html:442:      display:flex;
/home/yeff/public_html/devon/docs/index.html:450:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html:455:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html:458:      display:flex;
/home/yeff/public_html/devon/docs/index.html:460:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html:468:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:477:      display:grid;
/home/yeff/public_html/devon/docs/index.html:481:      display:grid;
/home/yeff/public_html/devon/docs/index.html:485:      display:grid;
/home/yeff/public_html/devon/docs/index.html:486:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html:488:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html:492:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html:494:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html:506:      display:flex;
/home/yeff/public_html/devon/docs/index.html:508:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html:520:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html:525:    .rail-card{
/home/yeff/public_html/devon/docs/index.html:533:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html:535:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html:537:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html:540:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html:560:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:564:      display:grid;
/home/yeff/public_html/devon/docs/index.html:569:      display:flex;
/home/yeff/public_html/devon/docs/index.html:577:      flex:none;
/home/yeff/public_html/devon/docs/index.html:585:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:588:    .source-grid{
/home/yeff/public_html/devon/docs/index.html:589:      display:grid;
/home/yeff/public_html/devon/docs/index.html:598:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html:602:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html:603:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html:607:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html:608:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html:609:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html:615:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html:616:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html:617:      .phase{
/home/yeff/public_html/devon/docs/index.html:618:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html:619:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html:620:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html:624:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html:625:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html:626:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html:631:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html:632:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html:633:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html:634:      .phase{
/home/yeff/public_html/devon/docs/index.html:635:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html:636:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html:637:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html:641:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html:642:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html:643:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html:646:      .phase p{
/home/yeff/public_html/devon/docs/index.html:654:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html:674:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html:677:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html:678:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html:679:          <a class="btn" href="../panel/data/devon_continuity.md" target="_blank" rel="noopener noreferrer">Continuity MD</a>
/home/yeff/public_html/devon/docs/index.html:683:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html:684:        <article class="card">
/home/yeff/public_html/devon/docs/index.html:685:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html:687:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html:688:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html:692:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html:695:        <article class="card">
/home/yeff/public_html/devon/docs/index.html:696:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html:698:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html:699:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html:703:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html:709:          <article class="card">
/home/yeff/public_html/devon/docs/index.html:710:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html:712:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html:713:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html:715:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html:717:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html:720:          <article class="card">
/home/yeff/public_html/devon/docs/index.html:721:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html:723:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html:724:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html:744:          <article class="card">
/home/yeff/public_html/devon/docs/index.html:745:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html:747:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html:748:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html:755:          <article class="card">
/home/yeff/public_html/devon/docs/index.html:756:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html:758:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html:759:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html:765:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html:770:              <span class="chip">runtime in operator panel</span>
/home/yeff/public_html/devon/docs/index.html:778:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html:780:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html:783:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html:785:        <p>Documentation Hub audits canonical definition, category coverage, authority ownership, phase and layer binding, dependencies and documentation completion gaps. Operator Panel audits real implementation state, runtime evidence, health, telemetry, pipeline execution and server-side materialization.</p>
/home/yeff/public_html/devon/docs/index.html:788:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html:799:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html:805:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html:807:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html:808:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html:809:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html:810:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html:811:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:812:          <div class="source-item">../panel/data/devon_continuity.md</div>
/home/yeff/public_html/devon/docs/index.html:814:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html:815:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html:816:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html:817:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html:818:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html:819:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html:820:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html:821:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html:822:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html:823:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html:825:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html:826:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html:827:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html:828:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html:829:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html:830:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html:831:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html:833:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:834:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:835:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:836:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:837:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:838:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html:839:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:840:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:842:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html:843:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:844:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:845:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:846:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:847:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:849:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html:850:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html:851:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html:852:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html:853:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html:854:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html:855:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html:856:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html:857:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html:858:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:859:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:860:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html:871:  const res = await fetch('../panel/data/hub_index.json');
/home/yeff/public_html/devon/docs/index.html:876:let state = { phaseId: null, categoryId: null, docId: null, mode: "architecture" };
/home/yeff/public_html/devon/docs/index.html:879:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html:880:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html:881:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html:882:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html:883:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html:884:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html:889:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html:910:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html:911:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html:917:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html:931:      const phases = Array.isArray(HUB.phases) ? HUB.phases : [];
/home/yeff/public_html/devon/docs/index.html:943:          if (!doc.phase) docsMissingPhase.push(doc.label || doc.id || "unnamed-doc");
/home/yeff/public_html/devon/docs/index.html:950:        totalPhases: phases.length,
/home/yeff/public_html/devon/docs/index.html:983:        { title: "Phase binding gaps", text: docsMissingPhase ? `${docsMissingPhase} docs still have no explicit phase binding.` : "No phase-binding gaps detected." },
/home/yeff/public_html/devon/docs/index.html:1009:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html:1010:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html:1013:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html:1015:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html:1016:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html:1017:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html:1019:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html:1021:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html:1022:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html:1029:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html:1054:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html:1071:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html:1084:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html:1085:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html:1087:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html:1088:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html:1089:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html:1091:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html:1092:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html:1098:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html:1105:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html:1111:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html:1112:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html:1113:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html:1201:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html:1255:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html:1275:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html:1276:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html:1283:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html:1305:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html:1328:  state.phaseId = HUB.phases[0].id;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:250:    .card{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:834:  "phases": [
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:836:      "id": "phase-01",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:855:      "id": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:876:      "id": "phase-03",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:897:      "id": "phase-04",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:900:      "summary": "container topology, isolation and host versus container runtime boundaries.",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:901:      "badge": "containerization_canon",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:915:      "id": "phase-05",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:934:      "id": "phase-06",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:952:      "id": "phase-07",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:970:      "id": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:989:      "id": "phase-09",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1012:      "badge": "phase 01",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1017:          "path": "../panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1018:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1023:            "panel_manifest",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1025:            "all phases",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1036:          "id": "panel_manifest",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1038:          "path": "../panel/data/panel_manifest.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1039:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1041:          "role": "Entry manifest and machine-readable panel entry point.",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1049:          "architecture_view": "Entry manifest for the panel and documentation surface.",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1056:          "path": "../panel/data/project_scope_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1057:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1074:          "path": "../panel/data/devon_panel_chat_checkpoint.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1075:          "phase": "phase-01",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1095:      "badge": "phase 02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1100:          "path": "../panel/data/cas.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1101:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1122:          "path": "../panel/data/cgs.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1123:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1140:          "path": "../panel/data/acs.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1141:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1158:          "path": "../panel/data/css.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1159:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1165:            "panel_data_contract"
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1169:            "panel"
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1178:          "path": "../panel/data/ncs.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1179:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1196:          "path": "../panel/data/sts.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1197:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1215:          "path": "../panel/data/brps.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1216:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1233:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1234:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1251:          "path": "../panel/data/ris.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1252:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1270:          "path": "../panel/data/ofms.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1271:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1292:      "badge": "phase 03",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1297:          "path": "../panel/data/cfc.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1298:          "phase": "phase-03",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1318:      "id": "containerization",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1320:      "sub": "container topology, isolation and host versus container boundary.",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1321:      "badge": "phase 04",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1326:          "path": "../panel/data/ccc.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1327:          "phase": "phase-04",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1328:          "layer": "containerization",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1348:      "badge": "phase 05",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1353:          "path": "../panel/data/lpc.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1354:          "phase": "phase-05",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1374:      "badge": "phase 06",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1379:          "path": "../panel/data/nrc.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1380:          "phase": "phase-06",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1401:      "badge": "phase 07",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1406:          "path": "../panel/data/oac.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1407:          "phase": "phase-07",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1428:      "badge": "phase 08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1433:          "path": "../panel/data/sec.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1434:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1458:          "path": "../panel/data/host_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1459:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1476:          "path": "../panel/data/app_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1477:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1494:          "path": "../panel/data/module_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1495:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1512:          "path": "../panel/data/runtime_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1513:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1530:          "path": "../panel/data/delivery_security_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1531:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1548:          "path": "../panel/data/approval_canonization_policy.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1549:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1566:          "path": "../panel/data/memory_isolation_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1567:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1584:          "path": "../panel/data/security_monitoring_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1585:          "phase": "phase-08",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1605:      "badge": "phase 09",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1610:          "path": "../panel/data/ofc.md",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1611:          "phase": "phase-09",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1637:          "path": "../panel/data/memory_canonical_architecture.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1638:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1655:          "path": "../panel/data/memory_lifecycle_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1656:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1673:          "path": "../panel/data/learning_governance_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1674:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1691:          "path": "../panel/data/planning_reasoning_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1692:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1709:          "path": "../panel/data/tool_execution_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1710:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1727:          "path": "../panel/data/knowledge_ingestion_canonical.json",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1728:          "phase": "phase-02",
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1748:      phaseId: HUB.phases[0].id,
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1755:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1756:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1757:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1758:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1759:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1760:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1765:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1784:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1785:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1791:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1816:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1817:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1820:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1822:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1823:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1824:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1826:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1828:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1829:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1836:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1861:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1878:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1891:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1892:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1894:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1895:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1896:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1898:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1899:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1905:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1912:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1918:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1919:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:1920:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:2008:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:2062:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:2082:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:2083:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:2090:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.depmap.20260329_180950:2112:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:12:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:13:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:42:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:43:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:48:    .sidebar{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:56:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:57:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:58:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:62:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:73:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:74:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:75:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:79:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:80:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:82:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:88:      max-width:100%;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:92:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:99:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:107:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:108:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:114:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:116:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:123:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:124:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:128:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:129:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:130:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:137:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:140:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:144:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:149:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:151:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:159:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:162:        flex:none;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:170:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:171:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:173:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:182:        min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:183:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:190:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:200:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:201:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:208:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:210:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:215:      font-size:42px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:222:      max-width:880px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:223:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:227:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:229:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:230:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:243:    .overview-grid{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:244:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:245:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:250:    .card{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:256:      min-width:0;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:258:    .card-top{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:259:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:260:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:265:    .card-title{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:266:      font-size:17px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:270:    .card-sub{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:272:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:276:    .phase-strip{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:277:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:280:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:281:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:286:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:289:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:293:    .phase{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:299:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:300:      min-width:210px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:301:      max-width:210px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:304:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:305:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:306:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:307:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:311:    .phase.active{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:316:    .phase-step{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:318:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:319:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:324:    .phase-name{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:326:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:330:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:331:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:334:    .phase p{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:337:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:342:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:345:    .metric-grid{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:346:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:349:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:350:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:355:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:358:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:367:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:368:      min-width:170px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:369:      max-width:170px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:371:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:372:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:373:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:374:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:380:      font-size:34px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:389:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:390:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:394:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:395:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:400:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:406:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:407:      grid-template-columns:1.12fr .88fr;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:412:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:422:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:430:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:435:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:438:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:440:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:448:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:457:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:461:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:465:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:466:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:468:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:472:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:474:      font-size:11px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:486:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:488:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:500:      overflow:auto;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:505:    .rail-card{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:513:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:515:      font-size:15px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:517:    .rail-card p{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:520:      font-size:13px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:524:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:540:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:544:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:549:      display:flex;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:557:      flex:none;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:565:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:568:    .source-grid{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:569:      display:grid;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:578:      font-size:12px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:582:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:583:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:587:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:588:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:589:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:595:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:596:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:597:      .phase{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:598:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:599:        min-width:220px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:600:        max-width:220px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:604:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:605:        min-width:180px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:606:        max-width:180px;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:611:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:612:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:613:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:614:      .phase{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:615:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:616:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:617:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:621:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:622:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:623:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:626:      .phase p{
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:634:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:654:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:657:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:658:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:659:          <a class="btn" href="../panel/data/devon_panel_chat_checkpoint.md" target="_blank" rel="noopener noreferrer">Checkpoint MD</a>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:663:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:664:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:665:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:667:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:668:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:672:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:675:        <article class="card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:676:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:678:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:679:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:683:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:689:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:690:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:692:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:693:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:695:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:697:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:700:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:701:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:703:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:704:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:723:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:724:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:726:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:727:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:734:          <article class="card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:735:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:737:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:738:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:744:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:755:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:757:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:760:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:771:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:773:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:774:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:775:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:776:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:777:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:778:          <div class="source-item">../panel/data/devon_panel_chat_checkpoint.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:780:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:781:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:782:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:783:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:784:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:785:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:786:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:787:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:788:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:789:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:791:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:792:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:793:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:794:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:795:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:796:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:797:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:799:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:800:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:801:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:802:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:803:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:804:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:805:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:806:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:808:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:809:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:810:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:811:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:812:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:813:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:815:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:816:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:817:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:818:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:819:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:820:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:821:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:822:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:823:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:824:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:825:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:826:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:837:  const res = await fetch('../panel/data/hub_index.json');
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:842:let state = { phaseId: null, categoryId: null, docId: null, mode: "architecture" };
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:845:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:846:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:847:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:848:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:849:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:850:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:855:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:874:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:875:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:881:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:906:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:907:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:910:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:912:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:913:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:914:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:916:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:918:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:919:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:926:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:951:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:968:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:981:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:982:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:984:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:985:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:986:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:988:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:989:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:995:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1002:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1008:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1009:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1010:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1098:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1152:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1172:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1173:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1180:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1202:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.html.STABLE_OK.20260329_182357:1225:  state.phaseId = HUB.phases[0].id;
/home/yeff/public_html/devon/docs/index.php:7:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/docs/index.php:13:      --panel:#0f1d3d;
/home/yeff/public_html/devon/docs/index.php:14:      --panel-2:#13264f;
/home/yeff/public_html/devon/docs/index.php:43:      display:grid;
/home/yeff/public_html/devon/docs/index.php:44:      grid-template-columns:290px minmax(0,1fr) 360px;
/home/yeff/public_html/devon/docs/index.php:49:    .sidebar{
/home/yeff/public_html/devon/docs/index.php:57:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.php:58:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.php:59:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:63:      min-width:0;
/home/yeff/public_html/devon/docs/index.php:74:      overflow-y:auto;
/home/yeff/public_html/devon/docs/index.php:75:        overflow-x:hidden;
/home/yeff/public_html/devon/docs/index.php:76:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:79:    .sidebar,
/home/yeff/public_html/devon/docs/index.php:84:    .sidebar::-webkit-scrollbar,
/home/yeff/public_html/devon/docs/index.php:88:    .sidebar::-webkit-scrollbar-track,
/home/yeff/public_html/devon/docs/index.php:92:    .sidebar::-webkit-scrollbar-thumb,
/home/yeff/public_html/devon/docs/index.php:99:      display:flex;
/home/yeff/public_html/devon/docs/index.php:100:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.php:102:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:108:      max-width:100%;
/home/yeff/public_html/devon/docs/index.php:112:      font-size:17px;
/home/yeff/public_html/devon/docs/index.php:119:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:127:      font-size:11px;
/home/yeff/public_html/devon/docs/index.php:128:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.php:134:      display:grid;
/home/yeff/public_html/devon/docs/index.php:136:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:143:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:144:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.php:148:      display:flex;
/home/yeff/public_html/devon/docs/index.php:149:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:150:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:156:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:157:        flex:1 1 auto;
/home/yeff/public_html/devon/docs/index.php:160:      font-size:15px;
/home/yeff/public_html/devon/docs/index.php:164:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.php:169:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:171:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.php:179:      font-size:11px;
/home/yeff/public_html/devon/docs/index.php:182:        flex:none;
/home/yeff/public_html/devon/docs/index.php:190:      grid-template-columns:1fr;
/home/yeff/public_html/devon/docs/index.php:191:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:193:    .tree-node.open .tree-children{display:grid}
/home/yeff/public_html/devon/docs/index.php:202:        min-width:0;
/home/yeff/public_html/devon/docs/index.php:203:        overflow:hidden;
/home/yeff/public_html/devon/docs/index.php:210:        overflow-wrap:anywhere;
/home/yeff/public_html/devon/docs/index.php:220:      display:flex;
/home/yeff/public_html/devon/docs/index.php:221:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:228:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.php:230:      font-size:11px;
/home/yeff/public_html/devon/docs/index.php:235:      font-size:42px;
/home/yeff/public_html/devon/docs/index.php:242:      max-width:880px;
/home/yeff/public_html/devon/docs/index.php:243:      font-size:17px;
/home/yeff/public_html/devon/docs/index.php:247:      display:flex;
/home/yeff/public_html/devon/docs/index.php:249:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.php:250:      justify-content:flex-end;
/home/yeff/public_html/devon/docs/index.php:263:    .overview-grid{
/home/yeff/public_html/devon/docs/index.php:264:      display:grid;
/home/yeff/public_html/devon/docs/index.php:265:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.php:270:    .card{
/home/yeff/public_html/devon/docs/index.php:276:      min-width:0;
/home/yeff/public_html/devon/docs/index.php:278:    .card-top{
/home/yeff/public_html/devon/docs/index.php:279:      display:flex;
/home/yeff/public_html/devon/docs/index.php:280:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:285:    .card-title{
/home/yeff/public_html/devon/docs/index.php:286:      font-size:17px;
/home/yeff/public_html/devon/docs/index.php:290:    .card-sub{
/home/yeff/public_html/devon/docs/index.php:292:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:296:    .phase-strip{
/home/yeff/public_html/devon/docs/index.php:297:      display:flex;
/home/yeff/public_html/devon/docs/index.php:300:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.php:301:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.php:306:    .phase-strip::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.php:309:    .phase-strip::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.php:313:    .phase{
/home/yeff/public_html/devon/docs/index.php:319:      flex:0 0 210px;
/home/yeff/public_html/devon/docs/index.php:320:      min-width:210px;
/home/yeff/public_html/devon/docs/index.php:321:      max-width:210px;
/home/yeff/public_html/devon/docs/index.php:324:      display:flex;
/home/yeff/public_html/devon/docs/index.php:325:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.php:326:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.php:327:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:331:    .phase.active{
/home/yeff/public_html/devon/docs/index.php:336:    .phase-step{
/home/yeff/public_html/devon/docs/index.php:338:      font-size:11px;
/home/yeff/public_html/devon/docs/index.php:339:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.php:344:    .phase-name{
/home/yeff/public_html/devon/docs/index.php:346:      font-size:15px;
/home/yeff/public_html/devon/docs/index.php:350:      display:flex;
/home/yeff/public_html/devon/docs/index.php:351:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:354:    .phase p{
/home/yeff/public_html/devon/docs/index.php:357:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:362:      overflow:hidden;
/home/yeff/public_html/devon/docs/index.php:365:    .metric-grid{
/home/yeff/public_html/devon/docs/index.php:366:      display:flex;
/home/yeff/public_html/devon/docs/index.php:369:      overflow-x:auto;
/home/yeff/public_html/devon/docs/index.php:370:      overflow-y:hidden;
/home/yeff/public_html/devon/docs/index.php:375:    .metric-grid::-webkit-scrollbar{
/home/yeff/public_html/devon/docs/index.php:378:    .metric-grid::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/docs/index.php:387:      flex:0 0 170px;
/home/yeff/public_html/devon/docs/index.php:388:      min-width:170px;
/home/yeff/public_html/devon/docs/index.php:389:      max-width:170px;
/home/yeff/public_html/devon/docs/index.php:391:      display:flex;
/home/yeff/public_html/devon/docs/index.php:392:      flex-direction:column;
/home/yeff/public_html/devon/docs/index.php:393:      justify-content:flex-start;
/home/yeff/public_html/devon/docs/index.php:394:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:400:      font-size:34px;
/home/yeff/public_html/devon/docs/index.php:409:      font-size:11px;
/home/yeff/public_html/devon/docs/index.php:410:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.php:414:      display:flex;
/home/yeff/public_html/devon/docs/index.php:415:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:420:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:426:      display:grid;
/home/yeff/public_html/devon/docs/index.php:427:      grid-template-columns:1.2fr .8fr;
/home/yeff/public_html/devon/docs/index.php:432:      display:grid;
/home/yeff/public_html/devon/docs/index.php:442:      display:flex;
/home/yeff/public_html/devon/docs/index.php:450:      font-size:15px;
/home/yeff/public_html/devon/docs/index.php:455:      font-size:13px;
/home/yeff/public_html/devon/docs/index.php:458:      display:flex;
/home/yeff/public_html/devon/docs/index.php:460:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.php:468:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:477:      display:grid;
/home/yeff/public_html/devon/docs/index.php:481:      display:grid;
/home/yeff/public_html/devon/docs/index.php:485:      display:grid;
/home/yeff/public_html/devon/docs/index.php:486:      grid-template-columns:132px 1fr;
/home/yeff/public_html/devon/docs/index.php:488:      align-items:flex-start;
/home/yeff/public_html/devon/docs/index.php:492:      text-transform:uppercase;
/home/yeff/public_html/devon/docs/index.php:494:      font-size:11px;
/home/yeff/public_html/devon/docs/index.php:506:      display:flex;
/home/yeff/public_html/devon/docs/index.php:508:      flex-wrap:wrap;
/home/yeff/public_html/devon/docs/index.php:520:      overflow:auto;
/home/yeff/public_html/devon/docs/index.php:525:    .rail-card{
/home/yeff/public_html/devon/docs/index.php:533:    .rail-card h3{
/home/yeff/public_html/devon/docs/index.php:535:      font-size:15px;
/home/yeff/public_html/devon/docs/index.php:537:    .rail-card p{
/home/yeff/public_html/devon/docs/index.php:540:      font-size:13px;
/home/yeff/public_html/devon/docs/index.php:544:      display:grid;
/home/yeff/public_html/devon/docs/index.php:560:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:564:      display:grid;
/home/yeff/public_html/devon/docs/index.php:569:      display:flex;
/home/yeff/public_html/devon/docs/index.php:577:      flex:none;
/home/yeff/public_html/devon/docs/index.php:585:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:588:    .source-grid{
/home/yeff/public_html/devon/docs/index.php:589:      display:grid;
/home/yeff/public_html/devon/docs/index.php:598:      font-size:12px;
/home/yeff/public_html/devon/docs/index.php:602:    @media (max-width: 1450px){
/home/yeff/public_html/devon/docs/index.php:603:      .shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/docs/index.php:607:    @media (max-width: 1080px){
/home/yeff/public_html/devon/docs/index.php:608:      .shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.php:609:      .sidebar,.rail{
/home/yeff/public_html/devon/docs/index.php:615:      .hero{flex-direction:column}
/home/yeff/public_html/devon/docs/index.php:616:      .overview-grid,.workspace{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.php:617:      .phase{
/home/yeff/public_html/devon/docs/index.php:618:        flex:0 0 220px;
/home/yeff/public_html/devon/docs/index.php:619:        min-width:220px;
/home/yeff/public_html/devon/docs/index.php:620:        max-width:220px;
/home/yeff/public_html/devon/docs/index.php:624:        flex:0 0 180px;
/home/yeff/public_html/devon/docs/index.php:625:        min-width:180px;
/home/yeff/public_html/devon/docs/index.php:626:        max-width:180px;
/home/yeff/public_html/devon/docs/index.php:631:    @media (max-width: 680px){
/home/yeff/public_html/devon/docs/index.php:632:      .hero h2{font-size:32px}
/home/yeff/public_html/devon/docs/index.php:633:      .doc-map-row{grid-template-columns:1fr}
/home/yeff/public_html/devon/docs/index.php:634:      .phase{
/home/yeff/public_html/devon/docs/index.php:635:        flex:0 0 82vw;
/home/yeff/public_html/devon/docs/index.php:636:        min-width:82vw;
/home/yeff/public_html/devon/docs/index.php:637:        max-width:82vw;
/home/yeff/public_html/devon/docs/index.php:641:        flex:0 0 64vw;
/home/yeff/public_html/devon/docs/index.php:642:        min-width:64vw;
/home/yeff/public_html/devon/docs/index.php:643:        max-width:64vw;
/home/yeff/public_html/devon/docs/index.php:646:      .phase p{
/home/yeff/public_html/devon/docs/index.php:654:    <aside class="sidebar">
/home/yeff/public_html/devon/docs/index.php:674:          <p id="hero-desc">Structured documentation, mapped by phase, layer and dependency. This is not a raw file viewer. It is the consultation layer that explains how each canon file fits into the system.</p>
/home/yeff/public_html/devon/docs/index.php:677:          <a class="btn" href="../panel/" target="_blank" rel="noopener noreferrer">Open Panel</a>
/home/yeff/public_html/devon/docs/index.php:678:          <a class="btn" href="../panel/data/panel_manifest.json" target="_blank" rel="noopener noreferrer">Manifest JSON</a>
/home/yeff/public_html/devon/docs/index.php:679:          <a class="btn" href="../panel/data/devon_continuity.md" target="_blank" rel="noopener noreferrer">Continuity MD</a>
/home/yeff/public_html/devon/docs/index.php:683:      <section class="overview-grid">
/home/yeff/public_html/devon/docs/index.php:684:        <article class="card">
/home/yeff/public_html/devon/docs/index.php:685:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.php:687:              <div class="card-title">Project phases</div>
/home/yeff/public_html/devon/docs/index.php:688:              <div class="card-sub">Phase-by-phase navigation for the Devon build logic</div>
/home/yeff/public_html/devon/docs/index.php:692:          <div id="phase-strip" class="phase-strip"></div>
/home/yeff/public_html/devon/docs/index.php:695:        <article class="card">
/home/yeff/public_html/devon/docs/index.php:696:          <div class="card-top">
/home/yeff/public_html/devon/docs/index.php:698:              <div class="card-title">Overview metrics</div>
/home/yeff/public_html/devon/docs/index.php:699:              <div class="card-sub">Static architectural telemetry derived from the canon surface</div>
/home/yeff/public_html/devon/docs/index.php:703:          <div id="metric-grid" class="metric-grid"></div>
/home/yeff/public_html/devon/docs/index.php:709:          <article class="card">
/home/yeff/public_html/devon/docs/index.php:710:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.php:712:                <div class="card-title" id="phase-title">Architecture layer map</div>
/home/yeff/public_html/devon/docs/index.php:713:                <div class="card-sub" id="phase-sub">Selected phase structure and dependencies</div>
/home/yeff/public_html/devon/docs/index.php:715:              <span id="phase-badge" class="chip blue">overview</span>
/home/yeff/public_html/devon/docs/index.php:717:            <div id="phase-map" class="stack"></div>
/home/yeff/public_html/devon/docs/index.php:720:          <article class="card">
/home/yeff/public_html/devon/docs/index.php:721:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.php:723:                <div class="card-title" id="doc-panel-title">Document architecture</div>
/home/yeff/public_html/devon/docs/index.php:724:                <div class="card-sub">Semantic metadata, dependencies and canonical position</div>
/home/yeff/public_html/devon/docs/index.php:744:          <article class="card">
/home/yeff/public_html/devon/docs/index.php:745:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.php:747:                <div class="card-title">Document relation map</div>
/home/yeff/public_html/devon/docs/index.php:748:                <div class="card-sub">Where the current document fits in the Devon system</div>
/home/yeff/public_html/devon/docs/index.php:755:          <article class="card">
/home/yeff/public_html/devon/docs/index.php:756:            <div class="card-top">
/home/yeff/public_html/devon/docs/index.php:758:                <div class="card-title">Quick principles</div>
/home/yeff/public_html/devon/docs/index.php:759:                <div class="card-sub">Architectural rules used to keep this Hub clean</div>
/home/yeff/public_html/devon/docs/index.php:765:              <span class="chip">panel UI isolated</span>
/home/yeff/public_html/devon/docs/index.php:770:              <span class="chip">runtime in operator panel</span>
/home/yeff/public_html/devon/docs/index.php:778:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.php:780:        <p>The Hub now behaves like an architectural panel, not a plain text dump. Tree navigation, phase roadmap, dependency view and semantic doc map are primary. Raw source is secondary.</p>
/home/yeff/public_html/devon/docs/index.php:783:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.php:785:        <p>Documentation Hub audits canonical definition, category coverage, authority ownership, phase and layer binding, dependencies and documentation completion gaps. Operator Panel audits real implementation state, runtime evidence, health, telemetry, pipeline execution and server-side materialization.</p>
/home/yeff/public_html/devon/docs/index.php:788:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.php:799:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.php:805:      <section class="rail-card">
/home/yeff/public_html/devon/docs/index.php:807:        <div class="source-grid">
/home/yeff/public_html/devon/docs/index.php:808:          <div class="source-item">../panel/data/master_architecture_index.md</div>
/home/yeff/public_html/devon/docs/index.php:809:          <div class="source-item">../panel/data/panel_manifest.json</div>
/home/yeff/public_html/devon/docs/index.php:810:          <div class="source-item">../panel/data/panel_content_index.json</div>
/home/yeff/public_html/devon/docs/index.php:811:          <div class="source-item">../panel/data/project_scope_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:812:          <div class="source-item">../panel/data/devon_continuity.md</div>
/home/yeff/public_html/devon/docs/index.php:814:          <div class="source-item">../panel/data/cas.md</div>
/home/yeff/public_html/devon/docs/index.php:815:          <div class="source-item">../panel/data/cgs.md</div>
/home/yeff/public_html/devon/docs/index.php:816:          <div class="source-item">../panel/data/acs.md</div>
/home/yeff/public_html/devon/docs/index.php:817:          <div class="source-item">../panel/data/css.md</div>
/home/yeff/public_html/devon/docs/index.php:818:          <div class="source-item">../panel/data/ncs.md</div>
/home/yeff/public_html/devon/docs/index.php:819:          <div class="source-item">../panel/data/sts.md</div>
/home/yeff/public_html/devon/docs/index.php:820:          <div class="source-item">../panel/data/brps.md</div>
/home/yeff/public_html/devon/docs/index.php:821:          <div class="source-item">../panel/data/cdms.md</div>
/home/yeff/public_html/devon/docs/index.php:822:          <div class="source-item">../panel/data/ris.md</div>
/home/yeff/public_html/devon/docs/index.php:823:          <div class="source-item">../panel/data/ofms.md</div>
/home/yeff/public_html/devon/docs/index.php:825:          <div class="source-item">../panel/data/cfc.md</div>
/home/yeff/public_html/devon/docs/index.php:826:          <div class="source-item">../panel/data/ccc.md</div>
/home/yeff/public_html/devon/docs/index.php:827:          <div class="source-item">../panel/data/lpc.md</div>
/home/yeff/public_html/devon/docs/index.php:828:          <div class="source-item">../panel/data/nrc.md</div>
/home/yeff/public_html/devon/docs/index.php:829:          <div class="source-item">../panel/data/oac.md</div>
/home/yeff/public_html/devon/docs/index.php:830:          <div class="source-item">../panel/data/sec.md</div>
/home/yeff/public_html/devon/docs/index.php:831:          <div class="source-item">../panel/data/ofc.md</div>
/home/yeff/public_html/devon/docs/index.php:833:          <div class="source-item">../panel/data/host_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:834:          <div class="source-item">../panel/data/app_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:835:          <div class="source-item">../panel/data/module_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:836:          <div class="source-item">../panel/data/runtime_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:837:          <div class="source-item">../panel/data/delivery_security_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:838:          <div class="source-item">../panel/data/approval_canonization_policy.json</div>
/home/yeff/public_html/devon/docs/index.php:839:          <div class="source-item">../panel/data/memory_isolation_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:840:          <div class="source-item">../panel/data/security_monitoring_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:842:          <div class="source-item">../panel/data/memory_canonical_architecture.json</div>
/home/yeff/public_html/devon/docs/index.php:843:          <div class="source-item">../panel/data/memory_lifecycle_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:844:          <div class="source-item">../panel/data/learning_governance_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:845:          <div class="source-item">../panel/data/planning_reasoning_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:846:          <div class="source-item">../panel/data/tool_execution_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:847:          <div class="source-item">../panel/data/knowledge_ingestion_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:849:          <div class="source-item">../panel/data/panel_navigation_spec.json</div>
/home/yeff/public_html/devon/docs/index.php:850:          <div class="source-item">../panel/data/panel_canonical_tree.json</div>
/home/yeff/public_html/devon/docs/index.php:851:          <div class="source-item">../panel/data/panel_component_contract.json</div>
/home/yeff/public_html/devon/docs/index.php:852:          <div class="source-item">../panel/data/panel_data_contract.json</div>
/home/yeff/public_html/devon/docs/index.php:853:          <div class="source-item">../panel/data/panel_sync_contract.json</div>
/home/yeff/public_html/devon/docs/index.php:854:          <div class="source-item">../panel/data/panel_runtime_bridge.json</div>
/home/yeff/public_html/devon/docs/index.php:855:          <div class="source-item">../panel/data/card_contract_minimums.json</div>
/home/yeff/public_html/devon/docs/index.php:856:          <div class="source-item">../panel/data/canonical_matrix_v1.json</div>
/home/yeff/public_html/devon/docs/index.php:857:          <div class="source-item">../panel/data/subcategory_pipelines.json</div>
/home/yeff/public_html/devon/docs/index.php:858:          <div class="source-item">../panel/data/deployment_order_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:859:          <div class="source-item">../panel/data/server_registry_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:860:          <div class="source-item">../panel/data/sandbox_environment_canonical.json</div>
/home/yeff/public_html/devon/docs/index.php:871:  const res = await fetch('../panel/data/hub_index.json');
/home/yeff/public_html/devon/docs/index.php:876:let state = { phaseId: null, categoryId: null, docId: null, mode: "architecture" };
/home/yeff/public_html/devon/docs/index.php:879:    const phaseStrip = document.getElementById("phase-strip");
/home/yeff/public_html/devon/docs/index.php:880:    const metricGrid = document.getElementById("metric-grid");
/home/yeff/public_html/devon/docs/index.php:881:    const phaseTitle = document.getElementById("phase-title");
/home/yeff/public_html/devon/docs/index.php:882:    const phaseSub = document.getElementById("phase-sub");
/home/yeff/public_html/devon/docs/index.php:883:    const phaseBadge = document.getElementById("phase-badge");
/home/yeff/public_html/devon/docs/index.php:884:    const phaseMap = document.getElementById("phase-map");
/home/yeff/public_html/devon/docs/index.php:889:    const docPanelTitle = document.getElementById("doc-panel-title");
/home/yeff/public_html/devon/docs/index.php:910:    function getPhase(phaseId){
/home/yeff/public_html/devon/docs/index.php:911:      return HUB.phases.find(p => p.id === phaseId);
/home/yeff/public_html/devon/docs/index.php:917:      const totalPhases = HUB.phases.length;
/home/yeff/public_html/devon/docs/index.php:931:      const phases = Array.isArray(HUB.phases) ? HUB.phases : [];
/home/yeff/public_html/devon/docs/index.php:943:          if (!doc.phase) docsMissingPhase.push(doc.label || doc.id || "unnamed-doc");
/home/yeff/public_html/devon/docs/index.php:950:        totalPhases: phases.length,
/home/yeff/public_html/devon/docs/index.php:983:        { title: "Phase binding gaps", text: docsMissingPhase ? `${docsMissingPhase} docs still have no explicit phase binding.` : "No phase-binding gaps detected." },
/home/yeff/public_html/devon/docs/index.php:1009:      phaseStrip.innerHTML = "";
/home/yeff/public_html/devon/docs/index.php:1010:      HUB.phases.forEach(phase => {
/home/yeff/public_html/devon/docs/index.php:1013:        btn.className = "phase" + (phase.id === state.phaseId ? " active" : "");
/home/yeff/public_html/devon/docs/index.php:1015:          <div class="phase-step">${phase.step}</div>
/home/yeff/public_html/devon/docs/index.php:1016:          <div class="phase-name">${phase.name}</div>
/home/yeff/public_html/devon/docs/index.php:1017:          <p>${phase.summary}</p>
/home/yeff/public_html/devon/docs/index.php:1019:        btn.title = phase.summary;
/home/yeff/public_html/devon/docs/index.php:1021:          state.phaseId = phase.id;
/home/yeff/public_html/devon/docs/index.php:1022:          const matchingCategory = HUB.categories.find(cat => cat.docs.some(doc => doc.phase === phase.id));
/home/yeff/public_html/devon/docs/index.php:1029:        phaseStrip.appendChild(btn);
/home/yeff/public_html/devon/docs/index.php:1054:            state.phaseId = firstDoc.phase;
/home/yeff/public_html/devon/docs/index.php:1071:            state.phaseId = doc.phase;
/home/yeff/public_html/devon/docs/index.php:1084:      const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.php:1085:      if (!phase) return;
/home/yeff/public_html/devon/docs/index.php:1087:      phaseTitle.textContent = phase.name;
/home/yeff/public_html/devon/docs/index.php:1088:      phaseSub.textContent = phase.summary;
/home/yeff/public_html/devon/docs/index.php:1089:      phaseBadge.textContent = phase.badge;
/home/yeff/public_html/devon/docs/index.php:1091:      phaseMap.innerHTML = "";
/home/yeff/public_html/devon/docs/index.php:1092:      phase.layers.forEach(layer => {
/home/yeff/public_html/devon/docs/index.php:1098:            <span class="chip blue">${phase.step}</span>
/home/yeff/public_html/devon/docs/index.php:1105:        phaseMap.appendChild(item);
/home/yeff/public_html/devon/docs/index.php:1111:      function setHero(doc, phase, category, sourceMeta){
/home/yeff/public_html/devon/docs/index.php:1112:        const sameLabel = String(phase.name).trim().toLowerCase() === String(category.title).trim().toLowerCase();
/home/yeff/public_html/devon/docs/index.php:1113:        heroTitle.textContent = sameLabel ? phase.name : `${phase.name} • ${category.title}`;
/home/yeff/public_html/devon/docs/index.php:1201:        docMap.appendChild(docMapRow("Phase", doc.phase));
/home/yeff/public_html/devon/docs/index.php:1255:          phase: doc.phase,
/home/yeff/public_html/devon/docs/index.php:1275:        const phase = getPhase(state.phaseId);
/home/yeff/public_html/devon/docs/index.php:1276:        if (!category || !doc || !phase) return;
/home/yeff/public_html/devon/docs/index.php:1283:          setHero(doc, phase, category, sourceMeta);
/home/yeff/public_html/devon/docs/index.php:1305:          setHero(doc, phase, category, fallbackMeta);
/home/yeff/public_html/devon/docs/index.php:1328:  state.phaseId = HUB.phases[0].id;
/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh:5:PANEL_DATA="/home/yeff/public_html/devon/panel/data"
/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh:16:  "$PANEL_DATA/panel_runtime_bridge.json" 2>/dev/null
/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh:22:base = pathlib.Path("/home/yeff/public_html/devon/panel/data")
/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh:46:            "progress_pct": row.get("progress_pct"),
/home/yeff/public_html/devon/panel/_ops/validate_devon_panel_sync.sh:53:curl -ks https://devon.yeff.digital/panel/assets/js/panel.js | grep -nE 'host_runtime.json|docker_runtime.json|runtime_status.json|panel_runtime_bridge.json' | sed -n '1,120p'
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/subcategory_pipelines.json:74:        "containers",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/subcategory_pipelines.json:299:    "operator_panel": {
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/subcategory_pipelines.json:301:        "dashboard",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/subcategory_pipelines.json:303:        "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:3:    "canon_id": "devon-panel-navigation-spec",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:19:    "left_sidebar": {
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:36:        "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:51:    "right_drawer_stack": {
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:52:      "drawers": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:53:        "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:54:        "dependency_drawer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:55:        "memory_scope_drawer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:56:        "validation_drawer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:57:        "server_scope_drawer"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:63:      "left_sidebar": "open",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:65:      "right_drawer_stack": "evidence_drawer"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:67:    "click_card_behavior": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:86:      "total_cards",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:109:  "panel_data_sources": {
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:111:    "panel_tree": "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_navigation_spec.json:112:    "contract_schema": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:68:      "objective": "establish containers, network, proxy, volumes and secrets baseline",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:73:        "missing_container_runtime",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:78:        "container_runtime_ready",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:284:      "stage": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:292:        "missing_panel_schema",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:293:        "missing_evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:297:        "panel_loads",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:301:      "promotion_gate": "panel_ready"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/deployment_order_canonical.json:308:        "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:10:      "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:11:      "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:24:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:41:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:49:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:64:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:72:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:88:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:96:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:112:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:120:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:123:      "objective": "validate container runtime presence",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:126:        "missing_container_runtime"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:136:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:144:      "card_id": "project-scope",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:162:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:170:      "card_id": "deployment-order",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:188:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:196:      "card_id": "card-contracts",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:199:      "objective": "define minimum contract schema for every card",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:207:        "/opt/devon/canon/03_card_contract_minimums.yaml"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:214:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:222:      "card_id": "server-registry",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:240:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:248:      "card_id": "server-registry",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:265:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:273:      "card_id": "infrastructure",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:275:      "subcategory": "containers",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:276:      "objective": "enable base container runtime",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:282:        "missing_container_runtime"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:293:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:301:      "card_id": "storage-state",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:320:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:328:      "card_id": "memory-manager",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:348:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:356:      "card_id": "core-runtime",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:377:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:385:      "card_id": "observability-audit",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:404:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:412:      "card_id": "remote-orchestration",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:430:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:438:      "card_id": "sandbox-environments",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:458:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:466:      "card_id": "embeddings",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:487:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:495:      "card_id": "architect",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:516:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:524:      "card_id": "planner",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:543:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:551:      "card_id": "generator",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:570:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:578:      "card_id": "canonizer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:595:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:603:      "card_id": "validator-ci",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:622:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:630:      "card_id": "executor",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:651:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:659:      "card_id": "artifact-canon-layer",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:676:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:684:      "card_id": "skill-registry",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:701:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:709:      "card_id": "policy-governance",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:729:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:737:      "card_id": "self-monitoring",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:754:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:762:      "card_id": "benchmark-runner",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:782:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:790:      "card_id": "rl-engine",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:808:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:816:      "card_id": "learning-loop",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:837:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:843:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:845:      "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:855:        "missing_panel_runtime",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:856:        "missing_panel_schema"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:859:        "panel_runtime",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:861:        "evidence_drawers"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:866:        "drawer_render_check"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:868:      "pipeline_ref": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:869:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:877:      "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:899:      "pipeline_ref": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/canonical_matrix_v1.json:900:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:3:    "canon_id": "devon-panel-content-index",
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:14:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:23:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:26:        "card-contracts"
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:34:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:43:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:53:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:62:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:71:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:80:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:90:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:105:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:121:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:131:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:142:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_20260327_091441/panel_content_index.json:143:        "operator-panel"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:3:    "canon_id": "devon-panel-tree",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:8:  "panel_root": {
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:17:      "card_grid",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:18:      "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:19:      "contract_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:31:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:33:          "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:49:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:51:          "card_id": "project-scope",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:61:          "card_id": "deployment-order",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:71:          "card_id": "card-contracts",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:86:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:88:          "card_id": "server-registry",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:104:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:106:          "card_id": "infrastructure",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:109:            "containers",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:117:          "card_id": "storage-state",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:131:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:133:          "card_id": "memory-manager",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:149:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:151:          "card_id": "core-runtime",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:166:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:168:          "card_id": "observability-audit",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:183:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:185:          "card_id": "remote-orchestration",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:195:          "card_id": "sandbox-environments",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:210:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:212:          "card_id": "language-understanding",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:222:          "card_id": "embeddings",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:232:          "card_id": "retrieval",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:242:          "card_id": "reasoning",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:252:          "card_id": "causality",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:262:          "card_id": "attention-goals",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:272:          "card_id": "multimodal",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:286:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:288:          "card_id": "architect",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:298:          "card_id": "planner",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:308:          "card_id": "generator",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:318:          "card_id": "canonizer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:328:          "card_id": "validator-ci",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:339:          "card_id": "executor",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:349:          "card_id": "artifact-canon-layer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:359:          "card_id": "skill-registry",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:373:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:375:          "card_id": "policy-governance",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:386:          "card_id": "self-monitoring",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:400:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:402:          "card_id": "benchmark-runner",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:412:          "card_id": "rl-engine",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:422:          "card_id": "learning-loop",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:437:      "cards": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:439:          "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:442:            "dashboard",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:444:            "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:454:    "card_status_source": "evidence_only",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_canonical_tree.json:460:    "required_drawers": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/subcategory_pipelines.json:74:        "containers",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/subcategory_pipelines.json:299:    "operator_panel": {
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/subcategory_pipelines.json:301:        "dashboard",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/subcategory_pipelines.json:303:        "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:3:    "canon_id": "devon-panel-navigation-spec",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:19:    "left_sidebar": {
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:37:        "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:52:    "right_drawer_stack": {
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:53:      "drawers": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:54:        "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:55:        "dependency_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:56:        "memory_scope_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:57:        "validation_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:58:        "server_scope_drawer"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:64:      "left_sidebar": "open",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:66:      "right_drawer_stack": "evidence_drawer"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:68:    "click_card_behavior": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:87:      "total_cards",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:110:  "panel_data_sources": {
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:112:    "panel_tree": "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_navigation_spec.json:113:    "contract_schema": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:104:      "objective": "establish containers, network, proxy, volumes and secrets baseline",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:109:        "missing_container_runtime",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:114:        "container_runtime_ready",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:320:      "stage": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:328:        "missing_panel_schema",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:329:        "missing_evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:333:        "panel_loads",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:337:      "promotion_gate": "panel_ready"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/deployment_order_canonical.json:344:        "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:10:      "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:11:      "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:24:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:41:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:49:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:64:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:72:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:88:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:96:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:112:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:120:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:123:      "objective": "validate container runtime presence",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:126:        "missing_container_runtime"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:136:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:144:      "card_id": "project-scope",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:162:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:170:      "card_id": "deployment-order",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:188:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:196:      "card_id": "card-contracts",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:199:      "objective": "define minimum contract schema for every card",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:207:        "/opt/devon/canon/03_card_contract_minimums.yaml"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:214:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:222:      "card_id": "server-registry",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:240:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:248:      "card_id": "server-registry",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:265:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:273:      "card_id": "infrastructure",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:275:      "subcategory": "containers",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:276:      "objective": "enable base container runtime",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:282:        "missing_container_runtime"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:293:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:301:      "card_id": "storage-state",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:320:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:328:      "card_id": "memory-manager",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:348:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:356:      "card_id": "core-runtime",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:377:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:385:      "card_id": "observability-audit",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:404:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:412:      "card_id": "remote-orchestration",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:430:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:438:      "card_id": "sandbox-environments",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:458:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:466:      "card_id": "embeddings",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:487:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:495:      "card_id": "architect",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:516:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:524:      "card_id": "planner",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:543:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:551:      "card_id": "generator",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:570:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:578:      "card_id": "canonizer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:595:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:603:      "card_id": "validator-ci",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:622:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:630:      "card_id": "executor",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:651:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:659:      "card_id": "artifact-canon-layer",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:676:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:684:      "card_id": "skill-registry",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:701:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:709:      "card_id": "policy-governance",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:729:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:737:      "card_id": "self-monitoring",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:754:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:762:      "card_id": "benchmark-runner",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:782:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:790:      "card_id": "rl-engine",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:808:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:816:      "card_id": "learning-loop",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:837:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:843:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:845:      "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:855:        "missing_panel_runtime",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:856:        "missing_panel_schema"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:859:        "panel_runtime",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:861:        "evidence_drawers"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:866:        "drawer_render_check"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:868:      "pipeline_ref": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:869:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:877:      "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:899:      "pipeline_ref": "operator_panel",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/canonical_matrix_v1.json:900:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:3:    "canon_id": "devon-panel-content-index",
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:14:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:23:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:26:        "card-contracts"
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:34:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:43:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:53:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:62:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:71:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:80:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:90:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:105:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:121:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:131:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:142:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_tx_20260327_092129/panel_content_index.json:143:        "operator-panel"
/home/yeff/public_html/devon/panel/index.html:7:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/panel/index.html:9:  <link rel="stylesheet" href="assets/css/panel.runtime.fix.20260408_1.css?v=1" />
/home/yeff/public_html/devon/panel/index.html:13:    <aside class="op-sidebar">
/home/yeff/public_html/devon/panel/index.html:21:        <div id="project-donut" class="sidebar-donut-wrap"></div>
/home/yeff/public_html/devon/panel/index.html:39:          <h1 id="hero-title">Devon runtime panel</h1>
/home/yeff/public_html/devon/panel/index.html:52:      <section class="layer-grid">
/home/yeff/public_html/devon/panel/index.html:53:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/index.html:54:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:55:            <span class="card-title">Canonical Layer</span>
/home/yeff/public_html/devon/panel/index.html:60:            <li>Architecture and cards</li>
/home/yeff/public_html/devon/panel/index.html:66:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/index.html:67:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:68:            <span class="card-title">Operational Layer</span>
/home/yeff/public_html/devon/panel/index.html:73:            <li>Docker and containers</li>
/home/yeff/public_html/devon/panel/index.html:80:      <section class="top-grid">
/home/yeff/public_html/devon/panel/index.html:81:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.html:82:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:83:            <span class="card-title">Selected Stage</span>
/home/yeff/public_html/devon/panel/index.html:90:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.html:91:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:92:            <span class="card-title">Operational Stage Completion</span>
/home/yeff/public_html/devon/panel/index.html:95:          <div id="selected-stage-donut" class="donut-wrap"></div>
/home/yeff/public_html/devon/panel/index.html:98:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.html:99:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:100:            <span class="card-title">Operational Pipeline</span>
/home/yeff/public_html/devon/panel/index.html:106:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.html:107:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:108:            <span class="card-title">Canonical Coverage</span>
/home/yeff/public_html/devon/panel/index.html:111:          <div id="canon-coverage-donut" class="donut-wrap"></div>
/home/yeff/public_html/devon/panel/index.html:115:        <article id="authority-sources-card" class="card stat-card">
/home/yeff/public_html/devon/panel/index.html:116:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:117:            <span class="card-title">Authority Sources</span>
/home/yeff/public_html/devon/panel/index.html:125:      <section class="runtime-grid">
/home/yeff/public_html/devon/panel/index.html:126:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/index.html:127:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:128:            <span class="card-title">Host Runtime Overview</span>
/home/yeff/public_html/devon/panel/index.html:131:          <div id="host-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/index.html:134:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/index.html:135:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:136:            <span class="card-title">Docker Runtime Overview</span>
/home/yeff/public_html/devon/panel/index.html:139:          <div id="docker-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/index.html:142:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/index.html:143:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:144:            <span class="card-title">Pipeline Runtime Board</span>
/home/yeff/public_html/devon/panel/index.html:151:      <section class="workspace-grid">
/home/yeff/public_html/devon/panel/index.html:152:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/index.html:153:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:154:            <span class="card-title">Observed Technologies</span>
/home/yeff/public_html/devon/panel/index.html:157:          <div id="subcategory-grid" class="subcategory-grid"></div>
/home/yeff/public_html/devon/panel/index.html:160:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/index.html:161:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:162:            <span class="card-title">Canonical Evidence Rows</span>
/home/yeff/public_html/devon/panel/index.html:172:    <aside id="data-viewer-modal" class="op-drawer">
/home/yeff/public_html/devon/panel/index.html:173:      <section class="drawer-card">
/home/yeff/public_html/devon/panel/index.html:174:        <div class="card-top">
/home/yeff/public_html/devon/panel/index.html:175:          <span class="card-title">Canon / Data Viewer</span>
/home/yeff/public_html/devon/panel/index.html:176:          <span id="drawer-label" class="badge badge-violet">secondary</span>
/home/yeff/public_html/devon/panel/index.html:183:  <script src="assets/js/panel.runtime.fix.20260408_1.js?v=1"></script>
/home/yeff/public_html/devon/panel/data/ncs.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/ncs.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/ncs.md:7:document_role: naming_and_contract_standard_for_phase_02
/home/yeff/public_html/devon/panel/data/ncs.md:13:Define canonical naming rules for Devon architecture, documentation, runtime artifacts, panel data, phases, contracts and operational identifiers.
/home/yeff/public_html/devon/panel/data/ncs.md:19:- phase labels
/home/yeff/public_html/devon/panel/data/ncs.md:20:- card IDs
/home/yeff/public_html/devon/panel/data/ncs.md:35:- traceable to phase and role
/home/yeff/public_html/devon/panel/data/ncs.md:53:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/ncs.md:108:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/ncs.md:113:`/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/panel/data/ncs.md:116:Canonical docs that govern panel, architecture or execution must live under:
/home/yeff/public_html/devon/panel/data/ncs.md:117:- panel/data
/home/yeff/public_html/devon/panel/data/ncs.md:125:Official phase names:
/home/yeff/public_html/devon/panel/data/ncs.md:139:- `phase: 02`
/home/yeff/public_html/devon/panel/data/ncs.md:140:- `phase_name: Architecture & Engineering Canon`
/home/yeff/public_html/devon/panel/data/ncs.md:145:- multiple names for same phase
/home/yeff/public_html/devon/panel/data/ncs.md:158:- phase
/home/yeff/public_html/devon/panel/data/ncs.md:159:- phase_name
/home/yeff/public_html/devon/panel/data/ncs.md:169:phase: 02
/home/yeff/public_html/devon/panel/data/ncs.md:170:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/ncs.md:171:document_role: governance_root_for_phase_02
/home/yeff/public_html/devon/panel/data/ccc.md:9:Describe container topology and runtime isolation.
/home/yeff/public_html/devon/panel/data/ccc.md:18:- describe container boundaries
/home/yeff/public_html/devon/panel/data/oac.md:5:phase: 07
/home/yeff/public_html/devon/panel/data/oac.md:6:phase_name: Observability & Audit Canon
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:3:    "canon_id": "devon-panel-tree",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:8:  "panel_root": {
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:17:      "card_grid",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:18:      "evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:19:      "contract_drawer",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:31:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:33:          "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:49:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:51:          "card_id": "project-scope",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:61:          "card_id": "deployment-order",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:71:          "card_id": "card-contracts",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:86:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:88:          "card_id": "server-registry",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:104:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:106:          "card_id": "infrastructure",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:109:            "containers",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:117:          "card_id": "storage-state",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:131:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:133:          "card_id": "memory-manager",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:149:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:151:          "card_id": "core-runtime",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:166:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:168:          "card_id": "observability-audit",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:183:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:185:          "card_id": "remote-orchestration",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:195:          "card_id": "sandbox-environments",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:210:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:212:          "card_id": "language-understanding",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:222:          "card_id": "embeddings",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:232:          "card_id": "retrieval",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:242:          "card_id": "reasoning",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:252:          "card_id": "causality",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:262:          "card_id": "attention-goals",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:272:          "card_id": "multimodal",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:286:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:288:          "card_id": "architect",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:298:          "card_id": "planner",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:308:          "card_id": "generator",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:318:          "card_id": "canonizer",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:328:          "card_id": "validator-ci",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:339:          "card_id": "executor",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:349:          "card_id": "artifact-canon-layer",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:359:          "card_id": "skill-registry",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:373:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:375:          "card_id": "policy-governance",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:386:          "card_id": "self-monitoring",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:400:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:402:          "card_id": "benchmark-runner",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:412:          "card_id": "rl-engine",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:422:          "card_id": "learning-loop",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:437:      "cards": [
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:439:          "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:442:            "dashboard",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:444:            "evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:454:    "card_status_source": "evidence_only",
/home/yeff/public_html/devon/panel/data/panel_canonical_tree.json:460:    "required_drawers": [
/home/yeff/public_html/devon/panel/data/devon_continuity.md:8:- Limpeza completa de arquivos órfãos no Waresite /panel/data
/home/yeff/public_html/devon/panel/data/devon_continuity.md:11:- monitoring_canonical.json criado — define CPU, memory, disk, network, containers, nginx, security
/home/yeff/public_html/devon/panel/data/devon_continuity.md:14:- hub_index.json atualizado: 10 phases, 12 categories, monitoring_observability adicionado
/home/yeff/public_html/devon/panel/data/devon_continuity.md:15:- project_progress_canonical.json e project_progress_model.json registrados em overview_scope
/home/yeff/public_html/devon/panel/data/devon_continuity.md:17:- Export script Devon corrigido para sincronizar canon completo (panel_export/current)
/home/yeff/public_html/devon/panel/data/devon_continuity.md:23:- Após SSE: remover export_panel_runtime.sh
/home/yeff/public_html/devon/panel/data/devon_continuity.md:33:- Devon is already emitting real runtime for host, docker, pipeline and project progress.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:41:- This makes some donuts mathematically calculated but semantically invalid.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:85:- Devon server is the origin of real runtime, host, container, and execution data.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:89:- Canonical root: `/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:92:- Canonical continuity file: `/home/yeff/public_html/devon/panel/data/devon_continuity.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:97:- No fake status or fake progress.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:125:  - Devon: runtime origin, host state, containers, execution
/home/yeff/public_html/devon/panel/data/devon_continuity.md:209:- `/opt/devon/bin/export_panel_runtime.sh`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:213:- `/opt/devon/runtime/panel_export/current`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:218:- The Devon host does not yet contain container runtime baseline.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:235:7. Only after that: service/container materialization
/home/yeff/public_html/devon/panel/data/devon_continuity.md:254:- Do not reopen the old donut problem as an unresolved backend/UI ambiguity.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:256:- `export_panel_runtime.sh` is now the validated publication bridge from Devon runtime to Waresite panel data.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:257:- `project_progress.json` remains sovereign for the global project donut.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:258:- `stage_rollup.progress_pct` remains sovereign for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:259:- Subcategory cards must treat `0 eligible` as `not eligible`, never as `0%`.
/home/yeff/public_html/devon/panel/data/devon_continuity.md:269:- Canonical root: `/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:270:- Continuity file: `/home/yeff/public_html/devon/panel/data/devon_continuity.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:276:  - `project_progress.json` drives the global project donut
/home/yeff/public_html/devon/panel/data/devon_continuity.md:277:  - `stage_rollup.progress_pct` drives stage completion
/home/yeff/public_html/devon/panel/data/devon_continuity.md:278:  - subcards with `0 eligible` now render `MISSING / not eligible`
/home/yeff/public_html/devon/panel/data/devon_continuity.md:282:    - `bash /opt/devon/bin/export_panel_runtime.sh`
/home/yeff/public_html/devon/panel/data/project_progress_model.json:3:    "canon_id": "devon-project-progress-model",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:8:  "project_progress_model": {
/home/yeff/public_html/devon/panel/data/project_progress_model.json:9:    "objective": "Define the explicit sovereign weighting model for global project progress.",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:12:    "source_seed": "/opt/devon/runtime/panel_export/current/panel_content_index.json",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:19:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:21:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:29:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:31:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:39:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:41:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:49:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:51:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:59:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:61:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:69:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:71:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:79:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:81:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:89:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:91:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:99:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:101:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:109:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:111:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:119:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:121:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:129:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:131:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:132:        "notes": "benchmark/learning matter later and should not inflate early progress"
/home/yeff/public_html/devon/panel/data/project_progress_model.json:139:        "eligible_for_global_progress": true,
/home/yeff/public_html/devon/panel/data/project_progress_model.json:141:        "count_mode": "weighted_observed_progress",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:142:        "notes": "operator panel is part of the product but low weight globally"
/home/yeff/public_html/devon/panel/data/project_progress_model.json:161:    "global_formula": "global_pct = sum((stage_progress_pct * weight_pct)/100 for each contributing eligible stage)",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:164:      "rule": "only eligible stages with observable stage progress may contribute",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:169:      "source_of_truth": "/home/yeff/public_html/devon/panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/panel/data/project_progress_model.json:170:      "rule": "weights reflect the complete final Devon system, not the current installation phase",
/home/yeff/public_html/devon/panel/data/subcategory_pipelines.json:74:        "containers",
/home/yeff/public_html/devon/panel/data/subcategory_pipelines.json:299:    "operator_panel": {
/home/yeff/public_html/devon/panel/data/subcategory_pipelines.json:301:        "dashboard",
/home/yeff/public_html/devon/panel/data/subcategory_pipelines.json:303:        "evidence_drawer",
/home/yeff/public_html/devon/panel/data/lpc.md:5:phase: 05
/home/yeff/public_html/devon/panel/data/lpc.md:6:phase_name: Latency & Performance Canon
/home/yeff/public_html/devon/panel/data/lpc.md:54:- minimal transformation chain
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:10:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:11:      "phase-08"
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:42:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:46:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:47:    "phase-08"
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:54:      "phase_origin": [
/home/yeff/public_html/devon/panel/data/host_security_canonical.json:55:        "phase-08"
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:35:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:36:      "phase-08"
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:45:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:49:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:50:    "phase-08"
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:56:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/memory_lifecycle_canonical.json:57:      "phase-08"
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:14:  - `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:15:  - `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:20:- `stage_rollup` is now a sovereign runtime row type and its `progress_pct` is the canonical source for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:21:- `project_progress.json` remains the sovereign source for global project completion.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:22:- `export_panel_runtime.sh` was validated as the Devon → Waresite publication bridge for:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:27:  - `project_progress.json`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:36:- `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:37:- `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:43:- Global project completion must read from `project_progress.json`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:44:- Stage completion must read from `stage_rollup.progress_pct`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:45:- Subcategory cards must not render percentage donuts when `completionRows == 0`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:53:3. `export_panel_runtime.sh` synchronizes runtime artifacts to Waresite
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:54:4. Operator Panel reads published semantics without manual donut patching for new server-side evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:129:- phase ownership
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:139:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:158:- panel/data = system state
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:169:- panel/documentation bridge artifacts
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:194:- phase origin preserves real installation and configuration sequence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:229:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:280:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:281:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:282:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:283:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:327:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:331:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:335:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:345:defines build progression, release logic, operational flows, canonization and project execution mapping.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:387:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:391:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:397:defines live system state, runtime bridge, containers, observability and operational support artifacts.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:415:cdms.md is the sovereign authority for Phase 04 containerization, deployment topology and isolation boundaries.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:416:ccc.md remains a Phase 03 contextual component reference and may not redefine containerization authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:435:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:451:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:515:Operationally, their trust-bound phase origin is Phase 08.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:557:defines real-time operational monitoring of the Devon host, containers and services.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:575:- Docker container health per container with CPU, memory and restart count
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:591:- Defines the SSE permanent channel that replaces export_panel_runtime.sh
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:607:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:651:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:656:  - /panel/data/cas.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:660:  - wrong phase binding
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:665:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:666:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:667:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:668:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:693:  - /panel/data/cgs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:702:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:703:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:704:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:728:  - /panel/data/acs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:746:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:747:  - panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:748:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:749:  - card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:776:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:777:  - card shell rendering
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:806:  - /panel/data/ncs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:807:  - /panel/data/sts.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:849:  - files exist in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:858:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:859:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:866:  - phase binding is absent
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:908:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:913:  - /panel/data/cfc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:922:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:923:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:924:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:925:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:950:  - /panel/data/ccc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:960:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:966:- why_this_item_exists: define performance-sensitive flow expectations that must be respected before runtime optimization phases are implemented
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:970:  - runtime optimization cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:982:  3. define what later runtime phases must preserve
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:988:  - /panel/data/lpc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:997:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:998:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1027:  - /panel/data/nrc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1028:  - /panel/data/oac.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1037:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1038:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1051:  - downstream containerization, runtime optimization, observability and tool execution monitoring may not be treated as canonically safe until Phase 03 is materially valid
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1060:canonize containerization, service isolation, networking, persistent state mounting and deployment topology so runtime execution starts from an explicit and monitorable infrastructure baseline.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1066:- canonical_role: deployment structure authority for container topology
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1079:  1. register container topology authority under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1093:  - deployment structure file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1094:  - DH renders containerization references under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1100:  - container topology is explicit, registered and readable as canonical authority
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1102:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1103:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1104:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1105:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1142:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1143:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1144:  - server scope drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1184:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1185:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1190:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1195:- why_this_item_exists: connect containerization canon to observable runtime evidence without allowing runtime artifacts to redefine sovereign canon
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1202:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1203:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1204:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1216:  - panel can read them as support evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1219:  - /panel/data/panel_runtime_bridge.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1220:  - /panel/data/host_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1221:  - /panel/data/docker_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1222:  - /panel/data/runtime_status.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1233:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1234:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1295:real-time host, container and service monitoring with SSE transport to the Operator Panel.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1296:This phase must be complete before SSE bridge replaces the push_snapshot model.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1303:3. A phase authority file may define a concept only if ownership is assigned here.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1338:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1354:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1364:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1365:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1366:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1367:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1368:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1369:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1370:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1371:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1372:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1382:- project_progress_canonical.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1383:- project_progress_model.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1389:- project_progress.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1430:This section defines the mandatory process model that every canonical category, section, card and implementation item must follow.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1436:a category is not sufficiently documented if it only declares files, layers, phase origin or dependencies.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1445:3. Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1452:It preserves installation/configuration order and canonical progression.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1461:Examples inside a phase:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1469:a category is not the phase itself.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1470:A phase contains categories.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1472:#### Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1473:A Process bucket is the ordered operational subdivision inside a category.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1474:Mandatory canonical buckets are:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1485:process buckets must appear in execution order.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1489:An Item is the smallest executable process unit inside a process bucket.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1507:Process buckets:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1518:- bind file to phase
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1524:left navigation = phase registry.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1525:center workflow = categories inside the selected phase.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1526:category body = ordered process buckets.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1527:bucket body = executable items.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1535:- phase_origin
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1538:- card_id
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1619:- phase binding visibility
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1630:- health, containers and process telemetry
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1637:- Operator Panel may summarize runtime state, but may not redefine canonical ownership, precedence, phase order or documentary authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1655:- evidence drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1656:- contract drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1657:- dependency drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md:1703:- the file exists materially in `/panel/data`
/home/yeff/public_html/devon/panel/data/cdms.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/cdms.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/cdms.md:7:document_role: containerization_and_deployment_master_for_phase_02
/home/yeff/public_html/devon/panel/data/cdms.md:13:Define canonical containerization and deployment structure for Devon modules.
/home/yeff/public_html/devon/panel/data/cdms.md:22:- one operational responsibility per container
/home/yeff/public_html/devon/panel/data/cdms.md:24:No ornamental container split.
/home/yeff/public_html/devon/panel/data/cdms.md:25:No authority mixing inside a single container where separation is required.
/home/yeff/public_html/devon/panel/data/sec.md:5:phase: 08
/home/yeff/public_html/devon/panel/data/sec.md:6:phase_name: Security Canon
/home/yeff/public_html/devon/panel/data/sec.md:72:Namespace partitioning is flexible.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:14:  - `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:15:  - `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:20:- `stage_rollup` is now a sovereign runtime row type and its `progress_pct` is the canonical source for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:21:- `project_progress.json` remains the sovereign source for global project completion.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:22:- `export_panel_runtime.sh` was validated as the Devon → Waresite publication bridge for:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:27:  - `project_progress.json`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:36:- `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:37:- `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:43:- Global project completion must read from `project_progress.json`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:44:- Stage completion must read from `stage_rollup.progress_pct`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:45:- Subcategory cards must not render percentage donuts when `completionRows == 0`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:53:3. `export_panel_runtime.sh` synchronizes runtime artifacts to Waresite
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:54:4. Operator Panel reads published semantics without manual donut patching for new server-side evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:111:- phase ownership
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:118:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:126:- panel/documentation bridge artifacts
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:151:- phase origin preserves real installation and configuration sequence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:186:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:237:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:238:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:239:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:240:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:284:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:288:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:292:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:302:defines build progression, release logic, operational flows, canonization and project execution mapping.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:344:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:348:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:354:defines live system state, runtime bridge, containers, observability and operational support artifacts.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:372:cdms.md is the sovereign authority for Phase 04 containerization, deployment topology and isolation boundaries.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:373:ccc.md remains a Phase 03 contextual component reference and may not redefine containerization authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:392:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:408:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:472:Operationally, their trust-bound phase origin is Phase 08.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:519:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:563:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:568:  - /panel/data/cas.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:572:  - wrong phase binding
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:577:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:578:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:579:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:580:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:605:  - /panel/data/cgs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:614:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:615:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:616:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:640:  - /panel/data/acs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:658:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:659:  - panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:660:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:661:  - card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:688:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:689:  - card shell rendering
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:718:  - /panel/data/ncs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:719:  - /panel/data/sts.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:761:  - files exist in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:770:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:771:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:778:  - phase binding is absent
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:820:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:825:  - /panel/data/cfc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:834:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:835:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:836:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:837:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:862:  - /panel/data/ccc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:872:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:878:- why_this_item_exists: define performance-sensitive flow expectations that must be respected before runtime optimization phases are implemented
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:882:  - runtime optimization cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:894:  3. define what later runtime phases must preserve
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:900:  - /panel/data/lpc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:909:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:910:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:939:  - /panel/data/nrc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:940:  - /panel/data/oac.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:949:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:950:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:963:  - downstream containerization, runtime optimization, observability and tool execution monitoring may not be treated as canonically safe until Phase 03 is materially valid
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:972:canonize containerization, service isolation, networking, persistent state mounting and deployment topology so runtime execution starts from an explicit and monitorable infrastructure baseline.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:978:- canonical_role: deployment structure authority for container topology
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:991:  1. register container topology authority under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1005:  - deployment structure file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1006:  - DH renders containerization references under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1012:  - container topology is explicit, registered and readable as canonical authority
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1014:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1015:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1016:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1017:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1054:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1055:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1056:  - server scope drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1096:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1097:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1102:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1107:- why_this_item_exists: connect containerization canon to observable runtime evidence without allowing runtime artifacts to redefine sovereign canon
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1114:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1115:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1116:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1128:  - panel can read them as support evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1131:  - /panel/data/panel_runtime_bridge.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1132:  - /panel/data/host_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1133:  - /panel/data/docker_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1134:  - /panel/data/runtime_status.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1145:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1146:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1202:3. A phase authority file may define a concept only if ownership is assigned here.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1237:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1253:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1263:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1264:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1265:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1266:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1267:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1268:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1269:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1270:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1271:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1281:- project_progress_canonical.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1282:- project_progress_model.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1287:- project_progress.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1328:This section defines the mandatory process model that every canonical category, section, card and implementation item must follow.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1334:a category is not sufficiently documented if it only declares files, layers, phase origin or dependencies.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1343:3. Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1350:It preserves installation/configuration order and canonical progression.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1359:Examples inside a phase:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1367:a category is not the phase itself.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1368:A phase contains categories.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1370:#### Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1371:A Process bucket is the ordered operational subdivision inside a category.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1372:Mandatory canonical buckets are:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1383:process buckets must appear in execution order.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1387:An Item is the smallest executable process unit inside a process bucket.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1405:Process buckets:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1416:- bind file to phase
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1422:left navigation = phase registry.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1423:center workflow = categories inside the selected phase.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1424:category body = ordered process buckets.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1425:bucket body = executable items.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1433:- phase_origin
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1436:- card_id
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1517:- phase binding visibility
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1528:- health, containers and process telemetry
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1535:- Operator Panel may summarize runtime state, but may not redefine canonical ownership, precedence, phase order or documentary authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1553:- evidence drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1554:- contract drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1555:- dependency drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.refactor_20260408_235522:1601:- the file exists materially in `/panel/data`
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:3:    "canon_id": "devon-project-progress-canonical",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:6:    "contract_mode": "sovereign_global_progress_definition"
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:8:  "project_progress_canonical": {
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:21:      "/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:22:      "/home/yeff/public_html/devon/panel/data/panel_content_index.json"
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:26:      "progress_pct",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:38:      "mode": "weighted_sum_of_observed_eligible_stage_progress",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:39:      "why": "global progress must reflect only canonically eligible stages with observable stage progress and must publish coverage explicitly",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:40:      "current_expected_ui_state": "NON_MISSING_when_at_least_one_eligible_stage_has_observable_progress",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:41:      "formula": "global_pct = sum((stage_progress_pct * weight_pct)/100 for contributing_stages)",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:45:      "PASS": "global project progress artifact exists, matches the sovereign canonical model, and publishes observed contributors plus coverage",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:46:      "FAIL": "global project progress artifact exists but violates the sovereign canonical model",
/home/yeff/public_html/devon/panel/data/project_progress_canonical.json:47:      "MISSING": "no valid observable global progress runtime exists yet"
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:3:    "canon_id": "devon-panel-component-contract",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:13:      "no_mock_progress",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:16:      "all drawers must be context-aware",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:58:        "placement": "left_sidebar",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:86:        "role": "section/card shortcuts",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:87:        "placement": "left_sidebar",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:91:          "selected_card"
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:97:          "primary_card_ids"
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:101:          "jump_to_card"
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:141:        "component_id": "card_grid",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:143:        "role": "render cards by selected stage/section",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:148:          "card_rows"
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:151:          "card_id",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:160:          "open_card",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:204:          "current_card_title",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:211:          "current_card_title",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:228:        "component_id": "preview_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:254:        "component_id": "artifact_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:279:        "component_id": "contract_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:311:        "component_id": "diff_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:336:        "component_id": "logs_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:362:        "component_id": "metrics_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:387:        "component_id": "timeline_panel",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:413:        "component_id": "evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:443:        "component_id": "contract_drawer",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:469:        "component_id": "dependency_drawer",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:495:        "component_id": "memory_scope_drawer",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:523:        "component_id": "server_scope_drawer",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:553:        "component_id": "validation_drawer",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:580:      "selected_stage_source": "11_panel_content_index.yaml",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:581:      "selected_card_source": "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:583:      "contract_source": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:597:      "tablet": "overlay_side_panels",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:598:      "mobile": "stacked_workspace_with_offcanvas_side_panels"
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:602:        "10_panel_data_contract.yaml exists",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:603:        "11_panel_content_index.yaml exists",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:604:        "12_panel_ui_blueprint.yaml exists",
/home/yeff/public_html/devon/panel/data/panel_component_contract.json:605:        "13_panel_component_contract.yaml exists"
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:26:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:27:      "phase-08"
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:36:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:40:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:41:    "phase-08"
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:47:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/tool_execution_canonical.json:48:      "phase-08"
/home/yeff/public_html/devon/panel/data/runtime_status.json:3:  "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:19:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:20:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:22:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:38:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:106:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:107:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:121:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:149:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:150:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:171:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:199:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:200:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:214:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:242:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:243:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:245:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:261:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:309:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:310:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:325:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:353:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:354:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:369:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:390:      "technology": "card_contracts",
/home/yeff/public_html/devon/panel/data/runtime_status.json:397:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:398:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:409:        "path": "/opt/devon/canon/03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/runtime_status.json:413:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:441:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:442:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:444:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:460:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:524:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:525:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:539:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:567:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:568:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:570:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:586:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:650:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:651:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:672:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:700:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:701:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:703:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:719:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:755:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:763:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:764:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:765:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:786:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:806:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:814:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:815:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:816:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:832:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:852:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:860:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:861:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:862:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:884:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:904:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:912:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:913:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:914:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:936:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:956:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:964:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:965:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:966:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:988:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1016:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1017:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1019:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:1035:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1103:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1104:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1125:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1153:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1154:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1175:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1203:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1204:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1218:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1246:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1247:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1268:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1296:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1297:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1311:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1339:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1340:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1354:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1382:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1383:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1397:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1425:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1426:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1440:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1468:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1469:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1471:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:1487:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1543:      "subcategory": "containers",
/home/yeff/public_html/devon/panel/data/runtime_status.json:1551:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1552:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1553:      "ui_group": "foundation_infrastructure:containers",
/home/yeff/public_html/devon/panel/data/runtime_status.json:1566:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1594:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1595:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1597:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:1613:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1673:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1674:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1695:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1723:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1724:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1738:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1766:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1767:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1769:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:1785:      "progress_pct": 71,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1837:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1838:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1853:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1881:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1882:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1897:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1925:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1926:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1946:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1974:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1975:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:1995:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2023:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2024:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2041:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2069:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2070:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2087:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2115:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2116:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2146:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2174:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2175:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2190:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2206:      "runtime_id": "host.panel.export.current",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2207:      "item_id": "host.panel.export.current",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2210:      "subcategory": "panel_export",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2211:      "technology": "panel_export_current_dir",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2213:      "probe_ref": "probe.dir.panel_export_current",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2218:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2219:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2220:      "ui_group": "host_readiness:panel_export",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2230:        "path": "/opt/devon/runtime/panel_export/current",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2234:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2262:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2263:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2284:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2305:      "technology": "panel_runtime_bridge",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2312:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2313:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2327:          "[ -f /opt/devon/runtime/panel_export/current/panel_runtime_bridge.json ] && [ -f /opt/devon/runtime/panel_export/current/deployment_order_canonical.json ]"
/home/yeff/public_html/devon/panel/data/runtime_status.json:2334:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2362:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2363:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2377:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2405:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2406:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2421:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2449:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2450:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2470:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2498:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2499:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2519:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2547:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2548:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2570:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2598:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2599:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2601:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2617:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2677:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2678:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2699:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2727:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2728:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2730:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2746:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2810:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2811:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2825:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2841:      "runtime_id": "stage-operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2844:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2853:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2854:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2856:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2872:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2927:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2929:      "technology": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2936:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2937:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2938:      "ui_group": "operator_panel:contract_explorer",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2951:          "[ -f /home/yeff/public_html/devon/panel/index.html ] && [ -d /home/yeff/public_html/devon/panel/assets ]"
/home/yeff/public_html/devon/panel/data/runtime_status.json:2958:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2977:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_status.json:2986:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2987:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:2988:      "ui_group": "operator_panel:promotion_gate",
/home/yeff/public_html/devon/panel/data/runtime_status.json:3001:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3029:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3030:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3032:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:3048:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3108:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3109:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3130:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3158:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3159:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3161:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:3177:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3241:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3242:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3256:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3284:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3285:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3287:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:3303:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3351:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3352:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3367:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3395:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3396:      "display_in_donuts": false,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3410:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3438:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3439:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3441:      "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/data/runtime_status.json:3457:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3525:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3526:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3540:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/data/runtime_status.json:3559:    "RUNNING": "observable execution is in progress",
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:4:parent: /home/yeff/public_html/devon/panel/data/master_architecture_index.md
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:5:phase: 01
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:6:phase_name: Overview & Scope
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:17:- /home/yeff/public_html/devon/panel/data/master_architecture_index.md
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:23:Status real do /panel/data:
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:24:- phases 01 to 09 are materially present in the filesystem
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:33:- /home/yeff/public_html/devon/panel/data/master_architecture_index.md
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:36:- /home/yeff/public_html/devon/panel/data/
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:48:- one phase per chat
/home/yeff/public_html/devon/panel/data/devon_panel_chat_checkpoint.md:49:- one patch per phase whenever possible
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:14:  - `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:15:  - `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:20:- `stage_rollup` is now a sovereign runtime row type and its `progress_pct` is the canonical source for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:21:- `project_progress.json` remains the sovereign source for global project completion.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:22:- `export_panel_runtime.sh` was validated as the Devon → Waresite publication bridge for:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:27:  - `project_progress.json`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:36:- `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:37:- `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:43:- Global project completion must read from `project_progress.json`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:44:- Stage completion must read from `stage_rollup.progress_pct`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:45:- Subcategory cards must not render percentage donuts when `completionRows == 0`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:53:3. `export_panel_runtime.sh` synchronizes runtime artifacts to Waresite
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:54:4. Operator Panel reads published semantics without manual donut patching for new server-side evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:111:- phase ownership
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:118:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:126:- panel/documentation bridge artifacts
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:151:- phase origin preserves real installation and configuration sequence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:186:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:237:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:238:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:239:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:240:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:284:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:288:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:292:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:302:defines build progression, release logic, operational flows, canonization and project execution mapping.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:344:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:348:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:354:defines live system state, runtime bridge, containers, observability and operational support artifacts.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:372:cdms.md is the sovereign authority for Phase 04 containerization, deployment topology and isolation boundaries.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:373:ccc.md remains a Phase 03 contextual component reference and may not redefine containerization authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:392:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:408:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:472:Operationally, their trust-bound phase origin is Phase 08.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:519:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:563:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:568:  - /panel/data/cas.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:572:  - wrong phase binding
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:577:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:578:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:579:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:580:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:605:  - /panel/data/cgs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:614:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:615:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:616:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:640:  - /panel/data/acs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:658:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:659:  - panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:660:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:661:  - card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:688:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:689:  - card shell rendering
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:718:  - /panel/data/ncs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:719:  - /panel/data/sts.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:761:  - files exist in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:770:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:771:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:778:  - phase binding is absent
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:820:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:825:  - /panel/data/cfc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:834:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:835:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:836:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:837:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:862:  - /panel/data/ccc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:872:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:878:- why_this_item_exists: define performance-sensitive flow expectations that must be respected before runtime optimization phases are implemented
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:882:  - runtime optimization cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:894:  3. define what later runtime phases must preserve
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:900:  - /panel/data/lpc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:909:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:910:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:939:  - /panel/data/nrc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:940:  - /panel/data/oac.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:949:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:950:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:963:  - downstream containerization, runtime optimization, observability and tool execution monitoring may not be treated as canonically safe until Phase 03 is materially valid
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:972:canonize containerization, service isolation, networking, persistent state mounting and deployment topology so runtime execution starts from an explicit and monitorable infrastructure baseline.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:978:- canonical_role: deployment structure authority for container topology
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:991:  1. register container topology authority under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1005:  - deployment structure file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1006:  - DH renders containerization references under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1012:  - container topology is explicit, registered and readable as canonical authority
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1014:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1015:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1016:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1017:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1054:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1055:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1056:  - server scope drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1096:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1097:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1102:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1107:- why_this_item_exists: connect containerization canon to observable runtime evidence without allowing runtime artifacts to redefine sovereign canon
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1114:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1115:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1116:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1128:  - panel can read them as support evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1131:  - /panel/data/panel_runtime_bridge.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1132:  - /panel/data/host_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1133:  - /panel/data/docker_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1134:  - /panel/data/runtime_status.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1145:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1146:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1202:3. A phase authority file may define a concept only if ownership is assigned here.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1237:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1253:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1263:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1264:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1265:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1266:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1267:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1268:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1269:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1270:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1271:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1323:This section defines the mandatory process model that every canonical category, section, card and implementation item must follow.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1329:a category is not sufficiently documented if it only declares files, layers, phase origin or dependencies.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1338:3. Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1345:It preserves installation/configuration order and canonical progression.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1354:Examples inside a phase:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1362:a category is not the phase itself.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1363:A phase contains categories.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1365:#### Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1366:A Process bucket is the ordered operational subdivision inside a category.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1367:Mandatory canonical buckets are:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1378:process buckets must appear in execution order.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1382:An Item is the smallest executable process unit inside a process bucket.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1400:Process buckets:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1411:- bind file to phase
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1417:left navigation = phase registry.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1418:center workflow = categories inside the selected phase.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1419:category body = ordered process buckets.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1420:bucket body = executable items.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1428:- phase_origin
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1431:- card_id
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1512:- phase binding visibility
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1523:- health, containers and process telemetry
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1530:- Operator Panel may summarize runtime state, but may not redefine canonical ownership, precedence, phase order or documentary authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1548:- evidence drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1549:- contract drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1550:- dependency drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.cleanup_20260408_233424:1596:- the file exists materially in `/panel/data`
/home/yeff/public_html/devon/panel/data/panel_manifest.json:5:  "target_host": "yeff-panel",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:9:    "card_contract_minimums.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:12:    "panel_canonical_tree.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:13:    "panel_component_contract.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:14:    "panel_content_index.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:15:    "panel_data_contract.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:16:    "panel_navigation_spec.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:17:    "panel_runtime_bridge.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:18:    "panel_sync_contract.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:19:    "panel_ui_blueprint.json",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:27:    "09_panel_navigation_spec.yaml": "b59e35b9618eb95a13095b9ad336a24ba52296f3e969ca5744d1a9358512b8a3",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:28:    "10_panel_data_contract.yaml": "a3ac9917f246923695382dcdd8f2085fdb8004b1bf8f84e76ba7983e697438fe",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:29:    "11_panel_content_index.yaml": "5c44b3f672c274d3902b7debdb679c8072a784c94e7be7a1d51a380682abe6bd",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:30:    "12_panel_ui_blueprint.yaml": "c331874afe56ec165e9758bdd87e78673c6505bc3bea10450fdfa672f6866f98",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:31:    "13_panel_component_contract.yaml": "75124a3bd18c498038f5c43eadeaa86506605cfc0304dbc69673f52ea636f48d",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:34:    "02_panel_canonical_tree.yaml": "85acc2fdfd14b3cb78191e6a3b35a724ae4767aef24b680362506b91cb438b87",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:35:    "03_card_contract_minimums.yaml": "ca7911b3e01102de89bd2fcc59f3310accde97baea11a5eac5d78122f8ce0a6d",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:40:    "14_panel_runtime_bridge.yaml": "fae71c36d5575bdecbc3122900ffb7fe1b4da72721fa4e2f05639981fadeb1e1",
/home/yeff/public_html/devon/panel/data/panel_manifest.json:41:    "15_panel_sync_contract.yaml": "16433d67236a037492eb909f351f2f095d1ce8bf36a414edb2e7b5c61048d3dd"
/home/yeff/public_html/devon/panel/data/cgs.md:32:- phase and layer binding visibility
/home/yeff/public_html/devon/panel/data/host_runtime.json:3:  "source_contract": "devon-panel-host-runtime",
/home/yeff/public_html/devon/panel/data/css.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/css.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/css.md:7:document_role: contract_and_schema_standard_for_phase_02
/home/yeff/public_html/devon/panel/data/css.md:25:- panel data
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:26:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:27:      "phase-08"
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:36:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:40:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:41:    "phase-08"
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:47:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/planning_reasoning_canonical.json:48:      "phase-08"
/home/yeff/public_html/devon/panel/data/brps.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/brps.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/brps.md:7:document_role: build_release_and_promotion_standard_for_phase_02
/home/yeff/public_html/devon/panel/data/sse_bridge_canonical.json:8:    "phase_origin": ["phase-10"],
/home/yeff/public_html/devon/panel/data/sse_bridge_canonical.json:13:    "objective": "Define the canonical SSE transport that replaces the manual export_panel_runtime.sh push model with a permanent real-time channel from Devon to Waresite Operator Panel.",
/home/yeff/public_html/devon/panel/data/sse_bridge_canonical.json:16:      "script": "export_panel_runtime.sh",
/home/yeff/public_html/devon/panel/data/sse_bridge_canonical.json:30:        "project_progress_update"
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:10:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:11:      "phase-08"
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:40:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:44:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:45:    "phase-08"
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:52:      "phase_origin": [
/home/yeff/public_html/devon/panel/data/module_security_canonical.json:53:        "phase-08"
/home/yeff/public_html/devon/panel/data/project_progress.json:3:  "source_contract": "devon-project-progress-runtime",
/home/yeff/public_html/devon/panel/data/project_progress.json:5:  "global_project_progress": {
/home/yeff/public_html/devon/panel/data/project_progress.json:7:    "progress_pct": 11,
/home/yeff/public_html/devon/panel/data/project_progress.json:21:      "operator_panel",
/home/yeff/public_html/devon/panel/data/project_progress.json:37:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:46:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:55:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:64:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:73:        "stage_progress_pct": 100,
/home/yeff/public_html/devon/panel/data/project_progress.json:82:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:91:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:100:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:109:        "stage_progress_pct": 71,
/home/yeff/public_html/devon/panel/data/project_progress.json:118:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:127:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:132:        "stage_key": "operator_panel",
/home/yeff/public_html/devon/panel/data/project_progress.json:133:        "label": "operator_panel",
/home/yeff/public_html/devon/panel/data/project_progress.json:134:        "runtime_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/project_progress.json:136:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:145:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:154:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:163:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/project_progress.json:172:        "stage_progress_pct": 0,
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:14:  - `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:15:  - `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:20:- `stage_rollup` is now a sovereign runtime row type and its `progress_pct` is the canonical source for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:21:- `project_progress.json` remains the sovereign source for global project completion.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:22:- `export_panel_runtime.sh` was validated as the Devon → Waresite publication bridge for:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:27:  - `project_progress.json`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:36:- `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:37:- `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:43:- Global project completion must read from `project_progress.json`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:44:- Stage completion must read from `stage_rollup.progress_pct`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:45:- Subcategory cards must not render percentage donuts when `completionRows == 0`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:53:3. `export_panel_runtime.sh` synchronizes runtime artifacts to Waresite
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:54:4. Operator Panel reads published semantics without manual donut patching for new server-side evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:111:- phase ownership
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:121:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:140:- panel/data = system state
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:151:- panel/documentation bridge artifacts
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:176:- phase origin preserves real installation and configuration sequence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:211:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:262:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:263:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:264:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:265:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:309:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:313:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:317:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:327:defines build progression, release logic, operational flows, canonization and project execution mapping.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:369:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:373:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:379:defines live system state, runtime bridge, containers, observability and operational support artifacts.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:397:cdms.md is the sovereign authority for Phase 04 containerization, deployment topology and isolation boundaries.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:398:ccc.md remains a Phase 03 contextual component reference and may not redefine containerization authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:417:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:433:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:497:Operationally, their trust-bound phase origin is Phase 08.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:539:defines real-time operational monitoring of the Devon host, containers and services.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:557:- Docker container health per container with CPU, memory and restart count
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:573:- Defines the SSE permanent channel that replaces export_panel_runtime.sh
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:589:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:633:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:638:  - /panel/data/cas.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:642:  - wrong phase binding
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:647:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:648:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:649:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:650:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:675:  - /panel/data/cgs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:684:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:685:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:686:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:710:  - /panel/data/acs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:728:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:729:  - panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:730:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:731:  - card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:758:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:759:  - card shell rendering
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:788:  - /panel/data/ncs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:789:  - /panel/data/sts.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:831:  - files exist in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:840:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:841:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:848:  - phase binding is absent
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:890:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:895:  - /panel/data/cfc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:904:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:905:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:906:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:907:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:932:  - /panel/data/ccc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:942:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:948:- why_this_item_exists: define performance-sensitive flow expectations that must be respected before runtime optimization phases are implemented
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:952:  - runtime optimization cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:964:  3. define what later runtime phases must preserve
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:970:  - /panel/data/lpc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:979:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:980:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1009:  - /panel/data/nrc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1010:  - /panel/data/oac.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1019:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1020:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1033:  - downstream containerization, runtime optimization, observability and tool execution monitoring may not be treated as canonically safe until Phase 03 is materially valid
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1042:canonize containerization, service isolation, networking, persistent state mounting and deployment topology so runtime execution starts from an explicit and monitorable infrastructure baseline.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1048:- canonical_role: deployment structure authority for container topology
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1061:  1. register container topology authority under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1075:  - deployment structure file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1076:  - DH renders containerization references under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1082:  - container topology is explicit, registered and readable as canonical authority
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1084:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1085:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1086:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1087:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1124:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1125:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1126:  - server scope drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1166:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1167:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1172:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1177:- why_this_item_exists: connect containerization canon to observable runtime evidence without allowing runtime artifacts to redefine sovereign canon
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1184:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1185:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1186:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1198:  - panel can read them as support evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1201:  - /panel/data/panel_runtime_bridge.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1202:  - /panel/data/host_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1203:  - /panel/data/docker_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1204:  - /panel/data/runtime_status.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1215:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1216:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1277:real-time host, container and service monitoring with SSE transport to the Operator Panel.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1278:This phase must be complete before SSE bridge replaces the push_snapshot model.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1285:3. A phase authority file may define a concept only if ownership is assigned here.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1320:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1336:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1346:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1347:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1348:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1349:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1350:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1351:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1352:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1353:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1354:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1364:- project_progress_canonical.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1365:- project_progress_model.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1371:- project_progress.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1412:This section defines the mandatory process model that every canonical category, section, card and implementation item must follow.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1418:a category is not sufficiently documented if it only declares files, layers, phase origin or dependencies.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1427:3. Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1434:It preserves installation/configuration order and canonical progression.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1443:Examples inside a phase:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1451:a category is not the phase itself.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1452:A phase contains categories.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1454:#### Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1455:A Process bucket is the ordered operational subdivision inside a category.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1456:Mandatory canonical buckets are:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1467:process buckets must appear in execution order.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1471:An Item is the smallest executable process unit inside a process bucket.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1489:Process buckets:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1500:- bind file to phase
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1506:left navigation = phase registry.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1507:center workflow = categories inside the selected phase.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1508:category body = ordered process buckets.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1509:bucket body = executable items.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1517:- phase_origin
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1520:- card_id
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1601:- phase binding visibility
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1612:- health, containers and process telemetry
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1619:- Operator Panel may summarize runtime state, but may not redefine canonical ownership, precedence, phase order or documentary authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1637:- evidence drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1638:- contract drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1639:- dependency drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_context_rule_20260409_084908:1685:- the file exists materially in `/panel/data`
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:10:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:11:      "phase-08"
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:40:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:44:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:45:    "phase-08"
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:52:      "phase_origin": [
/home/yeff/public_html/devon/panel/data/app_security_canonical.json:53:        "phase-08"
/home/yeff/public_html/devon/panel/data/card_contract_minimums.json:3:    "canon_id": "devon-card-contract-minimums",
/home/yeff/public_html/devon/panel/data/card_contract_minimums.json:74:      "containers",
/home/yeff/public_html/devon/panel/data/card_contract_minimums.json:117:      "expected_containers",
/home/yeff/public_html/devon/panel/data/card_contract_minimums.json:157:      "evidence_drawer_sections",
/home/yeff/public_html/devon/panel/data/card_contract_minimums.json:164:  "per_card_policy": {
/home/yeff/public_html/devon/panel/data/card_contract_minimums.json:165:    "every_card_must_define": [
/home/yeff/public_html/devon/panel/data/hub_index.json:2:  "phases": [
/home/yeff/public_html/devon/panel/data/hub_index.json:4:      "id": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:23:      "id": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:44:      "id": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json:65:      "id": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json:68:      "summary": "container topology, isolation and host versus container runtime boundaries.",
/home/yeff/public_html/devon/panel/data/hub_index.json:69:      "badge": "containerization_canon",
/home/yeff/public_html/devon/panel/data/hub_index.json:83:      "id": "phase-05",
/home/yeff/public_html/devon/panel/data/hub_index.json:102:      "id": "phase-06",
/home/yeff/public_html/devon/panel/data/hub_index.json:120:      "id": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json:138:      "id": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:157:      "id": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json:175:      "id": "phase-10",
/home/yeff/public_html/devon/panel/data/hub_index.json:178:      "summary": "real-time host, container and service monitoring with SSE transport to the Operator Panel.",
/home/yeff/public_html/devon/panel/data/hub_index.json:183:          "desc": "CPU, memory, disk, network, container health, security services and SSE bridge canon.",
/home/yeff/public_html/devon/panel/data/hub_index.json:187:            "containers",
/home/yeff/public_html/devon/panel/data/hub_index.json:201:      "badge": "phase 01",
/home/yeff/public_html/devon/panel/data/hub_index.json:206:          "path": "../panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:207:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:212:            "panel_manifest",
/home/yeff/public_html/devon/panel/data/hub_index.json:221:          "id": "panel_manifest",
/home/yeff/public_html/devon/panel/data/hub_index.json:223:          "path": "../panel/data/panel_manifest.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:224:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:226:          "role": "Entry manifest and machine-readable panel entry point.",
/home/yeff/public_html/devon/panel/data/hub_index.json:232:          "architecture_view": "Entry manifest for the panel and documentation surface.",
/home/yeff/public_html/devon/panel/data/hub_index.json:239:          "path": "../panel/data/project_scope_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:240:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:255:          "path": "../panel/data/devon_continuity.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:256:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:271:          "path": "../panel/data/deployment_order_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:272:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:287:          "path": "../panel/data/sandbox_environment_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:288:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:303:          "path": "../panel/data/server_registry_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:304:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:317:          "id": "project_progress_canonical",
/home/yeff/public_html/devon/panel/data/hub_index.json:319:          "path": "../panel/data/project_progress_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:320:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:322:          "role": "Sovereign canonical model for global project progress calculation.",
/home/yeff/public_html/devon/panel/data/hub_index.json:323:          "fits": "Defines the only valid calculation mode and required fields for global progress.",
/home/yeff/public_html/devon/panel/data/hub_index.json:328:            "project_progress_model"
/home/yeff/public_html/devon/panel/data/hub_index.json:330:          "architecture_view": "Global progress canonical authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:335:          "id": "project_progress_model",
/home/yeff/public_html/devon/panel/data/hub_index.json:337:          "path": "../panel/data/project_progress_model.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:338:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json:340:          "role": "Sovereign stage weighting model for global project progress.",
/home/yeff/public_html/devon/panel/data/hub_index.json:341:          "fits": "Defines explicit weights per stage for the global progress donut.",
/home/yeff/public_html/devon/panel/data/hub_index.json:343:            "project_progress_canonical",
/home/yeff/public_html/devon/panel/data/hub_index.json:347:          "architecture_view": "Stage weight authority for global progress.",
/home/yeff/public_html/devon/panel/data/hub_index.json:357:      "badge": "phase 02",
/home/yeff/public_html/devon/panel/data/hub_index.json:362:          "path": "../panel/data/cas.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:363:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:384:          "path": "../panel/data/cgs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:385:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:400:          "path": "../panel/data/acs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:401:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:416:          "path": "../panel/data/css.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:417:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:432:          "path": "../panel/data/ncs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:433:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:448:          "path": "../panel/data/sts.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:449:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:467:          "path": "../panel/data/brps.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:468:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:483:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:484:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:499:          "path": "../panel/data/ris.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:500:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:516:          "path": "../panel/data/ofms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:517:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:531:          "id": "card_contract_minimums",
/home/yeff/public_html/devon/panel/data/hub_index.json:533:          "path": "../panel/data/card_contract_minimums.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:534:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:537:          "fits": "Defines minimum card contract fields for panel and documentation surfaces.",
/home/yeff/public_html/devon/panel/data/hub_index.json:547:          "id": "panel_data_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json:549:          "path": "../panel/data/panel_data_contract.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:550:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:552:          "role": "Structured panel data contract authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:553:          "fits": "Defines machine-readable panel data contract boundaries.",
/home/yeff/public_html/devon/panel/data/hub_index.json:563:          "id": "panel_component_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json:565:          "path": "../panel/data/panel_component_contract.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:566:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:568:          "role": "Structured panel component contract authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:579:          "id": "panel_sync_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json:581:          "path": "../panel/data/panel_sync_contract.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:582:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:584:          "role": "Structured panel sync contract authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:595:          "id": "panel_canonical_tree",
/home/yeff/public_html/devon/panel/data/hub_index.json:597:          "path": "../panel/data/panel_canonical_tree.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:598:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:600:          "role": "Primary panel canonical tree authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:601:          "fits": "Defines structural panel tree and canonical UI grouping.",
/home/yeff/public_html/devon/panel/data/hub_index.json:611:          "id": "panel_navigation_spec",
/home/yeff/public_html/devon/panel/data/hub_index.json:613:          "path": "../panel/data/panel_navigation_spec.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:614:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:616:          "role": "Primary panel navigation authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:617:          "fits": "Defines canonical panel navigation structure.",
/home/yeff/public_html/devon/panel/data/hub_index.json:627:          "id": "panel_ui_blueprint",
/home/yeff/public_html/devon/panel/data/hub_index.json:629:          "path": "../panel/data/panel_ui_blueprint.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:630:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:632:          "role": "Primary panel UI blueprint authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:633:          "fits": "Defines canonical panel UI blueprint expectations.",
/home/yeff/public_html/devon/panel/data/hub_index.json:645:          "path": "../panel/data/canonical_matrix_v1.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:646:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json:664:      "badge": "phase 03",
/home/yeff/public_html/devon/panel/data/hub_index.json:669:          "path": "../panel/data/cfc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:670:          "phase": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json:690:          "path": "../panel/data/ccc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:691:          "phase": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json:707:      "id": "containerization",
/home/yeff/public_html/devon/panel/data/hub_index.json:709:      "sub": "deployment topology, service isolation and runtime/container boundaries under sovereign Phase 04 authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:710:      "badge": "phase 04",
/home/yeff/public_html/devon/panel/data/hub_index.json:715:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:716:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json:717:          "layer": "containerization",
/home/yeff/public_html/devon/panel/data/hub_index.json:718:          "role": "Primary deployment structure and containerization authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:719:          "fits": "Owns container topology, isolation boundaries and deployment placement for Phase 04.",
/home/yeff/public_html/devon/panel/data/hub_index.json:726:          "architecture_view": "Sovereign Phase 04 containerization authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:736:      "badge": "phase 05",
/home/yeff/public_html/devon/panel/data/hub_index.json:741:          "path": "../panel/data/lpc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:742:          "phase": "phase-05",
/home/yeff/public_html/devon/panel/data/hub_index.json:760:      "badge": "phase 06",
/home/yeff/public_html/devon/panel/data/hub_index.json:765:          "path": "../panel/data/nrc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:766:          "phase": "phase-06",
/home/yeff/public_html/devon/panel/data/hub_index.json:785:      "badge": "phase 07",
/home/yeff/public_html/devon/panel/data/hub_index.json:790:          "path": "../panel/data/oac.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:791:          "phase": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json:805:          "id": "panel_runtime_bridge",
/home/yeff/public_html/devon/panel/data/hub_index.json:807:          "path": "../panel/data/panel_runtime_bridge.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:808:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json:813:            "panel_data_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json:814:            "panel_sync_contract"
/home/yeff/public_html/devon/panel/data/hub_index.json:824:          "path": "../panel/data/host_runtime.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:825:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json:830:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json:840:          "path": "../panel/data/docker_runtime.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:841:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json:846:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json:856:          "path": "../panel/data/runtime_status.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:857:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json:862:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json:872:          "path": "../panel/data/runtime_row_semantics_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:873:          "phase": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json:879:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json:892:      "badge": "phase 08",
/home/yeff/public_html/devon/panel/data/hub_index.json:897:          "path": "../panel/data/sec.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:898:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:922:          "path": "../panel/data/host_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:923:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:938:          "path": "../panel/data/app_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:939:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:954:          "path": "../panel/data/module_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:955:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:970:          "path": "../panel/data/runtime_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:971:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:986:          "path": "../panel/data/delivery_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:987:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1002:          "path": "../panel/data/approval_canonization_policy.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1003:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1018:          "path": "../panel/data/memory_isolation_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1019:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1034:          "path": "../panel/data/security_monitoring_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1035:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1053:      "badge": "phase 09",
/home/yeff/public_html/devon/panel/data/hub_index.json:1058:          "path": "../panel/data/ofc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json:1059:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json:1077:      "sub": "build progression, release logic, pipeline mapping and operational content indexing.",
/home/yeff/public_html/devon/panel/data/hub_index.json:1078:      "badge": "phase 09 / phase 02",
/home/yeff/public_html/devon/panel/data/hub_index.json:1083:          "path": "../panel/data/subcategory_pipelines.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1084:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json:1097:          "id": "panel_content_index",
/home/yeff/public_html/devon/panel/data/hub_index.json:1099:          "path": "../panel/data/panel_content_index.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1100:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json:1102:          "role": "Structured panel content index authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:1118:      "badge": "phase 08 / post-core",
/home/yeff/public_html/devon/panel/data/hub_index.json:1123:          "path": "../panel/data/memory_canonical_architecture.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1124:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1139:          "path": "../panel/data/memory_lifecycle_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1140:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1155:          "path": "../panel/data/learning_governance_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1156:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1171:          "path": "../panel/data/planning_reasoning_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1172:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1187:          "path": "../panel/data/tool_execution_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1188:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1203:          "path": "../panel/data/knowledge_ingestion_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1204:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json:1221:      "sub": "real-time host, container and service monitoring canon with SSE bridge authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json:1222:      "badge": "phase 10",
/home/yeff/public_html/devon/panel/data/hub_index.json:1227:          "path": "../panel/data/monitoring_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1228:          "phase": "phase-10",
/home/yeff/public_html/devon/panel/data/hub_index.json:1238:          "architecture_view": "Sovereign monitoring authority for host, containers and services.",
/home/yeff/public_html/devon/panel/data/hub_index.json:1245:          "path": "../panel/data/sse_bridge_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json:1246:          "phase": "phase-10",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:2:  "phases": [
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:4:      "id": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:23:      "id": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:44:      "id": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:65:      "id": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:68:      "summary": "container topology, isolation and host versus container runtime boundaries.",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:69:      "badge": "containerization_canon",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:83:      "id": "phase-05",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:102:      "id": "phase-06",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:120:      "id": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:138:      "id": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:157:      "id": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:180:      "badge": "phase 01",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:185:          "path": "../panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:186:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:191:            "panel_manifest",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:200:          "id": "panel_manifest",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:202:          "path": "../panel/data/panel_manifest.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:203:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:205:          "role": "Entry manifest and machine-readable panel entry point.",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:211:          "architecture_view": "Entry manifest for the panel and documentation surface.",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:218:          "path": "../panel/data/project_scope_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:219:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:234:          "path": "../panel/data/devon_panel_chat_checkpoint.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:235:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:253:      "badge": "phase 02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:258:          "path": "../panel/data/cas.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:259:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:280:          "path": "../panel/data/cgs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:281:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:296:          "path": "../panel/data/acs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:297:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:312:          "path": "../panel/data/css.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:313:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:328:          "path": "../panel/data/ncs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:329:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:344:          "path": "../panel/data/sts.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:345:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:363:          "path": "../panel/data/brps.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:364:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:379:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:380:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:395:          "path": "../panel/data/ris.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:396:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:412:          "path": "../panel/data/ofms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:413:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:432:      "badge": "phase 03",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:437:          "path": "../panel/data/cfc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:438:          "phase": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:458:      "id": "containerization",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:460:      "sub": "container topology, isolation and host versus container boundary.",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:461:      "badge": "phase 04",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:466:          "path": "../panel/data/ccc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:467:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:468:          "layer": "containerization",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:486:      "badge": "phase 05",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:491:          "path": "../panel/data/lpc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:492:          "phase": "phase-05",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:510:      "badge": "phase 06",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:515:          "path": "../panel/data/nrc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:516:          "phase": "phase-06",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:535:      "badge": "phase 07",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:540:          "path": "../panel/data/oac.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:541:          "phase": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:560:      "badge": "phase 08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:565:          "path": "../panel/data/sec.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:566:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:590:          "path": "../panel/data/host_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:591:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:606:          "path": "../panel/data/app_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:607:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:622:          "path": "../panel/data/module_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:623:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:638:          "path": "../panel/data/runtime_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:639:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:654:          "path": "../panel/data/delivery_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:655:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:670:          "path": "../panel/data/approval_canonization_policy.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:671:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:686:          "path": "../panel/data/memory_isolation_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:687:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:702:          "path": "../panel/data/security_monitoring_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:703:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:721:      "badge": "phase 09",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:726:          "path": "../panel/data/ofc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:727:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:751:          "path": "../panel/data/memory_canonical_architecture.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:752:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:767:          "path": "../panel/data/memory_lifecycle_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:768:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:783:          "path": "../panel/data/learning_governance_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:784:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:799:          "path": "../panel/data/planning_reasoning_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:800:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:815:          "path": "../panel/data/tool_execution_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:816:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:831:          "path": "../panel/data/knowledge_ingestion_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.STABLE_OK.20260329_182357:832:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:28:      "canonical panel architecture",
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:37:      "operator panel"
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:66:        "description": "Base OS/runtime services, containers, networking, proxy, secrets, persistent volumes."
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:120:        "name": "operator_panel",
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:121:        "description": "UI, evidence drawers, dependency graph, validation timeline, contract explorer."
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:140:      "file": "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:141:      "purpose": "panel cards, sections and navigation tree"
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:144:      "file": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:145:      "purpose": "mandatory contract schema for every card/module"
/home/yeff/public_html/devon/panel/data/project_scope_canonical.json:226:      "implement_panel_reader"
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:3:    "canon_id": "devon-panel-sync-contract",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:8:  "panel_sync_contract": {
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:9:    "objective": "Define the exact contract for synchronizing canon-derived panel data from Devon control plane to the live panel host.\n",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:14:        "09_panel_navigation_spec.yaml",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:15:        "10_panel_data_contract.yaml",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:16:        "11_panel_content_index.yaml",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:17:        "12_panel_ui_blueprint.yaml",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:18:        "13_panel_component_contract.yaml"
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:22:      "panel_data_root": "/home/yeff/public_html/devon/panel/data",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:24:        "panel_manifest.json",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:26:        "panel_navigation_spec.json",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:27:        "panel_content_index.json",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:28:        "panel_ui_blueprint.json",
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:29:        "panel_component_contract.json"
/home/yeff/public_html/devon/panel/data/panel_sync_contract.json:47:      "panel_must_read_json_read_only",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:3:    "canon_id": "devon-panel-navigation-spec",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:19:    "left_sidebar": {
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:36:        "operator_panel",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:51:    "right_drawer_stack": {
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:52:      "drawers": [
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:53:        "evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:54:        "dependency_drawer",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:55:        "memory_scope_drawer",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:56:        "validation_drawer",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:57:        "server_scope_drawer"
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:63:      "left_sidebar": "open",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:65:      "right_drawer_stack": "evidence_drawer"
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:67:    "click_card_behavior": [
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:86:      "total_cards",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:109:  "panel_data_sources": {
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:111:    "panel_tree": "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json:112:    "contract_schema": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:8:- Devon is already emitting real runtime for host, docker, pipeline and project progress.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:16:- This makes some donuts mathematically calculated but semantically invalid.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:60:- Devon server is the origin of real runtime, host, container, and execution data.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:64:- Canonical root: `/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:67:- Canonical continuity file: `/home/yeff/public_html/devon/panel/data/devon_continuity.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:72:- No fake status or fake progress.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:100:  - Devon: runtime origin, host state, containers, execution
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:184:- `/opt/devon/bin/export_panel_runtime.sh`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:188:- `/opt/devon/runtime/panel_export/current`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:193:- The Devon host does not yet contain container runtime baseline.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:210:7. Only after that: service/container materialization
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:229:- Do not reopen the old donut problem as an unresolved backend/UI ambiguity.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:231:- `export_panel_runtime.sh` is now the validated publication bridge from Devon runtime to Waresite panel data.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:232:- `project_progress.json` remains sovereign for the global project donut.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:233:- `stage_rollup.progress_pct` remains sovereign for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:234:- Subcategory cards must treat `0 eligible` as `not eligible`, never as `0%`.
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:244:- Canonical root: `/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:245:- Continuity file: `/home/yeff/public_html/devon/panel/data/devon_continuity.md`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:251:  - `project_progress.json` drives the global project donut
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:252:  - `stage_rollup.progress_pct` drives stage completion
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:253:  - subcards with `0 eligible` now render `MISSING / not eligible`
/home/yeff/public_html/devon/panel/data/devon_continuity.md.bak.checkpoint_20260409_002039:257:    - `bash /opt/devon/bin/export_panel_runtime.sh`
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:2:  "phases": [
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:4:      "id": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:23:      "id": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:44:      "id": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:65:      "id": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:68:      "summary": "container topology, isolation and host versus container runtime boundaries.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:69:      "badge": "containerization_canon",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:83:      "id": "phase-05",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:102:      "id": "phase-06",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:120:      "id": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:138:      "id": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:157:      "id": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:180:      "badge": "phase 01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:185:          "path": "../panel/data/master_architecture_index.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:186:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:191:            "panel_manifest",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:200:          "id": "panel_manifest",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:202:          "path": "../panel/data/panel_manifest.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:203:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:205:          "role": "Entry manifest and machine-readable panel entry point.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:211:          "architecture_view": "Entry manifest for the panel and documentation surface.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:218:          "path": "../panel/data/project_scope_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:219:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:234:          "path": "../panel/data/devon_continuity.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:235:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:250:          "path": "../panel/data/deployment_order_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:251:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:266:          "path": "../panel/data/sandbox_environment_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:267:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:282:          "path": "../panel/data/server_registry_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:283:          "phase": "phase-01",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:301:      "badge": "phase 02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:306:          "path": "../panel/data/cas.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:307:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:328:          "path": "../panel/data/cgs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:329:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:344:          "path": "../panel/data/acs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:345:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:360:          "path": "../panel/data/css.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:361:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:376:          "path": "../panel/data/ncs.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:377:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:392:          "path": "../panel/data/sts.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:393:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:411:          "path": "../panel/data/brps.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:412:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:427:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:428:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:443:          "path": "../panel/data/ris.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:444:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:460:          "path": "../panel/data/ofms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:461:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:475:          "id": "card_contract_minimums",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:477:          "path": "../panel/data/card_contract_minimums.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:478:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:481:          "fits": "Defines minimum card contract fields for panel and documentation surfaces.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:491:          "id": "panel_data_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:493:          "path": "../panel/data/panel_data_contract.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:494:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:496:          "role": "Structured panel data contract authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:497:          "fits": "Defines machine-readable panel data contract boundaries.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:507:          "id": "panel_component_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:509:          "path": "../panel/data/panel_component_contract.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:510:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:512:          "role": "Structured panel component contract authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:523:          "id": "panel_sync_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:525:          "path": "../panel/data/panel_sync_contract.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:526:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:528:          "role": "Structured panel sync contract authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:539:          "id": "panel_canonical_tree",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:541:          "path": "../panel/data/panel_canonical_tree.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:542:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:544:          "role": "Primary panel canonical tree authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:545:          "fits": "Defines structural panel tree and canonical UI grouping.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:555:          "id": "panel_navigation_spec",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:557:          "path": "../panel/data/panel_navigation_spec.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:558:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:560:          "role": "Primary panel navigation authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:561:          "fits": "Defines canonical panel navigation structure.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:571:          "id": "panel_ui_blueprint",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:573:          "path": "../panel/data/panel_ui_blueprint.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:574:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:576:          "role": "Primary panel UI blueprint authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:577:          "fits": "Defines canonical panel UI blueprint expectations.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:589:          "path": "../panel/data/canonical_matrix_v1.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:590:          "phase": "phase-02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:608:      "badge": "phase 03",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:613:          "path": "../panel/data/cfc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:614:          "phase": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:634:          "path": "../panel/data/ccc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:635:          "phase": "phase-03",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:651:      "id": "containerization",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:653:      "sub": "deployment topology, service isolation and runtime/container boundaries under sovereign Phase 04 authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:654:      "badge": "phase 04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:659:          "path": "../panel/data/cdms.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:660:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:661:          "layer": "containerization",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:662:          "role": "Primary deployment structure and containerization authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:663:          "fits": "Owns container topology, isolation boundaries and deployment placement for Phase 04.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:670:          "architecture_view": "Sovereign Phase 04 containerization authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:680:      "badge": "phase 05",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:685:          "path": "../panel/data/lpc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:686:          "phase": "phase-05",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:704:      "badge": "phase 06",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:709:          "path": "../panel/data/nrc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:710:          "phase": "phase-06",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:729:      "badge": "phase 07",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:734:          "path": "../panel/data/oac.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:735:          "phase": "phase-07",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:749:          "id": "panel_runtime_bridge",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:751:          "path": "../panel/data/panel_runtime_bridge.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:752:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:757:            "panel_data_contract",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:758:            "panel_sync_contract"
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:768:          "path": "../panel/data/host_runtime.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:769:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:774:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:784:          "path": "../panel/data/docker_runtime.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:785:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:790:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:800:          "path": "../panel/data/runtime_status.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:801:          "phase": "phase-04",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:806:            "panel_runtime_bridge"
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:819:      "badge": "phase 08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:824:          "path": "../panel/data/sec.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:825:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:849:          "path": "../panel/data/host_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:850:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:865:          "path": "../panel/data/app_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:866:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:881:          "path": "../panel/data/module_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:882:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:897:          "path": "../panel/data/runtime_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:898:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:913:          "path": "../panel/data/delivery_security_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:914:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:929:          "path": "../panel/data/approval_canonization_policy.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:930:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:945:          "path": "../panel/data/memory_isolation_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:946:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:961:          "path": "../panel/data/security_monitoring_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:962:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:980:      "badge": "phase 09",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:985:          "path": "../panel/data/ofc.md",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:986:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1004:      "sub": "build progression, release logic, pipeline mapping and operational content indexing.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1005:      "badge": "phase 09 / phase 02",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1010:          "path": "../panel/data/subcategory_pipelines.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1011:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1024:          "id": "panel_content_index",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1026:          "path": "../panel/data/panel_content_index.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1027:          "phase": "phase-09",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1029:          "role": "Structured panel content index authority.",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1045:      "badge": "phase 08 / post-core",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1050:          "path": "../panel/data/memory_canonical_architecture.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1051:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1066:          "path": "../panel/data/memory_lifecycle_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1067:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1082:          "path": "../panel/data/learning_governance_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1083:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1098:          "path": "../panel/data/planning_reasoning_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1099:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1114:          "path": "../panel/data/tool_execution_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1115:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1130:          "path": "../panel/data/knowledge_ingestion_canonical.json",
/home/yeff/public_html/devon/panel/data/hub_index.json.bak.refactor_20260409_000105:1131:          "phase": "phase-08",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:68:      "objective": "establish containers, network, proxy, volumes and secrets baseline",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:73:        "missing_container_runtime",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:78:        "container_runtime_ready",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:284:      "stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:292:        "missing_panel_schema",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:293:        "missing_evidence_drawer",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:297:        "panel_loads",
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:301:      "promotion_gate": "panel_ready"
/home/yeff/public_html/devon/panel/data/deployment_order_canonical.json:308:        "operator_panel",
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:10:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:11:      "phase-08"
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:40:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:44:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:45:    "phase-08"
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:52:      "phase_origin": [
/home/yeff/public_html/devon/panel/data/delivery_security_canonical.json:53:        "phase-08"
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:38:  "ui_security_panel_contract": {
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:39:    "required_cards": [
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:64:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:65:      "phase-08"
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:74:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:78:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:79:    "phase-08"
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:85:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/security_monitoring_canonical.json:86:      "phase-08"
/home/yeff/public_html/devon/panel/data/cfc.md:5:phase: 03
/home/yeff/public_html/devon/panel/data/cfc.md:6:phase_name: Cognitive Flow Canon
/home/yeff/public_html/devon/panel/data/cfc.md:35:- state progression
/home/yeff/public_html/devon/panel/data/cfc.md:71:- progression order
/home/yeff/public_html/devon/panel/data/cfc.md:116:Scope validation is flexible.
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:5:  "objective": "Define canonical memory isolation, flexible namespace partitioning and scoped retrieval rules.",
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:7:    "mode": "flexible_scope_set",
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:83:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:84:      "phase-08"
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:93:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:97:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:98:    "phase-08"
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:104:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/memory_isolation_canonical.json:105:      "phase-08"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:10:      "02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:11:      "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:24:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:41:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:49:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:64:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:72:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:88:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:96:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:112:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:120:      "card_id": "core-host-readiness",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:123:      "objective": "validate container runtime presence",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:126:        "missing_container_runtime"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:136:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:144:      "card_id": "project-scope",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:162:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:170:      "card_id": "deployment-order",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:188:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:196:      "card_id": "card-contracts",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:199:      "objective": "define minimum contract schema for every card",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:207:        "/opt/devon/canon/03_card_contract_minimums.yaml"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:214:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:222:      "card_id": "server-registry",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:240:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:248:      "card_id": "server-registry",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:265:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:273:      "card_id": "infrastructure",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:275:      "subcategory": "containers",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:276:      "objective": "enable base container runtime",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:282:        "missing_container_runtime"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:293:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:301:      "card_id": "storage-state",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:320:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:328:      "card_id": "memory-manager",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:348:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:356:      "card_id": "core-runtime",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:377:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:385:      "card_id": "observability-audit",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:404:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:412:      "card_id": "remote-orchestration",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:430:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:438:      "card_id": "sandbox-environments",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:458:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:466:      "card_id": "embeddings",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:487:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:495:      "card_id": "architect",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:516:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:524:      "card_id": "planner",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:543:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:551:      "card_id": "generator",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:570:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:578:      "card_id": "canonizer",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:595:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:603:      "card_id": "validator-ci",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:622:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:630:      "card_id": "executor",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:651:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:659:      "card_id": "artifact-canon-layer",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:676:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:684:      "card_id": "skill-registry",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:701:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:709:      "card_id": "policy-governance",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:729:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:737:      "card_id": "self-monitoring",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:754:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:762:      "card_id": "benchmark-runner",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:782:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:790:      "card_id": "rl-engine",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:808:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:816:      "card_id": "learning-loop",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:837:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:843:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:845:      "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:855:        "missing_panel_runtime",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:856:        "missing_panel_schema"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:859:        "panel_runtime",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:861:        "evidence_drawers"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:866:        "drawer_render_check"
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:868:      "pipeline_ref": "operator_panel",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:869:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:877:      "card_id": "operator-panel",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:899:      "pipeline_ref": "operator_panel",
/home/yeff/public_html/devon/panel/data/canonical_matrix_v1.json:900:      "contract_ref": "03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:14:  - `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:15:  - `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:20:- `stage_rollup` is now a sovereign runtime row type and its `progress_pct` is the canonical source for stage completion in the UI.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:21:- `project_progress.json` remains the sovereign source for global project completion.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:22:- `export_panel_runtime.sh` was validated as the Devon → Waresite publication bridge for:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:27:  - `project_progress.json`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:36:- `display_in_cards`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:37:- `display_in_donuts`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:43:- Global project completion must read from `project_progress.json`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:44:- Stage completion must read from `stage_rollup.progress_pct`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:45:- Subcategory cards must not render percentage donuts when `completionRows == 0`.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:53:3. `export_panel_runtime.sh` synchronizes runtime artifacts to Waresite
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:54:4. Operator Panel reads published semantics without manual donut patching for new server-side evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:111:- phase ownership
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:118:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:126:- panel/documentation bridge artifacts
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:151:- phase origin preserves real installation and configuration sequence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:186:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:237:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:238:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:239:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:240:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:284:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:288:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:292:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:302:defines build progression, release logic, operational flows, canonization and project execution mapping.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:344:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:348:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:354:defines live system state, runtime bridge, containers, observability and operational support artifacts.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:372:cdms.md is the sovereign authority for Phase 04 containerization, deployment topology and isolation boundaries.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:373:ccc.md remains a Phase 03 contextual component reference and may not redefine containerization authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:392:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:408:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:472:Operationally, their trust-bound phase origin is Phase 08.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:514:defines real-time operational monitoring of the Devon host, containers and services.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:532:- Docker container health per container with CPU, memory and restart count
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:548:- Defines the SSE permanent channel that replaces export_panel_runtime.sh
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:564:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:608:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:613:  - /panel/data/cas.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:617:  - wrong phase binding
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:622:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:623:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:624:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:625:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:650:  - /panel/data/cgs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:659:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:660:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:661:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:685:  - /panel/data/acs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:703:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:704:  - panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:705:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:706:  - card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:733:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:734:  - card shell rendering
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:763:  - /panel/data/ncs.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:764:  - /panel/data/sts.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:806:  - files exist in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:815:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:816:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:823:  - phase binding is absent
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:865:  - file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:870:  - /panel/data/cfc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:879:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:880:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:881:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:882:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:907:  - /panel/data/ccc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:917:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:923:- why_this_item_exists: define performance-sensitive flow expectations that must be respected before runtime optimization phases are implemented
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:927:  - runtime optimization cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:939:  3. define what later runtime phases must preserve
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:945:  - /panel/data/lpc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:954:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:955:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:984:  - /panel/data/nrc.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:985:  - /panel/data/oac.md exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:994:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:995:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1008:  - downstream containerization, runtime optimization, observability and tool execution monitoring may not be treated as canonically safe until Phase 03 is materially valid
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1017:canonize containerization, service isolation, networking, persistent state mounting and deployment topology so runtime execution starts from an explicit and monitorable infrastructure baseline.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1023:- canonical_role: deployment structure authority for container topology
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1036:  1. register container topology authority under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1050:  - deployment structure file exists in /panel/data
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1051:  - DH renders containerization references under Phase 04
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1057:  - container topology is explicit, registered and readable as canonical authority
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1059:  - category cards
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1060:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1061:  - contract drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1062:  - phase registry view
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1099:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1100:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1101:  - server scope drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1141:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1142:  - dependency drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1147:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1152:- why_this_item_exists: connect containerization canon to observable runtime evidence without allowing runtime artifacts to redefine sovereign canon
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1159:  - panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1160:  - panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1161:  - panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1173:  - panel can read them as support evidence
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1176:  - /panel/data/panel_runtime_bridge.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1177:  - /panel/data/host_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1178:  - /panel/data/docker_runtime.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1179:  - /panel/data/runtime_status.json exists
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1190:  - evidence drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1191:  - timeline drawer
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1252:real-time host, container and service monitoring with SSE transport to the Operator Panel.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1253:This phase must be complete before SSE bridge replaces the push_snapshot model.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1260:3. A phase authority file may define a concept only if ownership is assigned here.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1295:- devon_panel_chat_checkpoint.md
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1311:- card_contract_minimums.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1321:- panel_canonical_tree.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1322:- panel_component_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1323:- panel_content_index.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1324:- panel_data_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1325:- panel_manifest.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1326:- panel_navigation_spec.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1327:- panel_runtime_bridge.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1328:- panel_sync_contract.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1329:- panel_ui_blueprint.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1339:- project_progress_canonical.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1340:- project_progress_model.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1346:- project_progress.json
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1387:This section defines the mandatory process model that every canonical category, section, card and implementation item must follow.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1393:a category is not sufficiently documented if it only declares files, layers, phase origin or dependencies.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1402:3. Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1409:It preserves installation/configuration order and canonical progression.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1418:Examples inside a phase:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1426:a category is not the phase itself.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1427:A phase contains categories.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1429:#### Process bucket
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1430:A Process bucket is the ordered operational subdivision inside a category.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1431:Mandatory canonical buckets are:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1442:process buckets must appear in execution order.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1446:An Item is the smallest executable process unit inside a process bucket.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1464:Process buckets:
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1475:- bind file to phase
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1481:left navigation = phase registry.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1482:center workflow = categories inside the selected phase.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1483:category body = ordered process buckets.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1484:bucket body = executable items.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1492:- phase_origin
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1495:- card_id
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1576:- phase binding visibility
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1587:- health, containers and process telemetry
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1594:- Operator Panel may summarize runtime state, but may not redefine canonical ownership, precedence, phase order or documentary authority.
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1612:- evidence drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1613:- contract drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1614:- dependency drawers
/home/yeff/public_html/devon/panel/data/master_architecture_index.md.bak.add_canon_root_20260409_084626:1660:- the file exists materially in `/panel/data`
/home/yeff/public_html/devon/panel/data/ofc.md:5:phase: 09
/home/yeff/public_html/devon/panel/data/ofc.md:6:phase_name: Operational Flows Canon
/home/yeff/public_html/devon/panel/data/ofc.md:36:- state progression
/home/yeff/public_html/devon/panel/data/cas.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/cas.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/sts.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/sts.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/sts.md:7:document_role: state_and_transition_standard_for_phase_02
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:3:    "canon_id": "devon-panel-data-contract",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:8:  "panel_data_contract": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:9:    "objective": "Define the canonical data interface the Operator Panel must consume in order to render deployment-ordered navigation, cards, subcategories, evidence, contracts, timelines, filters and status counters without deriving fake state.\n",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:13:      "panel_tree": "/opt/devon/canon/02_panel_canonical_tree.yaml",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:14:      "card_contracts": "/opt/devon/canon/03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:20:      "navigation_spec": "/opt/devon/canon/09_panel_navigation_spec.yaml"
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:22:    "panel_views": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:26:        "card_view",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:43:          "cards"
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:46:      "card": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:47:        "primary_key": "card_id",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:49:          "card_id",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:61:          "card_id",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:86:      "card_grid_source": "panel_tree.deployment_sections.cards",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:88:      "contract_source": "card_contracts.contract_schema",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:91:      "no_mock_or_derived_fake_progress": true
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:95:        "join_name": "section_to_card",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:96:        "left": "panel_tree.deployment_sections.section_id",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:100:        "join_name": "card_to_matrix",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:101:        "left": "panel_tree.deployment_sections.cards.card_id",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:102:        "right": "canonical_matrix.matrix.card_id"
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:116:        "by_card",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:120:    "drawers": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:121:      "evidence_drawer": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:130:      "contract_drawer": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:132:          "card_id",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:137:      "dependency_drawer": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:144:      "memory_scope_drawer": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:152:      "server_scope_drawer": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:178:      "sidebar": {
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:180:        "source": "deployment_order + panel_tree"
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:195:        "required_drawers": [
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:196:          "evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:197:          "dependency_drawer",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:198:          "memory_scope_drawer",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:199:          "validation_drawer",
/home/yeff/public_html/devon/panel/data/panel_data_contract.json:200:          "server_scope_drawer"
/home/yeff/public_html/devon/panel/data/docker_runtime.json:3:  "source_contract": "devon-panel-docker-runtime",
/home/yeff/public_html/devon/panel/data/docker_runtime.json:20:    "containers": [],
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:10:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:11:      "phase-08"
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:40:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:44:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:45:    "phase-08"
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:52:      "phase_origin": [
/home/yeff/public_html/devon/panel/data/approval_canonization_policy.json:53:        "phase-08"
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:29:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:30:      "phase-08"
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:39:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:43:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:44:    "phase-08"
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:50:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/knowledge_ingestion_canonical.json:51:      "phase-08"
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:3:    "canon_id": "devon-panel-runtime-bridge",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:6:    "bridge_mode": "control_plane_to_panel_push_snapshot"
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:9:    "objective": "Define the canonical transport path that moves approved canon-derived panel data from the Devon control plane to the live Operator Panel server.\n",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:15:    "target_panel": {
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:17:      "host_purpose": "panel-ui-host",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:18:      "target_root": "/home/yeff/public_html/devon/panel/data"
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:33:      "panel_manifest.json",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:35:      "panel_navigation_spec.json",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:36:      "panel_content_index.json",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:37:      "panel_ui_blueprint.json",
/home/yeff/public_html/devon/panel/data/panel_runtime_bridge.json:38:      "panel_component_contract.json"
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:27:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:28:      "phase-08"
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:37:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:41:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:42:    "phase-08"
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:48:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/learning_governance_canonical.json:49:      "phase-08"
/home/yeff/public_html/devon/panel/data/nrc.md:5:phase: 06
/home/yeff/public_html/devon/panel/data/nrc.md:6:phase_name: Noise Reduction Canon
/home/yeff/public_html/devon/panel/data/nrc.md:31:- unnecessary transformations
/home/yeff/public_html/devon/panel/data/nrc.md:70:- discard low-signal data
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:10:    "phase_origin": [
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:11:      "phase-08"
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:40:    "preserve_phase_registry": true,
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:44:  "phase_origin": [
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:45:    "phase-08"
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:52:      "phase_origin": [
/home/yeff/public_html/devon/panel/data/runtime_security_canonical.json:53:        "phase-08"
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:19:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:20:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:48:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:49:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:77:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:78:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:111:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:112:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:145:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:146:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:176:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:177:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:207:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:208:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:251:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:252:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:268:      "runtime_id": "host.panel.export.current",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:269:      "item_id": "host.panel.export.current",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:272:      "subcategory": "panel_export",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:273:      "technology": "panel_export_current_dir",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:275:      "probe_ref": "probe.dir.panel_export_current",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:280:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:281:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:282:      "ui_group": "host_readiness:panel_export",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:291:        "path": "/opt/devon/runtime/panel_export/current",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:309:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:310:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:337:      "technology": "panel_runtime_bridge",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:344:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:345:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:358:          "[ -f /opt/devon/runtime/panel_export/current/panel_runtime_bridge.json ] && [ -f /opt/devon/runtime/panel_export/current/deployment_order_canonical.json ]"
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:371:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:379:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:380:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:381:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:407:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:415:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:416:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:417:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:438:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:446:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:447:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:448:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:475:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:483:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:484:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:485:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:512:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:520:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:521:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:522:      "ui_group": "docker_runtime:container_runtime",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:557:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:558:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:585:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:586:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:614:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:615:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:648:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:649:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:682:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:683:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:718:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:719:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:747:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:748:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:769:      "technology": "card_contracts",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:776:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:777:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:787:        "path": "/opt/devon/canon/03_card_contract_minimums.yaml",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:805:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:806:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:834:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:835:      "display_in_donuts": false,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:854:      "subcategory": "containers",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:862:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:863:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:864:      "ui_group": "foundation_infrastructure:containers",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:890:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:891:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:918:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:919:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:953:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:954:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:988:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:989:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1016:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1017:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1051:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1052:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1079:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1080:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1107:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1108:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1142:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1143:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1177:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1178:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1205:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1206:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1240:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1241:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1268:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1269:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1296:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1297:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1324:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1325:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1352:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1353:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1387:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1388:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1415:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1416:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1443:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1444:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1478:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1479:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1497:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1499:      "technology": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1506:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1507:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1508:      "ui_group": "operator_panel:contract_explorer",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1520:          "[ -f /home/yeff/public_html/devon/panel/index.html ] && [ -d /home/yeff/public_html/devon/panel/assets ]"
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1532:      "deployment_stage": "operator_panel",
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1541:      "display_in_cards": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1542:      "display_in_donuts": true,
/home/yeff/public_html/devon/panel/data/runtime_snapshot.json:1543:      "ui_group": "operator_panel:promotion_gate",
/home/yeff/public_html/devon/panel/data/monitoring_canonical.json:8:    "phase_origin": ["phase-10"],
/home/yeff/public_html/devon/panel/data/monitoring_canonical.json:13:    "objective": "Define the canonical real-time monitoring model for the Devon host, containers and services. Monitoring is a first-class operational layer and feeds the Operator Panel monitoring section directly.",
/home/yeff/public_html/devon/panel/data/monitoring_canonical.json:60:        "target_id": "containers",
/home/yeff/public_html/devon/panel/data/monitoring_canonical.json:63:        "metrics": ["running_count", "stopped_count", "per_container_cpu_pct", "per_container_mem_mb", "restart_count"],
/home/yeff/public_html/devon/panel/data/monitoring_canonical.json:66:        "why": "container health is the primary runtime health signal"
/home/yeff/public_html/devon/panel/data/panel_content_index.json:3:    "canon_id": "devon-panel-content-index",
/home/yeff/public_html/devon/panel/data/panel_content_index.json:14:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:23:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:26:        "card-contracts"
/home/yeff/public_html/devon/panel/data/panel_content_index.json:34:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:43:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:53:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:62:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:71:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:80:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:90:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:105:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:121:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:131:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:142:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/data/panel_content_index.json:143:        "operator-panel"
/home/yeff/public_html/devon/panel/data/acs.md:5:phase: 02
/home/yeff/public_html/devon/panel/data/acs.md:6:phase_name: Architecture & Engineering Canon
/home/yeff/public_html/devon/panel/data/acs.md:7:document_role: artifact_canon_standard_for_phase_02
/home/yeff/public_html/devon/panel/data/acs.md:37:`/home/yeff/public_html/devon/panel/data/`
/home/yeff/public_html/devon/panel/data/acs.md:40:`/home/yeff/public_html/devon/panel/data/master_architecture_index.md`
/home/yeff/public_html/devon/panel/data/acs.md:46:Artifacts that govern architecture, execution, contracts or panel structure must live under `panel/data`.
/home/yeff/public_html/devon/panel/data/acs.md:58:4. phase-specific specs
/home/yeff/public_html/devon/panel/data/acs.md:71:- phase
/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json:17:      "display_in_cards",
/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json:18:      "display_in_donuts",
/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json:25:      "stage_rollup": "sovereign stage completion rollup — progress_pct is the canonical source for stage completion",
/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json:34:      "global project completion reads only from project_progress.json",
/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json:35:      "stage completion reads only from stage_rollup.progress_pct",
/home/yeff/public_html/devon/panel/data/runtime_row_semantics_canonical.json:36:      "subcategory cards must not render percentage donuts when counts_toward_completion rows = 0",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:3:    "canon_id": "devon-panel-ui-blueprint",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:65:    "left_sidebar": {
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:75:          "zone_id": "sidebar_header",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:83:          "zone_id": "sidebar_navigation",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:90:          "zone_id": "sidebar_footer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:105:          "purpose": "primary_visual_preview_of_panel_content_or_artifact"
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:115:          "purpose": "show_selected_card_contract"
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:141:          "current_card_title",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:158:      "mode": "stacked_drawers",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:159:      "drawers": [
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:161:          "drawer_id": "evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:173:          "drawer_id": "contract_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:184:          "drawer_id": "dependency_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:195:          "drawer_id": "timeline_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:205:          "drawer_id": "memory_scope_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:216:          "drawer_id": "server_scope_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:230:      "source": "/opt/devon/canon/11_panel_content_index.yaml",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:233:      "group_card_style": "expandable",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:241:    "card_render_model": {
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:243:      "card_style": "compact_operational_card",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:245:        "card_title",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:301:          "update_right_drawers"
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:304:      "click_card": {
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:306:          "open_card_summary",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:308:          "load_contract_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:309:          "load_evidence_drawer"
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:322:          "open_evidence_drawer",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:328:          "open_memory_scope_drawer"
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:333:          "open_server_scope_drawer"
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:339:        "left_sidebar": "visible",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:344:        "left_sidebar": "collapsible_overlay",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:349:        "left_sidebar": "offcanvas",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:355:      "no_fake_progress",
/home/yeff/public_html/devon/panel/data/panel_ui_blueprint.json:363:        "panel_data_contract_frozen",
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:7:  <link rel="stylesheet" href="assets/css/panel.css?v=layout_restore_1774475678" />
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:11:    <aside class="op-sidebar">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:35:          <h1 id="hero-title">Devon runtime panel</h1>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:48:      <section class="layer-grid">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:49:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:50:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:51:            <span class="card-title">Canonical Layer</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:56:            <li>Architecture and cards</li>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:62:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:63:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:64:            <span class="card-title">Operational Layer</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:69:            <li>Docker and containers</li>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:76:      <section class="top-grid">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:77:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:78:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:79:            <span class="card-title">Selected Stage</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:86:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:87:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:88:            <span class="card-title">Operational Stage Completion</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:91:          <div id="selected-stage-donut" class="donut-wrap"></div>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:94:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:95:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:96:            <span class="card-title">Operational Pipeline</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:103:      <section class="runtime-grid">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:104:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:105:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:106:            <span class="card-title">Host Runtime Overview</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:109:          <div id="host-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:112:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:113:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:114:            <span class="card-title">Docker Runtime Overview</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:117:          <div id="docker-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:120:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:121:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:122:            <span class="card-title">Pipeline Runtime Board</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:129:      <section class="workspace-grid">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:130:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:131:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:132:            <span class="card-title">Observed Technologies</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:135:          <div id="subcategory-grid" class="subcategory-grid"></div>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:138:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:139:          <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:140:            <span class="card-title">Canonical Evidence Rows</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:148:    <dialog id="data-viewer-modal" class="drawer-card viewer-modal">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:150:        <div class="card-top">
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:151:          <span class="card-title">Data Viewer</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:153:            <span id="drawer-label" class="badge badge-violet">secondary</span>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/index.html.current:162:  <script src="assets/js/panel.js?v=layout_restore_1774475678"></script>
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:80:    "host_runtime.json": ["panel_host_runtime.json"],
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:81:    "docker_runtime.json": ["panel_docker_runtime.json"],
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:82:    "runtime_status.json": ["panel_pipeline_runtime.json", "panel_runtime_status.json"]
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:140:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:141:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:142:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:145:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:177:          String(bridgeMeta.bridge_mode || "") === "control_plane_to_panel_push_snapshot" &&
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:199:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:202:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:205:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:208:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.js.current:211:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:25:  display:grid;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:26:  grid-template-columns:300px minmax(0,1fr) 420px;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:69:.op-main{min-width:0}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:71:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:74:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:75:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:76:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:77:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:85:.layer-grid,
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:86:.top-grid{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:87:  display:grid;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:88:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:92:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:93:.runtime-grid{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:94:  display:grid;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:95:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:99:.workspace-grid{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:100:  display:grid;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:101:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:104:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:105:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:106:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:107:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:112:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:117:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:118:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:119:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:120:.donut-center{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:121:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:124:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:125:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:126:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:128:.mini-metric-grid{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:129:  display:grid;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:130:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:141:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:143:  font-size:11px;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:147:  font-size:22px;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:151:  font-size:12px;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:156:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:163:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:165:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:167:.subcategory-grid{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:168:  display:grid;
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:169:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:172:.subcard{
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:175:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:176:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:177:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:179:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:183:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:185:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:187:.op-drawer{position:sticky;top:20px;height:calc(100vh - 40px)}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:188:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:194:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:195:  .op-shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:196:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:198:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:199:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:201:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:202:  .op-shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:203:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/_restore_layout/20260325_190044/panel.css.current:204:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:6:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:7:  <link rel="stylesheet" href="assets/css/panel.css?v=runtime_layers_v1" />
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:11:    <aside class="op-sidebar">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:35:          <h1 id="hero-title">Devon runtime panel</h1>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:48:      <section class="layer-grid">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:49:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:50:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:51:            <span class="card-title">Canonical Layer</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:56:            <li>Architecture and cards</li>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:62:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:63:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:64:            <span class="card-title">Operational Layer</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:69:            <li>Docker and containers</li>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:76:      <section class="top-grid">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:77:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:78:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:79:            <span class="card-title">Selected Stage</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:86:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:87:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:88:            <span class="card-title">Operational Stage Completion</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:91:          <div id="selected-stage-donut" class="donut-wrap"></div>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:94:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:95:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:96:            <span class="card-title">Operational Pipeline</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:103:      <section class="runtime-grid">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:104:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:105:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:106:            <span class="card-title">Host Runtime Overview</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:109:          <div id="host-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:112:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:113:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:114:            <span class="card-title">Docker Runtime Overview</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:117:          <div id="docker-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:120:        <article class="card runtime-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:121:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:122:            <span class="card-title">Pipeline Runtime Board</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:129:      <section class="workspace-grid">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:130:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:131:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:132:            <span class="card-title">Observed Technologies</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:135:          <div id="subcategory-grid" class="subcategory-grid"></div>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:138:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:139:          <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:140:            <span class="card-title">Canonical Evidence Rows</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:148:    <dialog id="data-viewer-modal" class="drawer-card viewer-modal">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:150:        <div class="card-top">
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:151:          <span class="card-title">Data Viewer</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:153:            <span id="drawer-label" class="badge badge-violet">secondary</span>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/index.html.current:162:  <script src="assets/js/panel.js?v=patch_20260325_185340"></script>
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.js.current:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:25:  display:grid;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:26:  grid-template-columns:300px minmax(0,1fr);
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:69:.op-main{min-width:0}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:71:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:74:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:75:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:76:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:77:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:85:.layer-grid,
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:86:.top-grid{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:87:  display:grid;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:88:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:92:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:93:.runtime-grid{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:94:  display:grid;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:95:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:99:.workspace-grid{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:100:  display:grid;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:101:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:104:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:105:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:106:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:107:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:112:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:117:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:118:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:119:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:120:.donut-center{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:121:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:124:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:125:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:126:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:128:.mini-metric-grid{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:129:  display:grid;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:130:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:141:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:143:  font-size:11px;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:147:  font-size:22px;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:151:  font-size:12px;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:156:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:163:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:165:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:167:.subcategory-grid{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:168:  display:grid;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:169:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:172:.subcard{
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:175:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:176:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:177:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:179:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:183:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:185:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:187:.drawer-card{background:linear-gradient(180deg,var(--panel),var(--bg2));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:193:  max-width:min(1120px,calc(100vw - 48px));
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:202:  overflow:auto;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:205:  display:flex;
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:211:  color:#bfd3f6;white-space:pre-wrap;word-break:break-word;min-height:420px;max-height:68vh;overflow:auto
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:214:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:215:  .op-shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:217:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:218:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:220:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:221:  .op-shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:222:  .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:223:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/_rollback/20260325_185438/panel.css.current:226:    max-width:min(calc(100vw - 24px),1120px);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:166:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:168:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:169:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:177:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:182:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:185:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:186:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:187:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:192:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:198:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:199:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:201:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:210:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:212:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:214:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:215:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:216:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:219:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:222:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:223:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:224:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:226:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:230:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:232:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:234:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:235:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:250:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:254:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:255:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:259:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:267:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:273:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:276:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:277:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:279:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:280:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:282:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:283:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:284:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:285:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_160314:287:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:46:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:47:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:48:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:49:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:50:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:51:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:52:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:54:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:66:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:70:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:73:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:75:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:77:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:78:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:81:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:84:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:85:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:86:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:87:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:95:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:96:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:97:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:98:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:102:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:103:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:105:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:109:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:110:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:111:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:114:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:115:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:116:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:117:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:122:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:127:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:128:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:129:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:130:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:131:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:134:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:135:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:136:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:138:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:139:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:140:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:151:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:153:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:157:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:161:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:166:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:173:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:175:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:177:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:178:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:179:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:182:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:185:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:186:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:187:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:189:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:193:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:195:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:197:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:198:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:213:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:217:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:218:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:222:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:230:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:236:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:239:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:240:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:242:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:243:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:245:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:246:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:247:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:248:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_132636:250:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:282:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:343:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:344:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:346:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:347:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:355:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:360:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:363:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:364:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:365:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:370:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:376:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:377:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:379:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:388:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:391:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:392:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:397:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:398:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:399:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:402:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:405:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:407:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:408:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:418:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:423:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:427:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:428:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:431:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:440:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:441:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:451:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:456:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:459:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:463:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:466:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:467:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:472:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:473:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:477:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:482:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:483:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:484:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:485:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:486:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:487:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:489:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:492:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:497:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:499:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:502:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:505:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:506:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:521:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:525:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:526:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:530:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:538:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:544:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:547:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:549:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:550:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:552:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:553:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:557:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:561:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:563:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:577:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:584:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:587:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:592:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:597:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:601:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:602:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.force_new_assets_20260408_040402:603:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:166:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:168:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:169:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:177:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:182:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:185:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:186:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:187:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:192:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:198:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:199:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:201:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:210:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:212:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:214:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:215:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:216:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:219:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:222:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:223:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:224:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:226:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:230:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:232:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:234:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:235:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:250:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:254:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:255:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:259:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:267:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:273:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:276:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:277:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:279:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:280:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:282:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:283:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:284:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:285:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_161202:287:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:282:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:344:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:345:  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:348:  overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:351:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:353:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:354:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:362:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:367:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:370:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:371:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:372:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:377:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:383:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:384:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:386:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:396:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:399:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:400:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:405:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:406:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:407:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:410:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:413:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:415:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:416:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:426:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:431:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:435:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:436:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:439:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:448:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:449:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:459:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:464:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:467:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:471:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:474:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:475:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:480:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:481:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:485:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:490:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:491:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:492:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:493:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:494:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:495:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:497:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:500:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:505:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:507:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:510:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:513:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:514:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:529:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:533:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:534:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:538:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:546:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:552:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:555:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:557:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:558:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:560:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:561:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:565:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:569:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:571:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:585:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:592:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:595:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:600:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:605:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:609:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:610:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_section_20260408_045050:611:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:191:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:192:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:207:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:211:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:212:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:216:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:224:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:230:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:233:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:234:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:236:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:237:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:239:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:240:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:241:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:242:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_124133:244:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:166:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:168:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:179:.doc-link-meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#9db0d2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:186:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:188:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:190:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:191:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:192:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:195:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:198:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:199:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:200:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:202:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:206:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:208:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:210:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:211:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:226:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:230:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:231:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:235:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:243:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:249:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:252:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:253:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:255:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:256:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:258:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:259:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:260:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:261:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_151518:263:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:328:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:330:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:331:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:332:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:335:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:338:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:340:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:341:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:351:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:356:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:360:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:361:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:364:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:373:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:374:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:384:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:389:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:392:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:396:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:398:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:400:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:401:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:416:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:420:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:421:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:425:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:433:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:439:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:442:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:443:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:445:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:446:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:448:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:449:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:450:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:454:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:458:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:460:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:474:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:481:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:484:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:489:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:494:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:498:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:499:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_20260331_232209:500:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:282:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:343:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:344:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:346:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:347:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:355:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:360:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:363:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:364:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:365:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:370:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:376:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:377:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:379:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:388:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:391:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:392:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:397:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:398:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:399:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:402:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:405:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:407:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:408:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:418:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:423:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:427:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:428:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:431:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:440:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:441:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:451:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:456:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:459:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:463:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:466:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:467:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:472:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:473:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:477:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:482:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:483:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:484:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:485:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:486:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:487:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:489:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:492:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:497:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:499:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:502:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:505:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:506:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:521:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:525:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:526:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:530:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:538:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:544:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:547:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:549:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:550:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:552:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:553:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:557:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:561:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:563:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:577:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:584:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:587:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:592:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:597:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:601:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:602:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.layout_fix_20260408_044306:603:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:282:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:347:.pipeline-section-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:352:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:353:  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:356:  overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:359:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:361:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:362:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:370:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:375:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:378:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:379:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:380:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:385:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:391:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:392:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:394:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:403:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:404:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:409:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:415:  font-size:13px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:419:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:420:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:425:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:426:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:427:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:430:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:433:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:435:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:436:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:446:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:451:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:455:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:456:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:459:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:468:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:469:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:479:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:484:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:487:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:491:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:494:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:495:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:500:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:501:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:505:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:510:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:511:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:512:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:513:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:514:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:515:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:517:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:520:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:525:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:527:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:530:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:533:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:534:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:549:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:553:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:554:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:558:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:566:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:572:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:575:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:577:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:578:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:580:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:581:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:585:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:589:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:591:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:605:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:612:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:615:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:620:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:625:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:629:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:630:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:631:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:639:@media (max-width: 1100px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:640:  .runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:641:    grid-template-columns:1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:644:    grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:648:@media (max-width: 720px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css:650:    grid-template-columns:1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:191:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:192:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:207:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:211:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:212:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:216:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:224:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:230:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:233:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:234:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:236:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:237:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:239:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:240:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:241:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:242:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_130515:244:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:191:.op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:192:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:198:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:199:  .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:200:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:202:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:203:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:205:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:206:  .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:207:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:208:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.fix_20260325_191531.bak:212:.viewer-modal{position:static;inset:auto;margin:0;width:auto;max-width:none}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:329:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:330:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:335:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:336:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:337:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:340:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:343:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:345:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:346:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:356:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:361:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:365:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:366:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:369:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:378:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:379:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:389:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:394:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:397:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:401:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:404:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:405:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:410:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:411:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:415:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:420:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:421:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:422:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:423:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:424:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:425:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:427:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:430:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:435:  max-width:146px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:437:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:440:  flex:0 0 146px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:443:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:444:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:459:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:463:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:464:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:468:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:476:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:482:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:485:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:486:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:488:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:489:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:491:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:492:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:493:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:497:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:501:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:503:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:517:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:524:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:527:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:532:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:537:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:541:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:542:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_fix_20260331_233133:543:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:53:.brand-logo{display:block;width:260px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:78:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:82:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:85:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:87:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:89:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:90:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:93:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:96:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:97:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:98:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:99:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:107:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:108:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:110:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:114:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:115:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:116:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:117:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:121:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:122:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:123:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:126:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:127:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:128:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:129:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:134:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:139:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:140:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:141:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:142:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:143:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:146:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:147:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:148:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:150:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:151:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:152:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:163:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:165:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:169:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:173:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:178:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:179:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:181:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:182:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:190:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:195:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:198:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:199:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:200:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:205:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:211:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:212:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:214:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:223:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:225:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:227:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:228:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:229:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:232:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:235:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:236:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:237:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:239:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:243:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:245:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:247:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:248:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:263:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:267:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:268:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:272:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:280:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:286:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:289:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:290:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:292:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:293:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:295:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:296:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:297:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:301:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:305:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:307:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:318:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:321:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:328:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:331:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:336:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:341:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:345:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:346:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_173628:347:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:328:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:330:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:331:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:332:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:335:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:338:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:339:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:341:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:342:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:352:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:357:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:360:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:364:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:366:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:368:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:369:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:384:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:388:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:389:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:393:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:401:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:407:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:410:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:411:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:413:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:414:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:416:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:417:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:418:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:422:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:426:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:428:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:442:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:449:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:452:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:457:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:462:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:466:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:467:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_compact_20260331_224044:468:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:191:.op-drawer{position:sticky;top:20px;height:calc(100vh - 40px)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:192:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:198:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:199:  .op-shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:200:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:202:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:203:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:205:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:206:  .op-shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:207:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:208:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.restore_layout_20260325_190940.bak:217:  max-width: 1100px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:282:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:347:.pipeline-section-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:352:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:353:  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:356:  overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:359:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:361:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:362:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:370:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:375:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:378:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:379:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:380:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:385:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:391:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:392:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:394:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:403:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:404:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:409:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:415:  font-size:13px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:419:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:420:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:425:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:426:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:427:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:430:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:433:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:435:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:436:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:446:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:451:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:455:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:456:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:459:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:468:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:469:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:479:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:484:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:487:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:491:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:494:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:495:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:500:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:501:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:505:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:510:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:511:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:512:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:513:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:514:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:515:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:517:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:520:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:525:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:527:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:530:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:533:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:534:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:549:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:553:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:554:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:558:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:566:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:572:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:575:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:577:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:578:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:580:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:581:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:585:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:589:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:591:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:605:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:612:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:615:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:620:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:625:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:629:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:630:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:631:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:639:@media (max-width: 1100px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:640:  .runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:641:    grid-template-columns:1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:644:    grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:648:@media (max-width: 720px){
/home/yeff/public_html/devon/panel/assets/css/panel.runtime.fix.20260408_1.css.bak.pipeline_fullwidth_20260408_050359:650:    grid-template-columns:1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:191:.op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:192:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:198:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:199:  .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:200:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:202:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:203:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:205:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:206:  .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:207:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:208:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_linefix.20260326_131207.bak:212:.viewer-modal{position:static;inset:auto;margin:0;width:auto;max-width:none}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:329:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:330:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:335:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:336:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:337:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:340:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:343:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:345:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:346:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:356:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:361:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:365:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:366:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:369:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:378:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:379:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:389:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:394:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:397:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:401:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:404:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:405:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:410:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:411:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:415:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:420:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:421:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:422:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:423:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:424:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:425:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:427:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:430:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:435:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:437:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:440:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:443:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:444:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:459:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:463:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:464:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:468:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:476:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:482:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:485:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:486:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:488:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:489:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:491:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:492:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:493:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:497:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:501:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:503:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:517:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:524:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:527:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:532:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:537:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:541:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:542:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.hero_actions_compact_20260331_234257:543:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:191:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:192:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:207:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:211:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:212:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:216:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:224:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:230:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:233:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:234:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:236:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:237:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:239:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:240:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:241:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:242:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_123609:244:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:78:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:82:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:85:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:87:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:89:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:90:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:93:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:96:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:97:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:98:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:99:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:107:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:108:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:110:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:114:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:115:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:116:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:117:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:121:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:122:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:123:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:126:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:127:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:128:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:129:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:134:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:139:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:140:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:141:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:142:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:143:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:146:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:147:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:148:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:150:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:151:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:152:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:163:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:165:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:169:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:173:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:178:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:179:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:181:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:182:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:190:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:195:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:198:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:199:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:200:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:205:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:211:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:212:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:214:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:223:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:225:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:227:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:228:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:229:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:232:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:235:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:236:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:237:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:239:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:243:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:245:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:247:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:248:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:263:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:267:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:268:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:272:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:280:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:286:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:289:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:290:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:292:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:293:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:295:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:296:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:297:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:301:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:305:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:307:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:318:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:321:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:328:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:331:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:336:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:341:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:345:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:346:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_menu_refine_20260331_223305:347:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:166:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:168:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:169:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:177:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:182:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:185:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:186:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:187:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:192:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:198:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:199:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:201:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:210:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:212:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:214:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:215:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:216:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:219:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:222:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:223:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:224:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:226:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:230:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:232:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:234:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:235:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:250:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:254:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:255:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:259:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:267:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:273:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:276:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:277:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:279:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:280:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:282:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:283:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:284:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:285:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:287:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:298:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:301:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_164946:314:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css:1:/* Devon Operator Panel — panel.css v20260409 */
/home/yeff/public_html/devon/panel/assets/css/panel.css:12:html,body{height:100%;overflow:hidden;background:var(--bg0);font-family:var(--sans);color:var(--text0);font-size:13px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:15:#dp-shell{display:flex;height:100vh;overflow:hidden}
/home/yeff/public_html/devon/panel/assets/css/panel.css:18:#dp-left{width:238px;flex-shrink:0;background:var(--bg1);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
/home/yeff/public_html/devon/panel/assets/css/panel.css:19:#dp-brand{padding:14px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:21:#dp-brand-name{font-size:13px;font-weight:600;color:#e8ecf5}
/home/yeff/public_html/devon/panel/assets/css/panel.css:22:#dp-brand-sub{font-size:8px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-top:2px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:23:.tree-label{font-size:8px;color:var(--text3);letter-spacing:1.2px;text-transform:uppercase;padding:12px 12px 4px;font-weight:500;flex-shrink:0;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:24:#dp-tree{flex:1;overflow-y:auto;padding-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:29:.ph-row{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;cursor:pointer;border-left:2px solid transparent;transition:background 0.1s;user-select:none}
/home/yeff/public_html/devon/panel/assets/css/panel.css:32:.ph-arrow{font-size:9px;color:var(--text3);width:12px;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:34:.ph-num{font-family:var(--mono);font-size:9px;color:var(--text3);width:18px;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:36:.ph-name{font-size:10px;color:var(--text2);flex:1;line-height:1.3}
/home/yeff/public_html/devon/panel/assets/css/panel.css:38:.ph-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:41:.cat-row{display:flex;align-items:center;gap:6px;padding:3px 10px 3px 24px;cursor:pointer;border-left:2px solid transparent;transition:background 0.1s;margin-left:6px;user-select:none}
/home/yeff/public_html/devon/panel/assets/css/panel.css:44:.cat-arrow{font-size:8px;color:var(--text3);width:10px;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:46:.cat-name{font-size:10px;color:#445566;flex:1;line-height:1.3}
/home/yeff/public_html/devon/panel/assets/css/panel.css:48:.cat-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:51:.bk-row{display:flex;align-items:center;gap:6px;padding:2px 10px 2px 38px;cursor:pointer;margin-left:6px;border-left:2px solid transparent;user-select:none}
/home/yeff/public_html/devon/panel/assets/css/panel.css:54:.bk-name{font-family:var(--mono);font-size:9px;color:var(--text3)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:60:#dp-footer{padding:8px 12px;border-top:1px solid var(--border);font-size:8px;color:var(--text3);font-family:var(--mono);flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:63:#dp-main{flex:1;overflow-y:auto;background:var(--bg0);min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:66:.tree-err{padding:14px;color:var(--red);font-size:11px;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:70:.sum-title{font-size:20px;font-weight:600;color:#c5d3e8;margin-bottom:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:71:.sum-sub{font-size:11px;color:var(--text2);margin-bottom:28px;max-width:480px;line-height:1.6}
/home/yeff/public_html/devon/panel/assets/css/panel.css:72:.sum-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:440px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:74:.ss-lbl{font-size:8px;color:var(--text3);letter-spacing:0.8px;text-transform:uppercase;margin-bottom:5px;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:75:.ss-val{font-size:18px;font-weight:600;color:#dde5f2;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:80:.ph-ov-eyebrow{font-size:8px;color:var(--text3);font-family:var(--mono);letter-spacing:0.8px;text-transform:uppercase;margin-bottom:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:81:.ph-ov-title{font-size:16px;font-weight:600;color:#c5d3e8;margin-bottom:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:82:.ph-ov-sub{font-size:10px;color:var(--text2)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:83:.ph-ov-cats{padding:12px 14px;display:flex;flex-direction:column;gap:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:84:.cat-card{background:var(--bg2);border:1px solid var(--border);border-radius:7px;padding:10px 12px;cursor:pointer;transition:border-color 0.1s}
/home/yeff/public_html/devon/panel/assets/css/panel.css:85:.cat-card:hover{border-color:rgba(37,99,235,0.3)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:86:.cat-card-title{font-size:11px;font-weight:500;color:var(--text1);margin-bottom:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:87:.cat-card-sub{font-size:9px;color:var(--text3)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:92:.cat-bc{font-size:9px;color:var(--text3);font-family:var(--mono);margin-bottom:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:94:.cat-ov-title{font-size:14px;font-weight:600;color:#c5d3e8;margin-bottom:2px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:95:.cat-ov-sub{font-size:10px;color:var(--text2)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:96:.bk-list{padding:12px 14px;display:flex;flex-direction:column;gap:5px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:97:.bk-list-label{font-size:8px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-bottom:6px;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:98:.bk-card{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;transition:border-color 0.1s}
/home/yeff/public_html/devon/panel/assets/css/panel.css:99:.bk-card:hover{border-color:rgba(245,158,11,0.25);background:rgba(245,158,11,0.03)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:100:.bk-card-num{font-family:var(--mono);font-size:9px;color:var(--text3);width:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:101:.bk-card-name{font-family:var(--mono);font-size:10px;color:#5a6e82;flex:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css:102:.bk-card-desc{font-size:9px;color:var(--text3)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:105:.det-topbar{padding:9px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg3);position:sticky;top:0;z-index:10}
/home/yeff/public_html/devon/panel/assets/css/panel.css:106:.det-bc{font-size:9px;color:var(--text3);font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:108:.det-pills{display:flex;gap:5px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:109:.pl{font-size:8px;font-family:var(--mono);padding:2px 6px;border-radius:2px;font-weight:500}
/home/yeff/public_html/devon/panel/assets/css/panel.css:113:.det-hd-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:114:.det-phase{font-size:8px;color:var(--text3);font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:115:.det-sep{color:var(--text3);font-size:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:116:.det-cat{font-size:8px;color:var(--text2);font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:117:.det-title{font-size:14px;font-weight:600;color:#c5d3e8;margin-bottom:2px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:118:.det-sub{font-size:10px;color:var(--text3)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:119:.det-progress{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:120:.prog-card{flex:1;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:121:.prog-lbl{font-size:8px;color:var(--text3);font-family:var(--mono);margin-bottom:5px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:122:.prog-bar-w{height:3px;background:rgba(255,255,255,0.04);border-radius:2px;overflow:hidden;margin-bottom:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:125:.prog-nums{font-size:8px;color:var(--text3);font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:126:.det-items{padding:10px 14px;display:flex;flex-direction:column;gap:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:127:.items-label{font-size:8px;color:var(--text3);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:128:.item-card{background:var(--bg2);border:1px solid var(--border);border-left:2px solid #293a4d;border-radius:6px;padding:10px 12px;display:flex;align-items:flex-start;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:129:.item-card.item-ok{border-left-color:rgba(34,197,94,0.4)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:130:.item-card.item-fail{border-left-color:rgba(248,113,113,0.4)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:131:.item-ico{width:18px;height:18px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:9px;flex-shrink:0;background:rgba(255,255,255,0.04);color:var(--text2);margin-top:1px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:134:.item-body{flex:1;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:135:.item-title{font-size:11px;font-weight:500;color:var(--text1);margin-bottom:2px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:136:.item-role{font-size:9px;color:var(--text2);line-height:1.4;margin-bottom:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:137:.item-ev{font-size:8px;font-family:var(--mono);color:var(--text3);padding:2px 5px;background:rgba(255,255,255,0.02);border-radius:2px;border-left:2px solid rgba(37,99,235,0.2);word-break:break-all}
/home/yeff/public_html/devon/panel/assets/css/panel.css:138:.item-badge{font-size:8px;font-family:var(--mono);padding:2px 6px;border-radius:2px;font-weight:500;flex-shrink:0;align-self:flex-start;margin-top:1px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:144:#dp-right{width:50px;flex-shrink:0;background:var(--bg1);border-left:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:145:.ib{width:34px;height:34px;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;gap:2px;border:1px solid transparent;background:transparent;transition:background 0.12s,border-color 0.12s}
/home/yeff/public_html/devon/panel/assets/css/panel.css:149:.ib span{font-size:6px;color:var(--text3);text-align:center;line-height:1.2;font-family:var(--mono)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:154:#dp-drawer{position:fixed;top:0;right:50px;width:400px;height:100vh;background:var(--bg1);border-left:1px solid var(--border);display:flex;flex-direction:column;transform:translateX(420px);transition:transform 0.2s ease;z-index:100}
/home/yeff/public_html/devon/panel/assets/css/panel.css:155:#dp-drawer.open{transform:translateX(0)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:156:#dp-drawer-header{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css:157:#dp-drawer-title{font-size:11px;font-weight:500;color:var(--text1)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:158:#dp-drawer-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:159:#dp-drawer-close:hover{color:var(--text0);background:rgba(255,255,255,0.05)}
/home/yeff/public_html/devon/panel/assets/css/panel.css:160:#dp-drawer-pre{flex:1;overflow-y:auto;padding:12px 14px;font-family:var(--mono);font-size:10px;color:var(--text1);line-height:1.6;white-space:pre-wrap;word-break:break-word}
/home/yeff/public_html/devon/panel/assets/css/panel.css:161:#dp-drawer-pre::-webkit-scrollbar{width:3px}
/home/yeff/public_html/devon/panel/assets/css/panel.css:162:#dp-drawer-pre::-webkit-scrollbar-thumb{background:var(--border)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:172:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:174:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:176:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:177:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:178:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:181:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:184:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:185:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:186:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:188:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:192:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:194:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:196:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:197:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:212:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:216:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:217:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:221:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:229:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:235:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:238:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:239:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:241:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:242:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:244:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:245:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:246:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:247:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150241:249:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:282:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:343:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:344:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:346:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:347:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:355:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:360:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:363:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:364:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:365:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:370:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:376:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:377:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:379:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:388:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:391:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:392:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:397:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:398:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:399:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:402:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:405:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:407:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:408:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:418:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:423:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:427:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:428:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:431:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:440:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:441:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:451:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:456:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:459:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:463:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:466:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:467:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:472:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:473:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:477:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:482:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:483:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:484:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:485:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:486:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:487:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:489:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:492:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:497:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:499:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:502:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:505:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:506:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:521:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:525:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:526:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:530:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:538:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:544:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:547:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:548:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:550:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:551:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:553:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:554:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:555:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:559:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:563:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:565:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:579:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:586:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:589:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:594:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:599:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:603:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:604:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.fix_layout_20260408_032813:605:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:46:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:47:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:48:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:49:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:50:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:51:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:52:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:54:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:66:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:70:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:73:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:75:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:77:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:78:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:81:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:84:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:85:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:86:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:87:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:95:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:96:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:97:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:98:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:102:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:103:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:105:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:109:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:110:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:111:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:114:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:115:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:116:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:117:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:122:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:127:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:128:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:129:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:130:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:131:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:134:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:135:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:136:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:138:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:139:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:140:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:151:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:153:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:157:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:161:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:166:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:173:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:175:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:177:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:178:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:179:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:182:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:185:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:186:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:187:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:189:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:193:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:195:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:197:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:198:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:213:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:217:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:218:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:222:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:230:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:236:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:239:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:240:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:242:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:243:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:245:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:246:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:247:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:248:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260327_131649:250:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:172:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:174:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:176:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:177:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:178:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:181:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:184:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:185:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:186:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:188:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:192:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:194:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:196:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:197:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:212:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:216:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:217:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:221:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:229:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:235:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:238:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:239:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:241:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:242:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:244:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:245:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:246:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:247:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_150842:249:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:328:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:330:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:331:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:332:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:335:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:338:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:339:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:340:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:342:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:346:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:348:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:350:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:351:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:366:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:370:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:371:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:375:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:383:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:389:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:392:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:393:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:395:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:396:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:398:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:399:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:400:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:404:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:408:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:410:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:424:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:431:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:434:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:439:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:444:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:448:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:449:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.substats_pills_compact_20260331_223751:450:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:166:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:168:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:169:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:177:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:182:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:185:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:186:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:187:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:192:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:198:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:199:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:201:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:210:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:212:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:214:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:215:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:216:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:219:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:222:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:223:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:224:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:226:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:230:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:232:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:234:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:235:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:250:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:254:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:255:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:259:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:267:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:273:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:276:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:277:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:279:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:280:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:282:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:283:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:284:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:285:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:287:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:298:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:301:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:311:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:316:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171404:321:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:39:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:40:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:44:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:45:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:46:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:47:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:48:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:49:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:50:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:51:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:53:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:65:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:69:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:72:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:74:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:76:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:77:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:80:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:83:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:84:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:85:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:86:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:94:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:95:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:96:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:97:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:101:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:102:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:103:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:104:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:108:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:110:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:113:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:114:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:115:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:116:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:121:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:126:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:127:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:128:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:129:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:130:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:133:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:134:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:135:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:137:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:138:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:139:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:150:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:152:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:156:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:165:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:166:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:168:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:169:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:177:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:182:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:185:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:186:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:187:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:192:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:198:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:199:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:201:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:210:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:212:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:214:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:215:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:216:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:219:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:222:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:223:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:224:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:226:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:230:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:232:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:234:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:235:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:250:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:254:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:255:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:259:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:267:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:273:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:276:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:277:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:279:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:280:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:282:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:283:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:284:    .op-sidebar{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:285:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:287:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_163830:298:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:26:  grid-template-columns:300px minmax(0,1fr) 420px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:69:.op-main{min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:71:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:74:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:75:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:76:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:77:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:85:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:86:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:87:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:88:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:92:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:93:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:94:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:95:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:99:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:100:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:101:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:104:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:105:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:106:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:107:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:112:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:117:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:118:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:119:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:120:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:121:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:124:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:125:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:126:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:128:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:129:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:130:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:141:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:143:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:147:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:151:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:156:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:163:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:165:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:167:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:168:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:169:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:172:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:175:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:176:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:177:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:179:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:183:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:185:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:187:.op-drawer{position:sticky;top:20px;height:calc(100vh - 40px)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:188:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:194:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:195:  .op-shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:196:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:198:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:199:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:201:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:202:  .op-shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:203:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325_190324:204:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:328:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:330:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:331:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:332:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:335:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:338:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:340:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:341:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:351:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:355:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:364:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:365:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:375:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:380:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:383:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:387:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:389:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:391:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:392:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:407:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:411:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:412:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:416:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:424:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:430:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:433:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:434:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:436:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:437:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:439:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:440:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:441:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:445:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:449:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:451:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:465:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:472:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:475:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:480:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:485:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:489:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:490:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_2lines_20260331_224322:491:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:26:  grid-template-columns:280px 1fr;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:39:.global-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:40:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:41:  grid-template-columns:repeat(4,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:45:.card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:54:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:55:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:61:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:66:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:67:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:68:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:75:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:76:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:80:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:81:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:82:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:83:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:84:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:85:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:86:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:87:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:89:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:102:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:103:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:108:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:109:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:121:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:122:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:129:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:139:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:154:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:155:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:158:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:168:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:173:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:183:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:189:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:190:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:191:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:193:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:194:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:201:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:213:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:215:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:216:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:219:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:222:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:223:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:224:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:226:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:227:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:228:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:229:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:231:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:236:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:240:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:242:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:252:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:257:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:259:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:272:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:273:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:274:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:275:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:279:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:280:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:281:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:282:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:286:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:287:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:288:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:291:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:292:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:293:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:294:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:299:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:304:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:305:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:306:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:307:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:308:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:311:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:312:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:313:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:315:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:316:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:317:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:328:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:330:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:334:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:338:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:343:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:344:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:346:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:347:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:355:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:360:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:363:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:364:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:365:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:370:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:376:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:377:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:379:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:388:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:391:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:392:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:397:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:398:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:399:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:402:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:405:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:407:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:408:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:418:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:423:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:427:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:428:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:431:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:440:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:441:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:451:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:456:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:459:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:463:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:466:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:467:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:472:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:473:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:477:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:482:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:483:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:484:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:485:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:486:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:487:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:489:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:492:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:497:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:499:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:502:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:505:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:506:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:521:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:525:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:526:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:530:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:538:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:544:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:547:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:549:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:550:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:552:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:553:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:557:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:561:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:563:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:577:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:584:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:587:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:592:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:597:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:601:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:602:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.refactor_ui_20260409_081202:603:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:78:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:82:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:85:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:87:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:89:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:90:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:93:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:96:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:97:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:98:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:99:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:107:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:108:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:110:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:114:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:115:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:116:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:117:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:121:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:122:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:123:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:126:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:127:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:128:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:129:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:134:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:139:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:140:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:141:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:142:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:143:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:146:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:147:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:148:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:150:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:151:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:152:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:163:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:165:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:169:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:173:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:178:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:179:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:181:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:182:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:190:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:195:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:198:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:199:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:200:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:205:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:211:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:212:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:214:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:223:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:225:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:227:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:228:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:229:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:232:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:235:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:236:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:237:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:239:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:243:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:245:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:247:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:248:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:263:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:267:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:268:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:272:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:280:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:286:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:289:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:290:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:292:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:293:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:295:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:296:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:297:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:301:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:305:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:307:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:318:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:321:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:328:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:331:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:336:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:341:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:345:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:346:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.sidebar_flush_left_20260331_222522:347:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:53:.brand-logo{display:block;width:160px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:78:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:82:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:85:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:87:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:89:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:90:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:93:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:96:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:97:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:98:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:99:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:107:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:108:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:109:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:110:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:114:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:115:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:116:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:117:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:121:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:122:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:123:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:126:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:127:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:128:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:129:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:134:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:139:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:140:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:141:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:142:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:143:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:146:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:147:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:148:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:150:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:151:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:152:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:163:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:165:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:169:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:173:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:178:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:179:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:181:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:182:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:190:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:195:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:198:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:199:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:200:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:205:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:211:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:212:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:214:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:223:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:225:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:227:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:228:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:229:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:232:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:235:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:236:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:237:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:239:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:243:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:245:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:247:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:248:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:263:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:267:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:268:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:272:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:280:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:286:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:289:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:290:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:292:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:293:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:295:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:296:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:297:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:301:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:305:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:307:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:318:.stage-btn-meta{display:flex;align-items:center;gap:8px;flex:0 0 auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:321:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:328:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:331:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:336:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:341:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:345:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:346:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260330_171941:347:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:328:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:330:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:331:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:332:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:335:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:338:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:340:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:341:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:351:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:357:  max-width:158px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:358:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:361:  flex:0 0 158px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:370:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:371:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:381:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:386:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:389:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:393:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:395:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:397:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:398:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:413:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:417:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:418:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:422:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:430:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:436:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:439:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:440:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:442:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:443:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:445:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:446:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:447:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:451:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:455:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:457:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:471:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:478:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:481:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:486:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:491:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:495:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:496:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.submeta_badge_force_2lines_20260331_224613:497:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:69:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:71:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:72:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:75:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:78:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:79:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:80:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:81:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:89:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:90:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:91:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:92:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:96:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:97:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:98:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:99:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:103:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:104:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:105:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:108:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:109:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:110:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:111:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:116:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:121:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:122:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:123:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:124:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:125:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:128:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:129:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:130:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:132:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:133:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:134:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:145:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:147:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:151:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:155:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:160:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:167:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:169:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:171:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:172:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:173:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:176:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:179:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:180:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:181:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:183:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:187:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:189:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:191:.op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:192:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:198:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:199:  .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:200:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:202:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:203:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:205:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:206:  .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:207:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:208:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.viewer_modal_css.20260326_130627.bak:212:.viewer-modal{position:static;inset:auto;margin:0;width:auto;max-width:none}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:329:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:330:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:335:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:336:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:337:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:340:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:343:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:345:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:346:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:356:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:361:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:365:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:366:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:369:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:378:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:379:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:389:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:394:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:397:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:401:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:404:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:405:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:410:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:411:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:415:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:420:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:421:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:422:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:423:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:424:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:425:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:427:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:430:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:431:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:446:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:450:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:451:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:455:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:463:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:469:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:472:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:473:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:475:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:476:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:478:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:479:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:480:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:484:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:488:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:490:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:504:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:511:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:514:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:519:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:524:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:528:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:529:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.required_steps_2lines_20260331_232913:530:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:202:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:210:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:211:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:212:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:213:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:217:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:218:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:219:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:220:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:224:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:225:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:226:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:229:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:230:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:231:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:232:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:237:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:242:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:243:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:244:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:245:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:246:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:249:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:250:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:251:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:253:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:254:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:255:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:266:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:268:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:272:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:276:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:281:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:282:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:284:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:285:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:293:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:298:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:301:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:302:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:303:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:308:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:314:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:317:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:326:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:328:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:330:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:331:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:332:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:335:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:338:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:340:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:341:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:351:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:356:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:360:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:361:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:364:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:373:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:374:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:384:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:389:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:392:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:396:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:398:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:400:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:401:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:416:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:420:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:421:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:425:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:433:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:439:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:442:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:443:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:445:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:446:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:448:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:449:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:450:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:454:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:458:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:460:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:474:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:481:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:484:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:489:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:494:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:498:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:499:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.content_pills_compact_global_fix_20260331_232444:500:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:26:  grid-template-columns:320px minmax(0, 1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:38:.op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:43:  overflow-y:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:44:  overflow-x:hidden;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:45:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:52:.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:53:.brand-logo{display:block;width:210px;max-width:100%;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:57:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:58:.sidebar-donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:59:.op-sidebar .sidebar-donut-wrap .donut{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:60:.op-sidebar .sidebar-donut-wrap .donut svg{width:150px;height:150px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:61:.op-sidebar .sidebar-donut-wrap .donut-center strong{font-size:28px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:62:.op-sidebar .sidebar-donut-wrap .donut-center span{font-size:11px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:63:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:64:.pill-row-compact .pill{min-height:30px;padding:0 10px;font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:66:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:79:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:80:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:85:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:86:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:98:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:99:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:106:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:116:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:131:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:132:  grid-template-columns:minmax(0,1fr) auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:135:  transition:border-color .18s ease, background .18s ease, transform .18s ease;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:145:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:150:  font-size:15px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:160:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:166:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:167:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:168:  align-items:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:170:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:171:  min-width:74px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:178:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:190:.op-main{min-width:0
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:192:  max-width: none;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:193:  min-width: 0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:196:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:199:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:200:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:201:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:203:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:204:  flex-wrap:wrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:205:  justify-content:flex-end;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:206:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:208:  max-width:430px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:213:  flex:0 0 100%;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:217:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:219:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:229:  min-width:108px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:234:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:236:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:249:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:250:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:251:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:252:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:256:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:257:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:258:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:259:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:263:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:264:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:265:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:268:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:269:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:270:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:271:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:276:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:281:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:282:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:283:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:284:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:285:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:288:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:289:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:290:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:292:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:293:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:294:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:305:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:307:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:311:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:315:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:320:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:321:.doc-link-list{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:323:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:324:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:332:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:337:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:340:  min-width:0;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:341:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:342:  flex-direction:column;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:347:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:353:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:354:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:356:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:365:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:368:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:369:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:374:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:375:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:376:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:379:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:382:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:384:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:385:  align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:395:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:400:  overflow-wrap:break-word;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:404:  max-width:112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:405:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:408:  flex:0 0 112px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:417:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:418:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:428:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:433:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:436:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:440:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:443:  display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:444:  flex-wrap:nowrap;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:449:.op-main .card .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:450:.op-main .card .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:454:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:459:.op-main .card .card-top .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:460:.op-main .card .card-top .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:461:.op-main .card .row-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:462:.op-main .card .row-kv .badge,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:463:.op-main .card .pipeline-kv .pill,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:464:.op-main .card .pipeline-kv .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:466:  flex:0 0 auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:469:.top-grid .card:nth-child(2) .card-top .badge{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:474:  max-width:122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:476:  display:inline-flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:479:  flex:0 0 122px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:482:  .op-drawer{display:block;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:483:  .drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:498:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:502:    display:flex;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:503:    align-items:flex-start;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:507:  #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:515:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:521:    overflow:auto;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:524:  @media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:525:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:527:  @media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:528:    .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:530:  @media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:531:    .op-shell{grid-template-columns:300px minmax(0,1fr) 420px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:532:    .op-sidebar{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:536:      overflow:visible;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:540:    .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:542:    #data-viewer-modal .drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:556:.canon-unmapped-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:563:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:566:  transition:border-color .18s ease, transform .18s ease, background .18s ease
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:571:  transform:translateY(-1px)
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:576:  font-size:12px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:580:.op-sidebar::-webkit-scrollbar{width:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:581:.op-sidebar::-webkit-scrollbar-track{background:transparent}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.ui_modern_20260408_032143:582:.op-sidebar::-webkit-scrollbar-thumb{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:4:  --panel:#0d2142;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:5:  --panel2:#0f2850;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:25:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:26:  grid-template-columns:300px minmax(0,1fr) 420px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:31:.op-sidebar,.card,.drawer-card{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:32:  background:linear-gradient(180deg,var(--panel),var(--bg2));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:38:.op-sidebar{padding:18px;position:sticky;top:20px;height:calc(100vh - 40px);overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:39:.brand{display:flex;align-items:center;gap:12px;padding:6px 4px 16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:41:.brand strong{display:block;font-size:32px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:45:.side-label{color:#9db0d2;text-transform:uppercase;font-size:12px;letter-spacing:.12em;margin-bottom:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:46:.pill-row{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:48:  display:inline-flex;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:60:.stage-nav{display:flex;flex-direction:column;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:64:  display:flex;align-items:center;justify-content:space-between;gap:10px
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:67:.stage-btn small{display:block;color:var(--muted);font-size:12px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:69:.op-main{min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:71:  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:74:.eyebrow{font-size:12px;letter-spacing:.14em;color:#8eb5ff;text-transform:uppercase;margin-bottom:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:75:.hero h1{margin:0 0 8px;font-size:42px;line-height:1.05}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:76:.hero p{margin:0;color:var(--muted);font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:77:.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:85:.layer-grid,
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:86:.top-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:87:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:88:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:92:.top-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:93:.runtime-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:94:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:95:  grid-template-columns:repeat(3,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:99:.workspace-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:100:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:101:  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:104:.card{padding:18px;min-width:0}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:105:.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:106:.card-title{font-size:12px;letter-spacing:.12em;color:#9db0d2;text-transform:uppercase}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:107:.stat-card h2{margin:0 0 8px;font-size:30px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:112:  display:flex;align-items:center;justify-content:space-between;gap:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:117:.donut-wrap{display:flex;align-items:center;justify-content:center;min-height:168px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:118:.donut{width:170px;height:170px;display:grid;place-items:center;position:relative}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:119:.donut svg{width:170px;height:170px;transform:rotate(-90deg)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:120:.donut-center{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:121:  position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:124:.donut-center strong{font-size:30px;line-height:1}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:125:.donut-center span{font-size:12px;color:var(--muted);margin-top:6px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:126:.step-state{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#ffd99a}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:128:.mini-metric-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:129:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:130:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:141:  text-transform:uppercase;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:143:  font-size:11px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:147:  font-size:22px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:151:  font-size:12px;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:156:.pipeline-board{display:flex;flex-direction:column;gap:10px;max-height:320px;overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:163:.pipeline-item h4{margin:0 0 8px;font-size:16px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:165:.pipeline-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:167:.subcategory-grid{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:168:  display:grid;
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:169:  grid-template-columns:repeat(2,minmax(0,1fr));
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:172:.subcard{
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:175:.subcard h3{margin:0 0 10px;font-size:18px;line-height:1.2}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:176:.sub-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:177:.sub-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:179:.row-table{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:183:.row-item h4{margin:0 0 8px;font-size:17px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:185:.row-kv{display:flex;flex-wrap:wrap;gap:8px}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:187:.op-drawer{position:sticky;top:20px;height:calc(100vh - 40px)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:188:.drawer-card{height:100%;padding:18px;overflow:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:194:@media (max-width: 1480px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:195:  .op-shell{grid-template-columns:280px minmax(0,1fr)}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:196:  .op-drawer{grid-column:1 / -1;position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:198:@media (max-width: 1180px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:199:  .layer-grid,.top-grid,.runtime-grid,.workspace-grid,.subcategory-grid{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:201:@media (max-width: 1080px){
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:202:  .op-shell{grid-template-columns:1fr}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:203:  .op-sidebar,.op-drawer{position:relative;top:auto;height:auto}
/home/yeff/public_html/devon/panel/assets/css/panel.css.bak.20260325-104242:204:  .hero{flex-direction:column}
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:148:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:157:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:162:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:172:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:176:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:193:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:198:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:207:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:287:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:292:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:330:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:358:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:408:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:409:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:410:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:417:            ? donutMarkup(subCounts, "subcategory completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:426:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:442:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:462:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:463:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:464:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:491:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:494:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:149:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:201:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:202:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:208:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:209:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:254:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:255:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:269:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:333:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:334:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:439:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:448:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:453:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:463:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:467:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:484:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:489:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:504:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:529:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:530:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:535:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:542:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:544:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:549:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:561:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:563:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:564:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:598:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:675:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:680:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:752:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:770:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:781:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:782:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:793:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:801:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:885:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:908:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:909:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:910:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:926:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:940:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:949:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:982:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1007:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1013:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1037:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1038:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1072:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1073:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1074:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1075:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1076:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1078:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1114:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1117:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1120:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1123:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1126:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:469:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:470:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:471:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:487:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:504:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:505:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:506:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:509:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:538:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:541:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:544:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:547:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:550:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:942:      '<span class="pill">progress ' + (row.progress_pct ?? "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:978:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1003:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1009:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1033:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1034:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1068:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1069:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1070:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1071:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1072:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1075:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1111:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1114:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1117:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1120:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1123:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:128:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:137:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:142:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:152:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:156:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:173:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:178:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:187:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:267:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:272:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:310:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:338:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:388:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:389:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:390:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:408:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:424:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:444:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:445:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:446:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:473:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:476:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:722:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:740:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:751:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:752:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:763:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:771:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:855:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:878:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:879:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:880:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:896:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:910:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:919:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:952:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:977:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:983:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1007:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1008:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1091:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1094:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1097:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1100:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1103:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:505:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:506:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:511:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:518:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:520:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:525:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:537:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:539:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:540:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:574:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:741:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:759:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:770:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:771:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:782:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:790:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:873:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:896:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:897:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:898:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:914:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:928:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:937:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:971:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:996:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1002:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1026:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1027:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1061:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1062:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1063:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1064:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1065:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1068:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1104:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1107:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1110:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1113:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1116:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:279:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:288:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:293:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:303:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:307:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:324:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:329:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:344:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:372:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:374:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:375:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:380:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:387:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:389:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:394:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:406:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:408:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:409:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:443:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:521:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:526:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:609:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:643:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:724:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:741:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:742:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:743:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:759:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:775:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:808:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:833:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:839:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:863:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:864:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:898:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:899:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:900:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:901:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:902:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:905:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:941:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:944:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:947:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:950:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:953:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:417:        : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:440:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:441:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:442:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:458:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:474:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:505:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:506:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:507:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:510:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:539:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:542:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:545:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:548:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:551:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1108:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1111:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1114:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1117:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1120:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1007:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1043:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1046:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1049:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1052:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1055:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:442:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:443:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:444:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:460:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:476:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:507:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:508:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:509:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:512:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:541:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:544:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:547:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:550:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:553:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:19:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:22:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:23:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:27:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:30:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:222:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:236:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:246:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:250:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:267:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:272:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:287:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:317:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:388:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:393:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:430:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:464:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:545:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:562:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:563:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:564:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:580:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:596:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:629:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:654:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:660:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:684:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:685:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:719:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:720:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:721:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:724:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:757:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:760:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:763:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:766:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:769:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:207:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:216:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:221:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:252:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:257:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:272:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:302:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:369:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:374:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:411:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:441:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:493:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:494:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:495:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:511:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:527:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:560:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:585:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:591:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:615:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:616:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:650:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:651:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:652:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:655:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:684:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:687:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:690:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:693:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260328_205825:696:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.helper_safe_20260405_162249:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:23:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:93:    if (els.drawerLabel) els.drawerLabel.textContent = label || "data";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:107:  function donutMarkup(pct, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:113:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:118:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:120:      '<span>' + (label || "progress") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:127:    return donutMarkup(0, label || "missing");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:187:    const gp = state.projectProgress && state.projectProgress.global_project_progress;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:189:      if (gp && typeof gp.progress_pct === "number") {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:190:        els.projectDonut.innerHTML = donutMarkup(Math.round(gp.progress_pct), "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:254:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:260:        metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:284:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:324:    const pct = rollup && typeof rollup.progress_pct === "number" ? Math.round(rollup.progress_pct) : 0;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:329:      els.heroSubtitle.textContent = "Runtime-backed stage view. Contract and runtime data are rendered from panel exports only.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:338:      els.selectedStageDesc.textContent = "Stage completion is read from runtime_status stage_rollup.progress_pct.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:346:      els.selectedStageDonut.innerHTML = donutMarkup(pct, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:380:        getJsonOptional("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:381:        getJsonOptional("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:382:        getJsonOptional("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js:384:        getJsonOptional("project_progress.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:545:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:579:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:660:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:677:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:678:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:679:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:695:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:711:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:744:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:769:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:775:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:799:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:800:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:834:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:835:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:836:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:837:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:838:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:841:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:877:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:880:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:883:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:886:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_132530:889:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093658:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:196:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:197:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:198:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:214:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:236:        : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:265:          '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:295:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:296:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:297:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:300:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:332:          String(bridgeMeta.bridge_mode || "") === "control_plane_to_panel_push_snapshot" &&
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:354:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:357:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:360:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:363:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_181123:366:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:690:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:724:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:805:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:825:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:826:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:827:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:843:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:859:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:892:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:917:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:923:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:947:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:948:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:982:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:983:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:984:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:985:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:986:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:989:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:1025:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:1028:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:1031:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:1034:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step5_selected_stage_20260403_173603:1037:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:546:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:548:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:549:            els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:583:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:660:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:665:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:750:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:768:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:779:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:780:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:791:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:799:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:883:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:906:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:907:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:908:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:924:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:938:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:947:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:980:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1005:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1011:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1035:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1036:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1070:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1071:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1072:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1073:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1074:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1077:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1113:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1116:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1119:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1122:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_pending_20260406_165048:1125:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160243:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:505:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:506:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:511:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:518:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:520:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:525:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:537:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:539:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:540:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:574:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:741:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:759:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:770:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:771:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:782:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:790:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:874:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:897:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:898:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:899:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:915:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:929:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:938:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:972:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:997:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1003:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1027:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1028:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1062:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1063:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1064:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1065:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1066:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1069:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1105:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1108:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1111:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1114:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_all_smoke_autocalls_20260405_165322:1117:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_family_20260405_134057:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:505:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:506:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:511:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:518:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:520:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:525:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:537:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:539:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:540:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:574:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:741:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:759:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:770:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:771:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:782:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:790:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:874:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:897:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:898:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:899:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:915:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:929:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:938:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:972:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:997:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1003:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1027:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1028:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1062:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1063:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1064:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1065:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1066:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1069:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1105:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1108:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1111:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1114:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.kill_smoke_loop_20260405_165153:1117:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:196:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:197:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:198:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:214:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:231:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:232:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:233:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:236:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:268:          String(bridgeMeta.bridge_mode || "") === "control_plane_to_panel_push_snapshot" &&
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:290:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:293:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:296:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:299:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_170918:302:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:219:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:228:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:233:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:243:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:247:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:264:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:269:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:284:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:314:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:381:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:386:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:423:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:453:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:505:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:506:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:507:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:523:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:539:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:572:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:597:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:603:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:627:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:628:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:662:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:663:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:664:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:667:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:700:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:703:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:706:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:709:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150842:712:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:505:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:506:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:511:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:518:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:520:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:525:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:537:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:539:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:540:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:574:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:741:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:759:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:770:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:771:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:782:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:790:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:873:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:896:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:897:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:898:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:914:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:931:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:964:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:989:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:995:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1019:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1020:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1054:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1055:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1056:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1057:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1058:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1061:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1097:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1100:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1103:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1106:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_final_by_range_20260405_162954:1109:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1108:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1111:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1114:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1117:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_fix2_20260407_113434:1120:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:21:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:22:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:26:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:29:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:221:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:245:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:249:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:266:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:271:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:286:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:316:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:383:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:388:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:425:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:455:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:520:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:537:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:538:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:539:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:555:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:571:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:604:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:629:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:635:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:659:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:660:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:694:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:695:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:696:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:699:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:732:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:735:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:738:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:741:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_151518:744:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:195:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:204:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:209:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:219:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:223:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:240:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:245:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:254:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:332:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:337:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:375:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:404:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:455:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:456:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:457:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:473:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:489:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:509:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:510:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:511:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:538:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120843:541:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160847:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:205:        || String((row && row.subcategory) || "").trim() === "container_runtime"
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:249:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:250:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:264:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:328:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:329:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:434:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:443:        '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:448:        '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:458:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:462:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:479:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:484:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:499:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:516:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:517:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:522:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:529:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:531:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:536:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:547:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:549:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:559:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:590:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:667:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:672:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:757:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:775:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:786:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:787:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:798:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:806:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:890:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:913:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:914:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:915:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:931:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:945:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:954:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:987:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1012:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1018:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1042:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1043:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1077:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1078:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1079:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1080:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1081:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1084:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1120:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1123:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1126:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1129:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore_20260406_192019:1132:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:963:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:988:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:994:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1018:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1019:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1090:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1093:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1096:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1099:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.select_stage_safe_20260407_224205:1102:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1007:          getJson("panel_runtime_bridge.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1045:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1048:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1051:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1054:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_20260404_191056:1057:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:195:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:204:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:209:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:219:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:223:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:240:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:245:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:254:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:334:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:339:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:377:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:406:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:457:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:458:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:459:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:475:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:491:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:511:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:512:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:513:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:540:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-120320:543:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_insert_line.20260326_114355.bak:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:942:      '<span class="pill">progress ' + (row.progress_pct ?? "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:981:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1006:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1012:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1036:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1037:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1071:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1072:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1073:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1074:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1075:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1078:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1114:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1117:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1120:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1123:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.broken_20260405_141825:1126:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:21:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:22:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:26:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:29:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:221:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:245:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:249:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:266:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:271:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:286:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:316:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:383:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:388:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:425:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:455:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:533:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:550:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:551:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:552:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:568:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:584:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:617:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:642:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:648:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:672:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:673:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:707:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:708:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:709:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:712:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:745:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:748:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:751:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:754:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_155940:757:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:522:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:523:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:528:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:535:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:537:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:542:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:554:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:556:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:557:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:591:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:668:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:673:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:758:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:776:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:787:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:788:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:799:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:807:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:891:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:914:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:915:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:916:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:932:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:946:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:955:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:988:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1013:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1019:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1043:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1044:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1078:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1079:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1080:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1081:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1082:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1085:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1121:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1124:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1127:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1130:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getRowsForStage_to_stageRows_20260405_170818:1133:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:366:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:368:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:369:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:374:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:381:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:383:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:388:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:400:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:402:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:403:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:437:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:515:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:520:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:603:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:637:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:718:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:735:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:736:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:737:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:753:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:769:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:802:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:827:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:833:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:857:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:858:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:892:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:893:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:894:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:895:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:896:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:899:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:935:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:938:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:941:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:944:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_fake_observed_donuts_20260402_202142:947:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:225:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:234:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:239:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:249:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:253:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:270:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:275:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:290:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:320:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:391:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:396:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:420:        : donutMarkup({ total: total, PASS: mapped, FAIL: 0, MISSING: total - mapped }, "canon coverage");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:476:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:510:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:591:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:608:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:609:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:610:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:626:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:642:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:675:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:700:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:706:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:730:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:731:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:765:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:766:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:767:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:770:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:804:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:807:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:810:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:813:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.layer_runtime_split_20260331_214743:816:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1007:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1043:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1046:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1049:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1052:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_20260404_131247:1055:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:196:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:197:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:198:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:214:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:236:        : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:265:          '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:295:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:296:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:297:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:300:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:332:          String(bridgeMeta.bridge_mode || "") === "control_plane_to_panel_push_snapshot" &&
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:354:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:357:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:360:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:363:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_171858:366:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:546:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:548:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:549:            els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:583:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:660:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:665:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:750:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:768:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:779:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:780:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:791:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:799:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:883:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:906:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:907:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:908:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:924:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:938:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:947:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:980:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1005:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1011:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1035:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1036:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1070:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1071:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1072:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1073:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1074:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1077:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1113:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1116:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1119:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1122:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_global_project_progress_typo_20260406_161906:1125:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:417:        : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:442:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:443:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:444:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:460:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:476:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:507:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:508:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:509:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:512:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:541:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:544:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:547:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:550:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162130:553:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:963:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:988:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:994:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1018:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1019:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1082:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1083:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1084:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1085:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1086:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1088:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1120:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1123:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1126:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1129:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.recover_render_20260408_034351:1132:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.fix_20260325_191531.bak:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:533:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:534:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:535:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:538:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:567:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:570:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:573:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:576:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160029:579:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:347:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:352:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:390:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:420:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:472:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:473:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:474:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:490:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:506:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:537:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:538:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:539:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:542:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:571:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:574:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:577:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:580:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_fix.20260326_095220.bak:583:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:219:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:228:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:233:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:243:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:247:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:264:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:269:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:284:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:314:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:381:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:386:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:423:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:453:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:505:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:506:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:507:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:523:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:539:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:572:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:597:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:603:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:627:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:628:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:662:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:663:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:664:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:667:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:697:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:700:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:703:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:706:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_141005:709:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:271:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:354:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:359:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:396:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:426:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:478:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:479:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:480:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:496:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:512:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:545:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:570:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:576:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:600:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:601:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:635:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:636:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:637:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:640:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:669:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:672:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:675:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:678:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_130515:681:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:21:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:22:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:26:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:29:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:221:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:245:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:249:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:266:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:271:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:286:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:316:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:383:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:388:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:425:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:459:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:537:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:554:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:555:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:556:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:572:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:588:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:621:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:646:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:652:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:676:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:677:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:711:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:712:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:713:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:716:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:749:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:752:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:755:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:758:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_160314:761:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:225:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:234:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:239:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:249:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:253:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:270:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:275:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:290:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:320:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:391:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:396:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:420:        : donutMarkup({ total: total, PASS: mapped, FAIL: 0, MISSING: total - mapped }, "canon coverage");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:472:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:506:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:587:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:604:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:605:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:606:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:622:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:638:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:671:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:696:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:702:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:726:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:727:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:761:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:762:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:763:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:766:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:800:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:803:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:806:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:809:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_164946:812:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_family_standard_20260403_034532:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:17:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:26:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:30:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:34:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:37:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:38:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:42:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:45:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:154:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:206:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:207:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:213:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:214:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:241:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:242:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:257:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:374:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:383:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:388:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:398:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:402:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:419:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:424:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:439:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:465:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:466:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:471:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:478:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:480:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:485:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:497:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:499:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:500:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:534:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:542:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:610:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:615:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:700:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:718:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:729:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:730:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:741:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:749:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:832:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:855:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:856:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:857:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:873:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:894:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:927:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:952:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:958:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:982:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:983:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1017:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1018:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1019:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1020:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1021:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1024:          getJson("panel_runtime_bridge.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1062:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1065:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1068:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1071:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_overlay_20260404_191211:1074:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:23:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:93:    if (els.drawerLabel) els.drawerLabel.textContent = label || "data";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:107:  function donutMarkup(pct, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:113:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:118:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:120:      '<span>' + (label || "progress") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:127:    return donutMarkup(0, label || "missing");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:187:    const gp = state.projectProgress && state.projectProgress.global_project_progress;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:189:      if (gp && typeof gp.progress_pct === "number") {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:190:        els.projectDonut.innerHTML = donutMarkup(Math.round(gp.progress_pct), "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:254:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:260:        metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:284:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:324:    const pct = rollup && typeof rollup.progress_pct === "number" ? Math.round(rollup.progress_pct) : 0;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:329:      els.heroSubtitle.textContent = "Runtime-backed stage view. Contract and runtime data are rendered from panel exports only.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:338:      els.selectedStageDesc.textContent = "Stage completion is read from runtime_status stage_rollup.progress_pct.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:346:      els.selectedStageDonut.innerHTML = donutMarkup(pct, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:380:        getJsonOptional("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:381:        getJsonOptional("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:382:        getJsonOptional("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.pipeline_section_20260408_045050:384:        getJsonOptional("project_progress.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:441:        '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:446:        '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:545:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:547:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:557:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:588:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:665:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:670:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:755:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:773:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:784:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:785:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:796:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:804:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:888:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:911:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:912:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:913:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:929:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:943:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:952:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:985:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1010:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1016:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1040:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1041:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1075:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1076:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1077:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1078:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1079:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1082:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1118:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1121:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1124:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1127:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_regex_20260406_185219:1130:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_minimal_runtime_swap_20260405_145532:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:366:      const donutCounts = runtimeCounts.total ? runtimeCounts : projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:369:        els.projectDonut.innerHTML = donutCounts.total
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:370:          ? donutMarkup(donutCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:399:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:477:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:482:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:565:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:599:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:680:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:697:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:698:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:699:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:715:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:731:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:764:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:789:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:795:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:819:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:820:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:854:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:855:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:856:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:857:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:858:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:861:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:897:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:900:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:903:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:906:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_donut_revert_20260402_135806:909:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:963:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:988:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:994:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1018:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1019:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1090:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1093:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1096:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1099:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_20260408_033908:1102:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:963:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:988:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:994:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1018:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1019:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1090:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1093:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1096:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1099:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_231046:1102:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:366:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:369:        els.projectDonut.innerHTML = donutCounts.total
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:370:          ? donutMarkup(donutCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:399:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:477:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:482:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:565:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:599:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:680:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:697:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:698:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:699:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:715:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:731:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:764:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:789:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:795:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:819:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:820:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:854:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:855:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:856:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:857:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:858:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:861:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:897:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:900:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:903:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:906:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_missing_20260402_144534:909:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:690:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:708:      const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:711:        donutsOnly: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:727:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:808:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:828:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:829:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:830:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:846:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:862:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:895:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:920:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:926:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:950:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:951:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:985:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:986:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:987:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:988:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:989:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:992:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:1028:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:1031:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:1034:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:1037:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_20260403_173833:1040:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.before_restore_20260325_180102.bak:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:537:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:562:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:568:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:592:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:593:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:608:        if (els.drawerLabel) els.drawerLabel.textContent = "smoke_test";
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:627:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:628:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:629:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:632:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:661:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:664:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:667:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:670:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_linefix.20260326_124337.bak:673:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:246:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:247:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:261:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:325:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:326:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:431:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:440:        '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:445:        '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:455:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:459:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:476:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:481:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:496:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:513:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:514:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:519:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:526:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:528:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:533:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:544:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:546:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:556:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:587:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:664:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:669:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:754:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:772:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:783:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:784:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:795:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:803:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:887:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:910:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:911:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:912:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:928:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:942:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:951:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:984:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1009:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1015:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1039:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1040:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1074:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1075:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1076:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1077:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1078:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1081:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1117:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1120:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1123:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1126:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_docker_runtime_eligibility_20260406_190255:1129:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:722:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:803:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:823:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:824:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:825:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:841:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:857:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:890:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:915:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:921:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:945:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:946:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:980:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:981:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:982:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:983:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:984:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:987:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:1023:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:1026:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:1029:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:1032:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step4_pipeline_board_20260403_173439:1035:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:706:      const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:709:        donutsOnly: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:725:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:806:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:826:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:827:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:828:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:844:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:860:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:893:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:918:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:924:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:948:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:949:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:983:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:984:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:985:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:986:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:987:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:990:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:1026:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:1029:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:1032:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:1035:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_20260403_192916:1038:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:207:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:216:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:221:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:252:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:257:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:272:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:302:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:369:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:374:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:411:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:441:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:493:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:494:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:495:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:511:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:527:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:560:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:585:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:591:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:615:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:616:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:650:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:651:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:652:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:655:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:685:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:688:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:691:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:694:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_020905:697:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:963:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:988:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:994:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1018:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1019:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1090:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1093:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1096:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1099:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_render_20260407_223344:1102:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:207:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:216:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:221:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:252:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:257:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:272:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:302:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:369:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:374:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:411:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:441:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:493:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:494:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:495:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:511:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:527:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:560:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:585:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:591:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:615:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:616:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:650:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:651:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:652:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:655:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:685:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:688:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:691:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:694:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260329_021259:697:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:279:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:288:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:293:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:303:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:307:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:324:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:329:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:344:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:372:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:374:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:375:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:380:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:387:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:389:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:394:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:406:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:408:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:409:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:443:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:521:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:526:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:609:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:643:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:724:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:741:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:742:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:743:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:759:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:775:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:808:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:833:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:839:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:863:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:864:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:898:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:899:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:900:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:901:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:902:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:905:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:941:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:944:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:947:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:950:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_group_fix_20260403_033813:953:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:147:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:199:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:200:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:206:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:207:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:252:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:253:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:267:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:331:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:332:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:437:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:446:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:451:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:461:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:465:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:482:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:487:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:502:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:527:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:528:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:533:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:540:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:542:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:547:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:559:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:561:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:562:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:596:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:673:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:678:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:763:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:781:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:792:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:793:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:804:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:812:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:896:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:919:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:920:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:921:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:937:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:951:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:960:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:993:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1018:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1024:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1048:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1049:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1083:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1084:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1085:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1086:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1087:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1089:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1125:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1128:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1131:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1134:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_call_20260407_105524:1137:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:690:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:708:      const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:711:        donutsOnly: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:727:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:808:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:828:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:829:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:830:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:846:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:862:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:895:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:920:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:926:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:950:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:951:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:985:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:986:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:987:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:988:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:989:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:992:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:1028:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:1031:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:1034:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:1037:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step6_subcategories_20260403_173716:1040:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:219:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:228:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:233:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:243:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:247:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:264:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:269:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:284:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:314:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:381:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:386:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:423:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:453:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:505:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:506:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:507:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:523:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:539:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:572:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:597:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:603:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:627:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:628:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:662:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:663:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:664:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:667:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:700:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:703:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:706:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:709:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_150241:712:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:148:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:157:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:162:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:172:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:176:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:193:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:198:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:207:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:287:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:292:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:330:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:358:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:408:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:409:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:410:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:417:            ? donutMarkup(subCounts, "subcategory completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:426:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:442:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:462:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:463:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:464:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:491:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-115532:494:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:951:            <div style="font-size:12px;opacity:.7">Order ${selected.deployment_order}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:974:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:999:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1005:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1029:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1030:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1064:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1065:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1066:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1067:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1068:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1070:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1101:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1104:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1107:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1110:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_selectedStageCard_20260407_224651:1113:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:455:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:457:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:458:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:463:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:470:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:472:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:477:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:489:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:491:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:492:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:526:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:604:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:609:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:692:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:726:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:807:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:827:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:828:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:829:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:845:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:861:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:894:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:919:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:925:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:949:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:950:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:984:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:985:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:986:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:987:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:988:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:991:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:1027:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:1030:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:1033:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:1036:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_20260403_173028:1039:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_linepatch_20260403_161605:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:545:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:547:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:557:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:588:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:665:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:670:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:755:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:773:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:784:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:785:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:796:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:804:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:888:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:911:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:912:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:913:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:929:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:943:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:952:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:985:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1010:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1016:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1040:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1041:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1075:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1076:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1077:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1078:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1079:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1082:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1118:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1121:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1124:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1127:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_full_rollback_20260406_192312:1130:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:522:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:523:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:528:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:535:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:537:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:542:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:554:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:556:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:557:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:591:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:668:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:673:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:758:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:776:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:787:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:788:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:799:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:807:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:891:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:914:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:915:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:916:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:932:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:946:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:955:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:988:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1013:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1019:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1043:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1044:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1078:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1079:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1080:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1081:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1082:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1085:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1121:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1124:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1127:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1130:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.repoint_contract_v2_20260407_095825:1133:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:504:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:505:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:510:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:517:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:519:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:524:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:536:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:538:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:539:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:573:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:650:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:655:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:740:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:758:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:769:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:770:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:781:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:789:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:873:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:896:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:897:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:898:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:914:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:928:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:937:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:970:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:995:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1001:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1025:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1026:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1060:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1061:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1062:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1063:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1064:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1067:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1103:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1106:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1109:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1112:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtimeRowStatus_and_snapshot_order_20260405_170611:1115:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:690:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:708:      const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:711:        donutsOnly: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:727:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:808:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:828:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:829:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:830:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:846:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:862:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:895:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:920:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:926:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:950:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:951:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:985:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:986:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:987:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:988:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:989:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:992:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:1028:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:1031:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:1034:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:1037:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step7_navcount_fix_20260403_174002:1040:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:148:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:157:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:162:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:172:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:176:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:193:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:198:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:207:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:287:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:292:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:330:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:358:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:408:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:409:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:410:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:417:            ? donutMarkup(subCounts, "subcategory completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:426:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:442:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:462:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:463:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:464:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:491:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111505:494:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:522:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:523:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:524:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:551:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_135721:554:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_final_20260403_162853:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1007:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1043:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1046:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1049:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1052:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_mirror_phase1_fix_20260404_131929:1055:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:271:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:354:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:359:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:396:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:426:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:478:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:479:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:480:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:496:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:512:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:545:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:570:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:576:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:600:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:601:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:635:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:636:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:637:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:640:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:669:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:672:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:675:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:678:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_124133:681:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:366:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:475:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:480:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:563:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:597:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:678:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:695:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:696:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:697:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:713:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:729:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:762:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:787:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:793:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:817:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:818:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:852:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:853:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:854:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:855:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:856:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:859:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:895:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:898:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:901:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:904:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.project_progress_from_devon_20260402_152041:907:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:545:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:579:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:660:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:677:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:678:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:679:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:695:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:711:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:744:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:769:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:775:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:799:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:800:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:834:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:835:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:836:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:837:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:838:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:841:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:877:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:880:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:883:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:886:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133922:889:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_family_swap_20260405_162124:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:545:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:579:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:660:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:677:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:678:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:679:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:695:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:711:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:744:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:769:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:775:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:799:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:800:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:834:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:835:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:836:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:837:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:838:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:841:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:877:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:880:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:883:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:886:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.required_steps_force_break_20260331_233336:889:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1103:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1106:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1109:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1112:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.clean_nav_replace_20260407_210512:1115:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:522:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:523:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:524:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:551:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152324:554:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:271:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:354:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:359:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:396:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:426:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:478:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:479:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:480:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:496:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:512:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:545:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:570:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:576:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:600:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:601:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:635:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:636:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:637:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:640:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:669:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:672:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:675:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:678:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_123609:681:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:148:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:157:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:162:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:172:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:176:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:193:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:198:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:207:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:287:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:292:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:330:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:358:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:408:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:409:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:410:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:417:            ? donutMarkup(subCounts, "subcategory completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:426:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:442:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:462:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:463:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:464:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:491:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114209:494:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:522:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:523:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:528:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:535:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:537:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:542:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:554:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:556:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:557:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:591:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:668:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:673:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:758:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:776:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:787:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:788:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:799:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:807:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:891:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:914:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:915:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:916:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:932:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:946:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:955:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:988:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1013:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1019:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1043:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1044:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1078:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1079:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1080:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1081:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1082:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1085:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1121:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1124:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1127:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1130:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.matrix_soft_disable_20260407_101438:1133:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:80:    "host_runtime.json": ["panel_host_runtime.json"],
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:81:    "docker_runtime.json": ["panel_docker_runtime.json"],
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:82:    "runtime_status.json": ["panel_pipeline_runtime.json", "panel_runtime_status.json"]
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:140:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:141:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:142:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:145:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:177:          String(bridgeMeta.bridge_mode || "") === "control_plane_to_panel_push_snapshot" &&
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:199:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:202:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:205:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:208:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.rollback_20260325_181248.bak:211:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:728:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:746:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:757:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:758:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:769:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:777:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:861:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:884:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:885:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:886:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:902:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:916:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:925:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:958:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:983:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:989:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1013:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1014:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1048:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1049:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1050:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1051:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1052:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1054:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1085:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1088:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1091:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1094:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.active_state_20260407_221114:1097:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:545:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:547:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:557:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:588:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:665:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:670:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:755:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:773:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:784:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:785:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:796:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:804:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:888:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:911:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:912:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:913:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:929:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:943:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:952:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:985:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1010:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1016:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1040:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1041:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1075:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1076:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1077:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1078:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1079:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1082:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1118:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1121:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1124:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1127:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_markup_project_progress_20260406_172131:1130:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_runtime_family_20260405_145300:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:148:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:157:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:162:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:172:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:176:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:193:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:198:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:207:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:287:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:292:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:330:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:358:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:408:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:409:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:410:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:417:            ? donutMarkup(subCounts, "subcategory completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:426:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:442:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:462:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:463:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:464:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:491:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-111245:494:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:535:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:536:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:537:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:540:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:569:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:572:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:575:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:578:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_hook.20260326_101748.bak:581:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:417:        : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:442:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:443:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:444:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:460:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:476:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:507:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:508:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:509:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:512:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:541:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:544:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:547:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:550:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163146:553:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:545:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:547:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:557:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:588:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:665:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:670:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:755:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:773:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:784:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:785:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:796:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:804:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:888:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:911:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:912:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:913:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:929:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:943:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:952:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:985:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1010:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1016:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1040:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1041:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1075:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1076:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1077:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1078:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1079:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1082:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1118:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1121:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1124:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1127:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_donut_pct_logic_20260406_172842:1130:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:731:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:749:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:760:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:761:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:772:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:780:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:864:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:887:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:888:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:889:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:905:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:919:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:928:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:961:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:986:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:992:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1016:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1017:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1062:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1063:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1064:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1065:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1066:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1068:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1100:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1103:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1106:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1109:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hardfix_20260408_035328:1112:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:546:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:548:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:549:            els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:583:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:660:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:665:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:750:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:768:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:779:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:780:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:791:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:799:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:883:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:906:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:907:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:908:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:924:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:938:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:947:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:980:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1005:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1011:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1035:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1036:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1070:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1071:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1072:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1073:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1074:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1077:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1113:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1116:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1119:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1122:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_donut_runtime_20260406_165903:1125:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:219:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:228:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:233:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:243:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:247:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:264:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:269:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:284:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:314:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:381:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:386:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:423:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:453:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:505:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:506:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:507:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:523:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:539:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:572:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:597:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:603:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:627:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:628:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:662:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:663:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:664:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:667:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:697:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:700:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:703:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:706:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_135015:709:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js:24:  phases: [], cats: [], data: {},
/home/yeff/public_html/devon/panel/assets/js/panel.js:26:  sel: { phaseId: null, catId: null, bucket: null }
/home/yeff/public_html/devon/panel/assets/js/panel.js:31:    const [hub, host, docker, runtime, progress] = await Promise.all([
/home/yeff/public_html/devon/panel/assets/js/panel.js:36:      fetch('data/project_progress.json').then(r => r.json()).catch(() => null)
/home/yeff/public_html/devon/panel/assets/js/panel.js:38:    G.phases = hub.phases || [];
/home/yeff/public_html/devon/panel/assets/js/panel.js:40:    G.data = { host, docker, runtime, progress };
/home/yeff/public_html/devon/panel/assets/js/panel.js:50:function phaseOfCat(cat) {
/home/yeff/public_html/devon/panel/assets/js/panel.js:52:  if (!m) return 'phase-01';
/home/yeff/public_html/devon/panel/assets/js/panel.js:53:  return 'phase-' + String(parseInt(m[0])).padStart(2, '0');
/home/yeff/public_html/devon/panel/assets/js/panel.js:56:function catsForPhase(phaseId) {
/home/yeff/public_html/devon/panel/assets/js/panel.js:57:  return G.cats.filter(c => phaseOfCat(c) === phaseId);
/home/yeff/public_html/devon/panel/assets/js/panel.js:64:  for (const ph of G.phases) {
/home/yeff/public_html/devon/panel/assets/js/panel.js:66:    const phActive = G.sel.phaseId === ph.id ? ' ph-active' : '';
/home/yeff/public_html/devon/panel/assets/js/panel.js:85:            const bkActive = G.sel.catId === cat.id && G.sel.bucket === bk ? ' bk-active' : '';
/home/yeff/public_html/devon/panel/assets/js/panel.js:102:      if (G.openPhases.has(id)) { G.openPhases.delete(id); G.openCats.clear(); G.sel.catId = null; G.sel.bucket = null; }
/home/yeff/public_html/devon/panel/assets/js/panel.js:104:      G.sel.phaseId = id;
/home/yeff/public_html/devon/panel/assets/js/panel.js:112:      if (G.openCats.has(id)) { G.openCats.delete(id); G.sel.bucket = null; }
/home/yeff/public_html/devon/panel/assets/js/panel.js:114:      G.sel.phaseId = el.dataset.ph;
/home/yeff/public_html/devon/panel/assets/js/panel.js:116:      G.sel.bucket = null;
/home/yeff/public_html/devon/panel/assets/js/panel.js:123:      G.sel.phaseId = el.dataset.ph;
/home/yeff/public_html/devon/panel/assets/js/panel.js:125:      G.sel.bucket = el.dataset.bk;
/home/yeff/public_html/devon/panel/assets/js/panel.js:135:  if (!G.sel.phaseId) { el.innerHTML = renderSummary(); return; }
/home/yeff/public_html/devon/panel/assets/js/panel.js:136:  const ph = G.phases.find(p => p.id === G.sel.phaseId);
/home/yeff/public_html/devon/panel/assets/js/panel.js:139:  if (!G.sel.bucket) { el.innerHTML = renderCatOverview(ph, cat); return; }
/home/yeff/public_html/devon/panel/assets/js/panel.js:140:  el.innerHTML = renderBucketDetail(ph, cat, G.sel.bucket);
/home/yeff/public_html/devon/panel/assets/js/panel.js:144:  const pp = G.data.progress;
/home/yeff/public_html/devon/panel/assets/js/panel.js:145:  const pct = Math.round(pp?.progress_pct ?? pp?.global_pct ?? 0);
/home/yeff/public_html/devon/panel/assets/js/panel.js:152:    <div class="sum-sub">Select a phase in the tree to navigate. Canon leads. Runtime validates. UI renders.</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:164:  const cards = cats.map(c => `<div class="cat-card" data-ph="${ph.id}" data-cat="${c.id}">
/home/yeff/public_html/devon/panel/assets/js/panel.js:165:    <div class="cat-card-title">${c.title}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:166:    <div class="cat-card-sub">${c.sub || ''}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:174:    <div class="ph-ov-cats">${cards}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:179:  const bkCards = BUCKETS.map((bk, i) => `<div class="bk-card" data-ph="${ph.id}" data-cat="${cat.id}" data-bk="${bk}">
/home/yeff/public_html/devon/panel/assets/js/panel.js:180:    <span class="bk-card-num">${String(i+1).padStart(2,'0')}</span>
/home/yeff/public_html/devon/panel/assets/js/panel.js:181:    <span class="bk-card-name">${bk}</span>
/home/yeff/public_html/devon/panel/assets/js/panel.js:182:    <span class="bk-card-desc">${BUCKET_DESC[bk]}</span>
/home/yeff/public_html/devon/panel/assets/js/panel.js:197:function renderBucketDetail(ph, cat, bucket) {
/home/yeff/public_html/devon/panel/assets/js/panel.js:198:  const phIdx = G.phases.findIndex(p => p.id === ph.id);
/home/yeff/public_html/devon/panel/assets/js/panel.js:199:  const bkIdx = BUCKETS.indexOf(bucket);
/home/yeff/public_html/devon/panel/assets/js/panel.js:205:    return `<div class="item-card ${cls}">
/home/yeff/public_html/devon/panel/assets/js/panel.js:216:  const phPct = Math.round((phIdx / G.phases.length) * 100);
/home/yeff/public_html/devon/panel/assets/js/panel.js:220:    <span class="det-bc">${ph.step} / ${cat.title} / <b>${bucket}</b></span>
/home/yeff/public_html/devon/panel/assets/js/panel.js:221:    <div class="det-pills"><span class="pl pl-v">${ph.step}</span><span class="pl pl-bk">${bucket}</span></div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:224:    <div class="det-hd-top"><span class="det-phase">${ph.step}</span><span class="det-sep">/</span><span class="det-cat">${cat.title}</span></div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:226:    <div class="det-sub">${BUCKET_DESC[bucket]}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:228:  <div class="det-progress">
/home/yeff/public_html/devon/panel/assets/js/panel.js:229:    <div class="prog-card">
/home/yeff/public_html/devon/panel/assets/js/panel.js:230:      <div class="prog-lbl">Phase ${phIdx + 1} of ${G.phases.length}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:234:    <div class="prog-card">
/home/yeff/public_html/devon/panel/assets/js/panel.js:237:      <div class="prog-nums">${bucket}</div>
/home/yeff/public_html/devon/panel/assets/js/panel.js:278:    const ph10 = G.phases.find(p => p.id === 'phase-10');
/home/yeff/public_html/devon/panel/assets/js/panel.js:280:    G.openPhases.add('phase-10');
/home/yeff/public_html/devon/panel/assets/js/panel.js:281:    G.sel.phaseId = 'phase-10';
/home/yeff/public_html/devon/panel/assets/js/panel.js:282:    G.sel.catId = null; G.sel.bucket = null;
/home/yeff/public_html/devon/panel/assets/js/panel.js:285:  document.getElementById('dp-drawer-close')?.addEventListener('click', closeDrawer);
/home/yeff/public_html/devon/panel/assets/js/panel.js:289:  const drawer = document.getElementById('dp-drawer');
/home/yeff/public_html/devon/panel/assets/js/panel.js:290:  const pre = document.getElementById('dp-drawer-pre');
/home/yeff/public_html/devon/panel/assets/js/panel.js:291:  drawer.classList.add('open');
/home/yeff/public_html/devon/panel/assets/js/panel.js:302:  document.getElementById('dp-drawer').classList.remove('open');
/home/yeff/public_html/devon/panel/assets/js/panel.js:305:/* ── CAT CARD CLICK (phase overview) ─────────────── */
/home/yeff/public_html/devon/panel/assets/js/panel.js:308:  const cc = e.target.closest('.cat-card');
/home/yeff/public_html/devon/panel/assets/js/panel.js:310:    G.sel.phaseId = cc.dataset.ph;
/home/yeff/public_html/devon/panel/assets/js/panel.js:312:    G.sel.bucket = null;
/home/yeff/public_html/devon/panel/assets/js/panel.js:317:  const bc = e.target.closest('.bk-card');
/home/yeff/public_html/devon/panel/assets/js/panel.js:319:    G.sel.phaseId = bc.dataset.ph;
/home/yeff/public_html/devon/panel/assets/js/panel.js:321:    G.sel.bucket = bc.dataset.bk;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:475:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:480:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:563:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:597:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:678:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:695:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:696:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:697:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:713:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:729:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:762:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:787:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:793:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:817:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:818:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:852:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:853:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:854:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:855:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:856:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:859:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:895:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:898:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:901:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:904:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.donut_runtime_fix_20260402_135423:907:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoke_funcs.20260326_113905.bak:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:417:        : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:468:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:469:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:470:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:486:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:503:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:504:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:505:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:508:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:537:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:540:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:543:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:546:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163427:549:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:455:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:457:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:458:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:463:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:470:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:472:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:477:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:489:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:491:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:492:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:526:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:604:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:609:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:692:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:726:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:807:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:827:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:828:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:829:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:845:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:861:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:894:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:919:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:925:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:949:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:950:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:984:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:985:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:986:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:987:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:988:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:991:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:1027:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:1030:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:1033:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:1036:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_range_20260403_173336:1039:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:128:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:137:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:142:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:152:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:156:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:173:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:178:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:187:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:267:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:272:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:310:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:390:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:391:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:392:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:410:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:426:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:446:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:447:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:448:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:475:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092135:478:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:343:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:348:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:386:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:415:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:466:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:467:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:468:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:484:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:500:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:520:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:521:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:522:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:549:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-121117:552:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:840:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:841:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:842:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:858:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:874:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:907:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:932:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:938:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:962:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:963:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:997:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:998:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:999:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1000:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1001:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1004:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1040:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1043:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1046:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1049:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.subcards_na_fix_20260403_194832:1052:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:449:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:500:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:501:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:502:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:518:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:534:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:565:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:566:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:567:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:570:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:599:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:602:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:605:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:608:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160717:611:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:486:        : donutMarkup({ total: total, PASS: mapped, FAIL: 0, MISSING: total - mapped }, "canon coverage");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:542:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:576:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:657:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:674:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:675:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:676:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:692:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:708:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:741:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:766:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:772:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:796:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:797:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:831:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:832:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:833:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:834:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:835:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:838:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:874:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:877:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:880:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:883:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_canon_coverage_20260331_220612:886:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:128:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:137:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:142:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:152:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:156:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:173:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:178:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:187:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:267:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:272:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:310:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:338:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:388:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:389:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:390:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:408:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:424:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:444:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:445:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:446:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:473:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093421:476:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_family_runtime_ex_20260405_152654:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161051:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:533:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:534:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:535:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:538:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:567:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:570:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:573:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:576:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_155533:579:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1108:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1111:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1114:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1117:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix2_20260407_111932:1120:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-103513:2:  const backupPath = '/home/yeff/_bkp/devon-panel-ui-precanon-20260322-194415' + "/panel_live";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1108:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1111:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1114:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1117:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_20260407_111423:1120:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:522:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:523:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:528:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:535:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:537:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:542:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:554:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:556:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:557:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:591:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:668:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:673:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:758:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:776:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:787:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:788:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:799:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:807:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:891:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:914:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:915:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:916:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:932:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:946:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:955:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:988:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1013:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1019:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1043:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1044:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1078:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1079:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1080:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1081:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1082:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1085:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1121:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1124:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1127:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1130:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderGlobal_runtime_only_20260405_173025:1133:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1007:          getJson("panel_runtime_bridge.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1045:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1048:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1051:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1054:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.show_fail_20260404_190701:1057:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:522:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:523:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:524:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:551:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_151000:554:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1103:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1106:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1109:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1112:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_simplify_20260407_210109:1115:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_ui_20260403_155554:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1007:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1043:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1046:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1049:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1052:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.canonical_runtimeSubcategoryRows_20260404_203313:1055:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:207:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:216:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:221:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:235:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:252:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:257:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:272:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:294:        ? donutMarkup(runtimeCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:361:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:366:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:403:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:433:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:485:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:486:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:487:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:503:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:519:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:552:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:577:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:583:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:607:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:608:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:642:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:643:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:644:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:647:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:676:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:679:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:682:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:685:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260327_140445:688:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_fix_20260403_162252:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:942:      '<span class="pill">progress ' + (row.progress_pct ?? "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:978:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1003:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1009:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1033:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1034:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1068:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1069:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1070:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1071:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1072:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1075:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1111:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1114:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1117:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1120:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_helper_20260405_144356:1123:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:522:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:523:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:524:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:551:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_133010:554:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:345:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:350:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:417:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:468:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:469:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:470:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:486:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:502:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:522:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:523:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:524:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:551:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_152610:554:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:535:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:536:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:537:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:540:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:569:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:572:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:575:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:578:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100438.bak:581:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.full_runtime_family_20260405_135208:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:504:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:505:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:510:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:517:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:519:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:524:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:536:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:538:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:539:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:573:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:650:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:655:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:740:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:758:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:769:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:770:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:781:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:789:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:873:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:896:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:897:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:898:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:914:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:928:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:937:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:970:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:995:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1001:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1025:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1026:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1060:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1061:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1062:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1063:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1064:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1067:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1103:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1106:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1109:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1112:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_subcategories_snapshot_20260405_165434:1115:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_fix_20260403_035959:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:733:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:751:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:762:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:763:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:774:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:782:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:866:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:889:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:890:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:891:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:907:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:921:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:930:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:963:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:988:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:994:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1018:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1019:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1090:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1093:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1096:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1099:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_render_flow_20260407_232428:1102:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:144:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:196:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:197:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:203:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:204:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:249:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:250:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:264:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:328:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:329:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:434:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:443:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:448:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:458:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:462:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:479:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:484:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:499:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:524:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:525:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:530:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:537:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:539:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:544:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:556:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:558:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:559:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:593:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:670:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:675:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:760:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:778:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:789:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:790:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:801:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:809:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:893:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:916:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:917:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:918:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:934:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:948:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:957:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:990:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1015:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1021:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1045:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1046:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1080:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1081:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1082:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1083:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1084:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1087:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1123:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1126:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1129:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1132:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_rows_20260407_101931:1135:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:722:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:740:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:751:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:752:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:763:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:771:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:855:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:878:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:879:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:880:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:896:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:910:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:919:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:952:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:977:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:983:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1007:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1008:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1091:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1094:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1097:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1100:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.force_new_assets_20260408_040402:1103:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:151:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:203:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:204:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:210:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:211:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:256:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:257:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:271:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:335:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:336:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:441:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:450:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:455:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:465:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:469:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:486:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:491:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:506:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:531:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:532:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:537:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:544:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:546:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:551:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:563:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:565:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:566:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:600:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:677:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:682:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:754:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:772:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:783:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:784:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:795:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:803:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:887:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:910:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:911:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:912:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:928:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:942:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:951:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:984:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1009:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1015:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1039:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1040:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1074:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1075:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1076:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1077:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1078:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1080:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1116:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1119:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1122:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1125:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_getMatrixRows_canonical_20260407_105935:1128:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:19:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:22:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:23:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:27:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:30:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:222:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:236:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:246:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:250:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:267:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:272:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:287:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:317:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:388:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:393:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:430:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:464:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:545:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:562:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:563:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:564:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:580:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:596:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:629:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:654:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:660:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:684:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:685:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:719:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:720:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:721:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:724:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:757:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:760:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:763:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:766:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162745:769:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_safe_runtime_swap_20260405_145755:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:128:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:137:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:142:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:152:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:156:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:173:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:178:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:187:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:267:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:272:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:310:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:338:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:388:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:389:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:390:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:397:            ? donutMarkup(subCounts, "subcategory completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:406:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:422:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:442:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:443:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:444:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:471:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-095241:474:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:656:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:661:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:722:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:740:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:751:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:752:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:763:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:771:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:855:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:878:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:879:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:880:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:896:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:910:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:919:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:952:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:977:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:983:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1007:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1008:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1053:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1054:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1055:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1056:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1057:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1059:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1091:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1094:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1097:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1100:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.rebuild_minimal_20260408_043301:1103:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:358:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:367:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:372:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:382:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:386:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:403:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:408:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:423:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:451:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:722:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:803:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:823:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:824:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:825:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:841:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:857:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:890:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:915:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:921:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:945:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:946:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:980:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:981:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:982:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:983:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:984:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:987:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:1023:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:1026:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:1029:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:1032:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_20260403_172401:1035:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:23:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:93:    if (els.drawerLabel) els.drawerLabel.textContent = label || "data";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:107:  function donutMarkup(pct, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:113:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:118:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:120:      '<span>' + (label || "progress") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:127:    return donutMarkup(0, label || "missing");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:187:    const gp = state.projectProgress && state.projectProgress.global_project_progress;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:189:      if (gp && typeof gp.progress_pct === "number") {
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:190:        els.projectDonut.innerHTML = donutMarkup(Math.round(gp.progress_pct), "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:254:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:260:        metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:284:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:324:    const pct = rollup && typeof rollup.progress_pct === "number" ? Math.round(rollup.progress_pct) : 0;
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:329:      els.heroSubtitle.textContent = "Runtime-backed stage view. Contract and runtime data are rendered from panel exports only.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:338:      els.selectedStageDesc.textContent = "Stage completion is read from runtime_status stage_rollup.progress_pct.";
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:346:      els.selectedStageDonut.innerHTML = donutMarkup(pct, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:380:        getJsonOptional("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:381:        getJsonOptional("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:382:        getJsonOptional("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.runtime.fix.20260408_1.js.bak.layout_fix_20260408_044306:384:        getJsonOptional("project_progress.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:455:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:457:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:458:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:463:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:470:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:472:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:477:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:489:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:491:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:492:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:526:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:604:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:609:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:692:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:726:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:807:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:827:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:828:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:829:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:845:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:861:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:894:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:919:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:925:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:949:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:950:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:984:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:985:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:986:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:987:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:988:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:991:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:1027:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:1030:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:1033:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:1036:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step3_render_global_fix_20260403_173147:1039:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:545:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:579:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:660:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:677:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:678:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:679:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:695:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:711:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:744:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:769:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:775:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:799:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:800:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:834:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:835:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:836:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:837:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:838:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:841:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:877:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:880:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:883:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:886:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133237:889:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:19:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:22:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:23:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:27:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:30:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:222:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:236:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:246:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:250:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:267:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:272:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:287:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:317:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:388:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:393:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:430:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:464:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:545:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:562:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:563:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:564:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:580:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:596:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:629:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:654:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:660:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:684:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:685:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:719:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:720:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:721:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:724:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:757:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:760:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:763:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:766:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162258:769:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:252:    if (typeof row.progress_pct === "number") return true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:334:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:343:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:348:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:358:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:362:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:379:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:384:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:399:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:427:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:429:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:430:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:435:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:442:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:444:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:449:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:461:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:463:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:464:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:498:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:574:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:579:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:662:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:696:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:777:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:793:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:794:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:795:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:811:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:827:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:860:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:885:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:891:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:915:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:916:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:950:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:951:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:952:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:953:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:954:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:957:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:993:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:996:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:999:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:1002:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hide_fake_observed_groups_20260402_202451:1005:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:706:      const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:709:        donutsOnly: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:725:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:806:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:826:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:827:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:828:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:844:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:860:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:893:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:918:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:924:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:948:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:949:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:983:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:984:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:985:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:986:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:987:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:990:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:1026:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:1029:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:1032:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:1035:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.stage_rollup_ui_fix_v2_20260403_193329:1038:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.universal_donut_standard_20260403_035544:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:505:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:506:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:511:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:518:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:520:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:525:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:537:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:539:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:540:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:574:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:741:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:759:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:770:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:771:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:782:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:790:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:873:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:896:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:897:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:898:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:914:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:931:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:964:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:989:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:995:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1019:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1020:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1054:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1055:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1056:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1057:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1058:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1061:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1097:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1100:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1103:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1106:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_runtime_finish_20260405_162656:1109:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:469:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:470:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:471:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:487:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:504:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:505:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:506:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:509:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:538:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:541:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:544:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:547:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164005:550:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_parser_runtime_swap_20260405_151353:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:19:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:20:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:24:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:27:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:219:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:228:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:233:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:243:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:247:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:264:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:269:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:284:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:314:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:381:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:386:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:423:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:453:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:505:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:506:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:507:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:523:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:539:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:572:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:597:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:603:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:627:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:628:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:662:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:663:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:664:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:667:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:697:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:700:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:703:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:706:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_140348:709:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:310:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:319:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:324:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:334:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:338:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:355:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:360:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:375:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:403:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:405:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:406:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:411:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:418:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:420:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:425:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:437:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:439:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:440:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:474:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:552:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:557:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:640:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:674:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:755:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:775:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:776:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:777:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:793:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:809:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:842:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:867:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:873:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:897:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:898:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:932:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:933:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:934:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:935:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:936:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:939:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:975:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:978:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:981:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:984:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step1_semantic_runtime_20260403_172002:987:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:535:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:536:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:537:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:540:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:569:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:572:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:575:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:578:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.smoketest.20260326_100319.bak:581:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:225:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:234:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:239:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:249:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:253:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:270:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:275:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:290:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:320:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:391:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:396:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:420:        : donutMarkup({ total: total, PASS: mapped, FAIL: 0, MISSING: total - mapped }, "canon coverage");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:476:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:510:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:591:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:608:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:609:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:610:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:626:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:642:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:675:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:700:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:706:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:730:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:731:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:765:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:766:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:767:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:770:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:804:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:807:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:810:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:813:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_173238:816:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:535:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:536:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:537:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:540:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:569:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:572:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:575:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:578:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.selectstage_linefix.20260326_102814.bak:581:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:17:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:26:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:30:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:34:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:37:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:38:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:42:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:45:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:154:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:206:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:207:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:213:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:214:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:241:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:242:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:257:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:374:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:383:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:388:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:398:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:402:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:419:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:424:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:439:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:465:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:466:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:471:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:478:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:480:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:485:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:497:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:499:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:500:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:534:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:542:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:610:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:615:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:700:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:718:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:729:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:730:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:741:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:749:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:832:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:855:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:856:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:857:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:873:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:894:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:927:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:952:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:958:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:982:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:983:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1017:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1018:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1019:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1020:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1021:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1024:          getJson("panel_runtime_bridge.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1062:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1065:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1068:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1071:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_overlay_safe_20260404_191532:1074:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:418:      : donutMarkup(opCounts, "operational stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:469:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:470:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:471:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:487:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:503:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:534:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:535:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:536:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:539:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:568:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:571:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:574:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:577:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_160514:580:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:196:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:197:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:198:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:214:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:231:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:232:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:233:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:236:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:268:          String(bridgeMeta.bridge_mode || "") === "control_plane_to_panel_push_snapshot" &&
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:290:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:293:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:296:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:299:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_165558:302:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:366:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:368:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:369:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:374:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:381:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:383:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:388:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:400:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:402:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:403:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:437:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:515:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:520:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:603:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:637:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:718:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:735:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:736:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:737:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:753:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:769:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:802:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:827:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:833:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:857:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:858:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:892:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:893:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:894:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:895:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:896:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:899:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:935:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:938:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:941:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:944:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix_20260403_031537:947:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1103:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1106:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1109:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1112:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.safe_nav_replace_20260407_220532:1115:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:143:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:195:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:196:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:202:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:203:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:248:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:249:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:263:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:327:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:328:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:433:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:442:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:447:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:457:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:461:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:478:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:483:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:498:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:523:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:524:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:529:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:536:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:538:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:543:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:555:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:557:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:558:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:592:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:669:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:674:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:746:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:764:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:775:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:776:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:787:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:795:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:879:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:902:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:903:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:904:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:920:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:934:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:943:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:976:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1001:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1007:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1031:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1032:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1066:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1067:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1068:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1069:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1070:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1072:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1108:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1111:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1114:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1117:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_step1_fix_20260407_111621:1120:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:907:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:940:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:965:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:971:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:995:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:996:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1030:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1031:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1032:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1033:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1034:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1037:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1073:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1076:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1079:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1082:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.runtime_dedup_helper_20260405_161625:1085:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:480:      const card = node.closest(".panel-card, .card, .workspace-card, section, article, div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:481:      if (card && !card.dataset.canonCoverageRemoved) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:482:        card.dataset.canonCoverageRemoved = "true";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:483:        card.setAttribute("hidden", "hidden");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:484:        card.hidden = true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:521:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:555:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:636:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:653:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:654:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:655:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:671:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:687:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:720:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:745:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:751:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:775:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:776:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:810:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:811:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:812:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:813:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:814:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:817:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:853:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:856:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:859:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:862:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_empty_canon_card_20260331_220850:865:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:441:        '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:446:        '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:545:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:547:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:557:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:588:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:665:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:670:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:755:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:773:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:784:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:785:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:796:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:804:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:888:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:911:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:912:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:913:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:929:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:943:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:952:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:985:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1010:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1016:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1040:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1041:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1075:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1076:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1077:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1078:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1079:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1082:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1118:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1121:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1124:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1127:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_donut_itemruntime_only_20260406_184713:1130:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:271:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:353:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:358:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:395:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:425:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:477:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:478:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:479:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:495:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:511:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:544:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:569:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:575:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:599:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:600:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:634:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:635:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:636:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:639:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:668:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:671:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:674:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:677:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_smoke_sync.20260326_124728.bak:680:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:392:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:401:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:406:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:416:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:420:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:437:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:457:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:483:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:484:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:489:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:496:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:498:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:503:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:515:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:517:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:518:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:552:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:560:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:628:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:633:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:718:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:736:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:747:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:748:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:759:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:767:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:850:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:873:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:874:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:875:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:891:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:942:      '<span class="pill">progress ' + (row.progress_pct ?? "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:978:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1003:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1009:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1033:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1034:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1068:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1069:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1070:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1071:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1072:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1075:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1111:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1114:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1117:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1120:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.nav_family_parity_20260405_144116:1123:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_layout_20260325_190940.bak:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1007:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1043:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1046:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1049:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1052:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.propagate_fail_20260404_191940:1055:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:347:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:352:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:390:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:420:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:472:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:473:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:474:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:490:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:506:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:537:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:538:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:539:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:542:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:571:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:574:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:577:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:580:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.restore_by_line.20260326_095440.bak:583:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_174514:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:273:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:282:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:287:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:297:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:301:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:318:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:323:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:338:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:368:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:397:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:457:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:462:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:545:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:579:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:660:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:677:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:678:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:679:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:695:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:711:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:744:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:769:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:775:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:799:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:800:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:834:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:835:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:836:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:837:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:838:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:841:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:877:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:880:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:883:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:886:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.security_runtime_render_20260402_133035:889:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:19:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:22:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:23:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:27:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:30:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:222:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:231:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:236:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:246:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:250:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:267:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:272:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:287:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:317:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:384:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:389:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:426:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:460:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:541:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:558:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:559:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:560:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:576:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:592:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:625:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:650:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:656:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:680:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:681:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:715:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:716:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:717:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:720:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:753:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:756:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:759:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:762:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_161202:765:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:196:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:197:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:198:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:214:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:231:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:232:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:233:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:236:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:265:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:268:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:271:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:274:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_164655:277:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:389:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:419:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:471:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:472:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:473:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:489:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:505:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:536:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:537:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:538:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:541:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:570:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:573:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:576:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:579:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.pre_restore.20260325_172519:582:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:128:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:137:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:142:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:152:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:156:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:173:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:178:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:187:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:267:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:272:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:310:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:338:      ? donutMarkup(counts, "stage completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:388:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:389:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:390:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:408:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:424:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:444:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:445:        getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:446:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:473:        openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-092854:476:        openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:347:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:352:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:390:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:420:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:472:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:473:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:474:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:490:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:506:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:537:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:538:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:539:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:542:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:571:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:574:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:577:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:580:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260326_093750:583:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:205:        || String((row && row.subcategory) || "").trim() === "container_runtime"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:249:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:250:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:264:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:328:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:329:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:434:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:443:        '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:448:        '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:458:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:462:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:479:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:484:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:499:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:516:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:517:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:522:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:529:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:531:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:536:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:547:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:549:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:559:            els.projectDonut.innerHTML = donutMarkup(parts, "project completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:590:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:667:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:672:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:757:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:775:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:786:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:787:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:798:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:806:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:890:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:913:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:914:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:915:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:931:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:945:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:954:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:987:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1012:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1018:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1042:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1043:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1077:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1078:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1079:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1080:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1081:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1084:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1120:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1123:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1126:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1129:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_grouping_ui_20260406_191604:1132:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:362:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:371:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:376:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:386:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:390:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:407:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:412:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:427:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:530:        const observedRuntimeCount = runtimeRows(stageKey, { cardsOnly: true }).length;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:598:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:603:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:706:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:717:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:718:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:729:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:737:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:820:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:843:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:844:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:845:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:861:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:877:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:910:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:935:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:941:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:965:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:966:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1000:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1001:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1002:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1003:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1004:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1007:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1043:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1046:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1049:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1052:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.inject_fail_runtime_20260404_192709:1055:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:245:    const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:358:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:367:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:372:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:382:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:386:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:403:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:408:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:423:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:451:      const donutCounts = projectCounts;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:453:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:454:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:459:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:466:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:468:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:473:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:485:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:487:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:488:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:522:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:600:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:605:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:688:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:722:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:803:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:823:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:824:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:825:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:841:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:857:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:890:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:915:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:921:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:945:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:946:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:980:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:981:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:982:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:983:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:984:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:987:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:1023:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:1026:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:1029:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:1032:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.step2_observed_counts_fix_20260403_172722:1035:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:229:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:230:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:244:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:308:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:309:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:414:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:423:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:428:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:438:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:442:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:459:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:464:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:479:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:505:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:506:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:511:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:518:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:520:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:525:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:537:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:539:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:540:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:574:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:651:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:656:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:741:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:759:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:770:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:771:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:782:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:790:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:873:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:896:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:897:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:898:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:914:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:931:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:964:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:989:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:995:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1019:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1020:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1054:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1055:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1056:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1057:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1058:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1061:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1097:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1100:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1103:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1106:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.renderrows_line_swap_20260405_162814:1109:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:5:    title: document.getElementById("panel-title"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:6:    subtitle: document.getElementById("panel-subtitle"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:44:  function addPill(container, label, cls) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:48:    container.appendChild(span);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:99:        alert(`${item.label}\nSection: ${item.target_section}\nCards: ${(item.primary_card_ids || []).join(", ")}`);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:135:        getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260323-104050:136:        getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:21:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:24:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:25:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:29:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:32:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:224:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:233:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:238:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:248:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:252:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:269:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:274:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:289:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:319:        ? donutMarkup(projectCounts, "project completion")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:390:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:395:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:417:        : donutMarkup({ total: total, PASS: mapped, FAIL: 0, MISSING: total - mapped }, "canon coverage");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:453:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:487:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:568:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:585:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:586:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:587:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:603:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:619:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:652:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:677:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:683:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:707:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:708:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:742:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:743:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:744:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:747:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:781:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:784:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:787:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:790:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_163830:793:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:537:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:562:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:568:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:592:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:593:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:608:        if (els.drawerLabel) els.drawerLabel.textContent = "smoke_test";
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:627:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:628:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:629:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:632:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:661:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:664:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:667:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:670:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.viewer_fix.20260326_124117.bak:673:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:142:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:194:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:195:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:201:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:202:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:247:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:248:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:262:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:326:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:327:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:432:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:441:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:446:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:456:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:460:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:477:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:482:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:497:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:514:        const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:515:          ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:520:          getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:527:                global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:529:                  progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:534:                  reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:546:            typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:548:            const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:549:            els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:583:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:660:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:665:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:750:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:768:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:779:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:780:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:791:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:799:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:883:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:906:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:907:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:908:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:924:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:938:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:947:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:980:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1005:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1011:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1035:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1036:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1070:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1071:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1072:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1073:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1074:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1077:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1113:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1116:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1119:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1122:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_project_completion_missing_gate_20260406_115455:1125:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:13:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:18:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:19:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:23:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:26:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:206:  function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:215:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:220:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:230:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:234:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:251:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:256:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:265:    els.drawerLabel.textContent = label;
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:346:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:351:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:388:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:418:        : donutMarkup(opCounts, "stage completion");
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:470:      const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:471:      card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:472:      card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:488:      els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:504:        '<span class="pill">card ' + (row.card_id || "—") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:537:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:562:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:568:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:592:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:593:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:608:        if (els.drawerLabel) els.drawerLabel.textContent = "smoke_test";
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:627:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:628:          getJson("panel_data_contract.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:629:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:632:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:661:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:664:          openJson("panel_data_contract.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:667:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:670:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.tabs_smoke_rerun.20260326_123348.bak:673:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:5:    projectDonut: document.getElementById("project-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:14:    selectedStageDonut: document.getElementById("selected-stage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:18:    canonCoverageDonut: document.getElementById("canon-coverage-donut"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:22:    authoritySourcesCard: document.getElementById("authority-sources-card"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:25:    hostRuntimeGrid: document.getElementById("host-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:26:    dockerRuntimeGrid: document.getElementById("docker-runtime-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:30:    subcategoryGrid: document.getElementById("subcategory-grid"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:33:    drawerLabel: document.getElementById("drawer-label"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:147:          phase_origin: [],
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:199:    if (typeof (row && row.display_in_cards) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:200:      return row.display_in_cards === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:206:    if (typeof (row && row.display_in_donuts) === "boolean") {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:207:      return row.display_in_donuts === true;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:252:      if (opts.cardsOnly && !runtimeRowVisibleInCards(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:253:      if (opts.donutsOnly && !runtimeRowVisibleInDonuts(row)) return false;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:267:      const directRows = runtimeRows(stageKey, { cardsOnly: true }).filter(function (row) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:331:          display_in_cards: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:332:          display_in_donuts: true,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:437:function donutMarkup(counts, label) {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:446:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:451:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:461:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:465:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:482:      '<div class="donut">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:487:      '<div class="donut-center">',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:502:      if (els.drawerLabel) els.drawerLabel.textContent = safeLabel;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:527:      const projectProgress = state.projectProgress && state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:528:        ? state.projectProgress.global_project_progress
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:533:        getJson("project_progress.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:540:              global_project_progress: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:542:                progress_pct: null,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:547:                reason_if_missing: "project_progress.json could not be loaded",
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:559:          typeof projectProgress.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:561:          const pct = Math.max(0, Math.min(100, Math.round(projectProgress.progress_pct)));
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:562:          els.projectDonut.innerHTML = donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:596:        '<small>L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '</small>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:673:    const containers = Array.isArray(runtime.containers) ? runtime.containers : [];
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:678:      metricBox("Containers", String(containers.length), "observable list"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:763:        '<span class="pill">' + valueOrDash(item.progress_pct, "%") + '</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:781:        const runtimeCandidates = runtimeRows(normalizedStageKey, { cardsOnly: true });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:792:          typeof stageRuntime.progress_pct === "number"
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:793:        ) ? Math.max(0, Math.min(100, Math.round(stageRuntime.progress_pct))) : null;
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:804:        els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts.";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:812:          : donutMarkup(
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:896:        '<span class="doc-link-meta">' + (doc.phase || "phase-unmapped") + '</span>'
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:919:        const card = document.createElement("div");
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:920:        card.className = "subcard";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:921:        card.innerHTML = [
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:937:        els.subcategoryGrid.appendChild(card);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:951:        const progressPct = row && row.progress_pct != null ? row.progress_pct : "—";
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:960:          '<span class="pill">progress ' + progressPct + '%</span>',
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:993:        const viewerLabel = (els.drawerLabel && els.drawerLabel.textContent || "").trim();
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1018:          selected_stage_cards: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1024:          sidebar: {
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1048:            selected_stage_cards_populated: snap.selected_stage_cards.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1049:            sidebar_has_real_stages: snap.sidebar.ok,
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1083:          getJson("panel_manifest.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1084:          getJson("contracts/panel_data_contract_v2.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1085:          getJson("panel_content_index.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1086:          getJson("panel_navigation_spec.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1087:          getJson("panel_canonical_tree.json"),
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1090:          getJson("panel_runtime_bridge.json")
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1126:          openJson("panel_manifest.json", state.manifest);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1129:          openJson("contracts/panel_data_contract_v2.json", state.dataContract);
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1132:          openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1135:          openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/assets/js/panel.js.bak.remove_legacy_matrix_boot_20260407_103712:1138:          openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" });
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/subcategory_pipelines.json:74:        "containers",
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/subcategory_pipelines.json:299:    "operator_panel": {
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/subcategory_pipelines.json:301:        "dashboard",
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/subcategory_pipelines.json:303:        "evidence_drawer",
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/subcategory_pipelines.json:336:      "map security domains to cards"
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:3:    "canon_id": "devon-panel-content-index",
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:14:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:23:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:26:        "card-contracts"
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:34:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:43:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:53:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:62:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:71:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:80:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:90:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:105:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:121:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:131:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:142:      "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:143:        "operator-panel"
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:154:    "primary_card_ids": [
/home/yeff/public_html/devon/panel/_backup_security_fix_20260327_095359/panel_content_index.json:162:    "card_ids": [
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:7:  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:9:  <link rel="stylesheet" href="assets/css/panel.runtime.fix.20260408_1.css?v=4" />
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:13:    <aside class="op-sidebar">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:21:        <div id="project-donut" class="sidebar-donut-wrap"></div>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:39:          <h1 id="hero-title">Devon runtime panel</h1>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:52:      <section class="layer-grid">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:53:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:54:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:55:            <span class="card-title">Canonical Layer</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:60:            <li>Architecture and cards</li>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:66:        <article class="card layer-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:67:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:68:            <span class="card-title">Operational Layer</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:73:            <li>Docker and containers</li>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:80:      <section class="top-grid">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:81:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:82:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:83:            <span class="card-title">Selected Stage</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:90:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:91:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:92:            <span class="card-title">Operational Stage Completion</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:95:          <div id="selected-stage-donut" class="donut-wrap"></div>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:98:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:99:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:100:            <span class="card-title">Operational Pipeline</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:106:        <article class="card stat-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:107:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:108:            <span class="card-title">Canonical Coverage</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:111:          <div id="canon-coverage-donut" class="donut-wrap"></div>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:115:        <article id="authority-sources-card" class="card stat-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:116:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:117:            <span class="card-title">Authority Sources</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:125:      <section class="runtime-grid">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:126:          <article class="card runtime-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:127:            <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:128:              <span class="card-title">Host Runtime Overview</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:131:            <div id="host-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:134:          <article class="card runtime-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:135:            <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:136:              <span class="card-title">Docker Runtime Overview</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:139:            <div id="docker-runtime-grid" class="mini-metric-grid"></div>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:144:          <article class="card pipeline-section-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:145:            <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:146:              <span class="card-title">Pipeline Runtime Board</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:153:      <section class="workspace-grid">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:154:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:155:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:156:            <span class="card-title">Observed Technologies</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:159:          <div id="subcategory-grid" class="subcategory-grid"></div>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:162:        <article class="card workspace-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:163:          <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:164:            <span class="card-title">Canonical Evidence Rows</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:174:    <aside id="data-viewer-modal" class="op-drawer">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:175:      <section class="drawer-card">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:176:        <div class="card-top">
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:177:          <span class="card-title">Canon / Data Viewer</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:178:          <span id="drawer-label" class="badge badge-violet">secondary</span>
/home/yeff/public_html/devon/panel/index.php.bak.refactor_ui_20260409_081202:185:  <script src="assets/js/panel.runtime.fix.20260408_1.js?v=4"></script>
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/runtime_status.json:3:  "source_contract": "devon-panel-pipeline-runtime",
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/runtime_status.json:12:      "progress_pct": 100,
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/runtime_status.json:25:      "subcategory": "container_runtime",
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/runtime_status.json:28:      "progress_pct": 0,
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/runtime_status.json:42:    "RUNNING": "observable execution is in progress",
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/host_runtime.json:3:  "source_contract": "devon-panel-host-runtime",
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/docker_runtime.json:3:  "source_contract": "devon-panel-docker-runtime",
/home/yeff/public_html/devon/panel/_backup_runtime_20260325_135242/docker_runtime.json:20:    "containers": [],
/home/yeff/public_html/devon/panel/index.php:7:  <meta name="viewport" content="width=device-width, initial-scale=1.0">
/home/yeff/public_html/devon/panel/index.php:11:  <link rel="stylesheet" href="assets/css/panel.css?v=20260409">
/home/yeff/public_html/devon/panel/index.php:34:    <button class="ib" data-view="data/panel_manifest.json" title="Manifest">
/home/yeff/public_html/devon/panel/index.php:38:    <button class="ib" data-view="data/panel_data_contract.json" title="Data Contract">
/home/yeff/public_html/devon/panel/index.php:65:  <div id="dp-drawer">
/home/yeff/public_html/devon/panel/index.php:66:    <div id="dp-drawer-header">
/home/yeff/public_html/devon/panel/index.php:67:      <span id="dp-drawer-title">Data Viewer</span>
/home/yeff/public_html/devon/panel/index.php:68:      <button id="dp-drawer-close">✕</button>
/home/yeff/public_html/devon/panel/index.php:70:    <pre id="dp-drawer-pre">Select a data source.</pre>
/home/yeff/public_html/devon/panel/index.php:74:<script src="assets/js/panel.js?v=20260409"></script>
