@thebackstoryis/engineering-with-ai 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/Docs/README.md +50 -0
  2. package/Docs/adoption/consultancy-and-multi-project-rollout.md +135 -0
  3. package/Docs/adoption/non-technical-team-guide.md +126 -0
  4. package/Docs/archaeology-technology-and-hosting-discovery.md +212 -0
  5. package/Docs/blast-radius-and-impact-routing-guide.md +325 -0
  6. package/Docs/blueprints/internal-blueprint-catalogue.md +146 -0
  7. package/Docs/blueprints/maintaining-organisation-blueprints.md +154 -0
  8. package/Docs/blueprints/validation-and-troubleshooting.md +168 -0
  9. package/Docs/cli-reference.md +113 -0
  10. package/Docs/completed-phase-evidence-amendments.md +74 -0
  11. package/Docs/consultancy-network-rollout-control-plane-guide.md +202 -0
  12. package/Docs/context-aware-delivery-companion-guide.md +198 -0
  13. package/Docs/context-aware-delivery-companion-user-guide.md +184 -0
  14. package/Docs/context-management-and-token-efficiency.md +113 -0
  15. package/Docs/design-systems/design-system-implementation-guide.md +85 -0
  16. package/Docs/design-systems/design-system-pack-authoring-guide.md +95 -0
  17. package/Docs/design-systems/design-system-review-guide.md +51 -0
  18. package/Docs/design-systems/design-system-user-guide.md +96 -0
  19. package/Docs/design-systems/product-owner-guide.md +49 -0
  20. package/Docs/designing-organisation-blueprint-packs.md +384 -0
  21. package/Docs/developer-delivery-guide.md +224 -0
  22. package/Docs/error-reporting-guide.md +110 -0
  23. package/Docs/error-reporting-provider-guide.md +49 -0
  24. package/Docs/examples/error-report-adapter.md +70 -0
  25. package/Docs/examples/meeting-review.md +76 -0
  26. package/Docs/examples/minimal-design-system.md +67 -0
  27. package/Docs/examples/prototype-review-inputs.md +175 -0
  28. package/Docs/examples/reproducible-archaeology-depth-example.md +144 -0
  29. package/Docs/examples/test-scenario-input.md +68 -0
  30. package/Docs/examples/worked-examples.md +147 -0
  31. package/Docs/existing-project-onboarding-guide.md +214 -0
  32. package/Docs/explanation/core-concepts.md +26 -0
  33. package/Docs/explanation/delivery-workflow.md +48 -0
  34. package/Docs/governance/governance-team-guide.md +139 -0
  35. package/Docs/governed-starter-project-materialisation-guide.md +284 -0
  36. package/Docs/guide-catalogue.md +117 -0
  37. package/Docs/guided-discovery-facilitator-guide.md +172 -0
  38. package/Docs/guided-intent-workspace-guide.md +109 -0
  39. package/Docs/guided-phase-evidence-drafting-guide.md +119 -0
  40. package/Docs/human-approval-and-assurance-guide.md +146 -0
  41. package/Docs/knowledge-proposals-implementer-guide.md +106 -0
  42. package/Docs/knowledge-proposals-user-guide.md +247 -0
  43. package/Docs/maintainers/context-benchmarks.md +29 -0
  44. package/Docs/maintainers/contributing.md +58 -0
  45. package/Docs/maintainers/evidence-depth-acceptance.md +72 -0
  46. package/Docs/maintainers/verification-walkthroughs.md +104 -0
  47. package/Docs/meeting-evidence-implementer-guide.md +132 -0
  48. package/Docs/meeting-evidence-user-guide.md +200 -0
  49. package/Docs/operations/dashboard-and-delivery-state.md +153 -0
  50. package/Docs/operations/dashboard-configuration.md +87 -0
  51. package/Docs/operations/installation-updating-and-entitlements.md +135 -0
  52. package/Docs/operations/premium-personas-setup.md +76 -0
  53. package/Docs/operations/troubleshooting-and-recovery.md +205 -0
  54. package/Docs/organisation-rollout-guide.md +142 -0
  55. package/Docs/persona-entitlement-provider-guide.md +199 -0
  56. package/Docs/persona-guided-prototype-iteration.md +129 -0
  57. package/Docs/personas/organisation-specific-personas.md +103 -0
  58. package/Docs/personas/persona-authoring-cookbook.md +176 -0
  59. package/Docs/personas/persona-engagement-ui.md +133 -0
  60. package/Docs/personas/persona-governance.md +118 -0
  61. package/Docs/platform-export-analysis-guide.md +336 -0
  62. package/Docs/policies/governance-owner-guide.md +36 -0
  63. package/Docs/policies/implementation-guide.md +42 -0
  64. package/Docs/policies/organisation-policy-design-gates.md +58 -0
  65. package/Docs/policies/policy-pack-authoring-guide.md +108 -0
  66. package/Docs/policies/product-owner-guide.md +43 -0
  67. package/Docs/policies/technical-owner-guide.md +37 -0
  68. package/Docs/product-owner-guide.md +327 -0
  69. package/Docs/project-portfolio-orchestration-guide.md +199 -0
  70. package/Docs/quality/manual-qa-and-acceptance.md +162 -0
  71. package/Docs/quality/persona-driven-test-scenarios.md +172 -0
  72. package/Docs/quality/reproducible-archaeology-depth-review-checklist.md +89 -0
  73. package/Docs/reference/capabilities-and-project-layout.md +678 -0
  74. package/Docs/reference/cli-and-configuration.md +398 -0
  75. package/Docs/reference/contributions-api.md +23 -0
  76. package/Docs/reference/security-adapter-authoring.md +81 -0
  77. package/Docs/reference/starter-adapter-authoring.md +74 -0
  78. package/Docs/repository-source-map-guide.md +381 -0
  79. package/Docs/reproducible-archaeology-and-discovery-depth.md +292 -0
  80. package/Docs/screen-prototype-creation-guide.md +324 -0
  81. package/Docs/security-validation-guide.md +353 -0
  82. package/Docs/solution-readiness-review-guide.md +123 -0
  83. package/Docs/standards/project-standards-authoring.md +157 -0
  84. package/Docs/team-hub-guide.md +162 -0
  85. package/Docs/team-hub-resource-registry-guide.md +167 -0
  86. package/Docs/tutorials/first-delivery.md +83 -0
  87. package/Docs/tutorials/first-session.md +62 -0
  88. package/Docs/using-lifecycle-hooks.md +381 -0
  89. package/Docs/working-with-personas.md +274 -0
  90. package/LICENSE +165 -0
  91. package/README.md +96 -0
  92. package/agents-src/claude/ewai-security-reviewer.md +15 -0
  93. package/bin/ewai +5 -0
  94. package/config/archaeology-record-families.yaml +59 -0
  95. package/config/delivery-artifacts.yaml +121 -0
  96. package/config/delivery-stages.yaml +77 -0
  97. package/config/design-system.schema.json +46 -0
  98. package/config/error-reporting.schema.json +79 -0
  99. package/config/evidence-depth.schema.json +53 -0
  100. package/config/intent.schema.json +90 -0
  101. package/config/knowledge-proposals-proposal.schema.json +34 -0
  102. package/config/lifecycle-event.schema.json +68 -0
  103. package/config/lifecycle-handler.schema.json +45 -0
  104. package/config/lifecycle-hook-ack.schema.json +19 -0
  105. package/config/meeting-evidence-candidate.schema.json +102 -0
  106. package/config/organisation-policy.schema.json +137 -0
  107. package/config/pack.schema.json +250 -0
  108. package/config/persona-pack.schema.json +21 -0
  109. package/config/persona.schema.json +17 -0
  110. package/config/policy-evaluation.schema.json +77 -0
  111. package/config/policy-facts.schema.json +140 -0
  112. package/config/portfolio.schema.json +68 -0
  113. package/config/project.schema.json +313 -0
  114. package/config/prototype-iteration.schema.json +128 -0
  115. package/config/rollout.schema.json +87 -0
  116. package/config/security-adapter.schema.json +31 -0
  117. package/config/security-scan-request.schema.json +64 -0
  118. package/config/security-scan-response.schema.json +52 -0
  119. package/config/security-validation-policy.schema.json +74 -0
  120. package/config/starter-source-acknowledgement.schema.json +13 -0
  121. package/config/starter-source-adapter.schema.json +38 -0
  122. package/config/starter-source-request.schema.json +61 -0
  123. package/package.json +77 -0
  124. package/packs/core/pack.yaml +7 -0
  125. package/packs/design-systems/default/experience-promise.md +9 -0
  126. package/packs/design-systems/default/intentional-review.md +10 -0
  127. package/packs/design-systems/default/interaction-and-entry.md +9 -0
  128. package/packs/design-systems/default/meaningful-content-and-states.md +9 -0
  129. package/packs/design-systems/default/pack.yaml +44 -0
  130. package/packs/design-systems/default/principles.md +10 -0
  131. package/packs/personas/core/pack.yaml +7 -0
  132. package/packs/personas/core/personas/archaeologist.md +37 -0
  133. package/packs/personas/core/personas/end-user.md +17 -0
  134. package/packs/personas/core/personas/maintainer.md +17 -0
  135. package/packs/personas/core/personas/operator.md +17 -0
  136. package/packs/personas/core/personas/specs-knowledge-curator.md +35 -0
  137. package/packs/technologies/laravel/pack.yaml +30 -0
  138. package/packs/technologies/laravel-nuxt/pack.yaml +30 -0
  139. package/packs/technologies/nuxt/pack.yaml +30 -0
  140. package/packs/technologies/power-platform/pack.yaml +31 -0
  141. package/packs/technologies/salesforce/pack.yaml +25 -0
  142. package/public/app.js +4896 -0
  143. package/public/apple-touch-icon.png +0 -0
  144. package/public/assets/backstory-icon.png +0 -0
  145. package/public/dashboard-navigation.js +98 -0
  146. package/public/favicon-16.png +0 -0
  147. package/public/favicon-32.png +0 -0
  148. package/public/favicon.ico +0 -0
  149. package/public/index.html +789 -0
  150. package/public/styles.css +2693 -0
  151. package/public/team-hub/app.js +202 -0
  152. package/public/team-hub/index.html +79 -0
  153. package/public/team-hub/styles.css +90 -0
  154. package/scripts/publication-check.mjs +140 -0
  155. package/scripts/setup.mjs +21 -0
  156. package/skills-src/ewai-archaeology/SKILL.md +334 -0
  157. package/skills-src/ewai-archaeology/agents/openai.yaml +4 -0
  158. package/skills-src/ewai-archaeology/references/archaeology-contract.md +201 -0
  159. package/skills-src/ewai-archaeology/references/lifecycle-reconstruction.md +177 -0
  160. package/skills-src/ewai-archaeology/references/maximum-detail-reconstruction.md +97 -0
  161. package/skills-src/ewai-archaeology/references/model-routing.md +26 -0
  162. package/skills-src/ewai-architecture/SKILL.md +108 -0
  163. package/skills-src/ewai-architecture/agents/openai.yaml +4 -0
  164. package/skills-src/ewai-architecture/references/architecture-contract.md +176 -0
  165. package/skills-src/ewai-context/SKILL.md +68 -0
  166. package/skills-src/ewai-context/agents/openai.yaml +4 -0
  167. package/skills-src/ewai-context-import/SKILL.md +118 -0
  168. package/skills-src/ewai-context-import/agents/openai.yaml +4 -0
  169. package/skills-src/ewai-context-import/references/context-import-contract.md +106 -0
  170. package/skills-src/ewai-dashboard-configuration/SKILL.md +20 -0
  171. package/skills-src/ewai-deliver/SKILL.md +122 -0
  172. package/skills-src/ewai-deliver/references/delivery-evidence.md +92 -0
  173. package/skills-src/ewai-deliver/references/phase-routing.md +31 -0
  174. package/skills-src/ewai-design-system-apply/SKILL.md +27 -0
  175. package/skills-src/ewai-design-system-apply/agents/openai.yaml +4 -0
  176. package/skills-src/ewai-design-system-apply/references/application-contract.md +36 -0
  177. package/skills-src/ewai-design-system-author/SKILL.md +28 -0
  178. package/skills-src/ewai-design-system-author/agents/openai.yaml +4 -0
  179. package/skills-src/ewai-design-system-author/references/authoring-contract.md +38 -0
  180. package/skills-src/ewai-design-system-review/SKILL.md +26 -0
  181. package/skills-src/ewai-design-system-review/agents/openai.yaml +4 -0
  182. package/skills-src/ewai-design-system-review/references/review-contract.md +40 -0
  183. package/skills-src/ewai-error-reporting/SKILL.md +46 -0
  184. package/skills-src/ewai-error-reporting/agents/openai.yaml +4 -0
  185. package/skills-src/ewai-error-reporting/references/provider-contract.md +74 -0
  186. package/skills-src/ewai-evidence-depth/SKILL.md +72 -0
  187. package/skills-src/ewai-evidence-depth/agents/openai.yaml +4 -0
  188. package/skills-src/ewai-evidence-depth/references/evidence-depth-contract.md +127 -0
  189. package/skills-src/ewai-intent/SKILL.md +68 -0
  190. package/skills-src/ewai-intent/agents/openai.yaml +4 -0
  191. package/skills-src/ewai-intent/references/intent-contract.md +42 -0
  192. package/skills-src/ewai-knowledge-proposals/SKILL.md +105 -0
  193. package/skills-src/ewai-knowledge-proposals/agents/openai.yaml +4 -0
  194. package/skills-src/ewai-knowledge-proposals/references/proposal-contract.md +59 -0
  195. package/skills-src/ewai-meeting-evidence/SKILL.md +106 -0
  196. package/skills-src/ewai-meeting-evidence/agents/openai.yaml +4 -0
  197. package/skills-src/ewai-meeting-evidence/references/candidate-contract.md +64 -0
  198. package/skills-src/ewai-organisation-policy/SKILL.md +62 -0
  199. package/skills-src/ewai-organisation-policy/agents/openai.yaml +4 -0
  200. package/skills-src/ewai-organisation-policy/references/policy-contract.md +94 -0
  201. package/skills-src/ewai-palace-housekeeping/SKILL.md +55 -0
  202. package/skills-src/ewai-palace-housekeeping/agents/openai.yaml +4 -0
  203. package/skills-src/ewai-persona-entitlement/SKILL.md +60 -0
  204. package/skills-src/ewai-persona-entitlement/agents/openai.yaml +4 -0
  205. package/skills-src/ewai-phase-evidence/SKILL.md +79 -0
  206. package/skills-src/ewai-phase-evidence/agents/openai.yaml +4 -0
  207. package/skills-src/ewai-pipeline/SKILL.md +130 -0
  208. package/skills-src/ewai-pipeline/agents/openai.yaml +4 -0
  209. package/skills-src/ewai-pipeline/references/cli.md +86 -0
  210. package/skills-src/ewai-pipeline/references/specs-contract.md +16 -0
  211. package/skills-src/ewai-portfolio/SKILL.md +70 -0
  212. package/skills-src/ewai-portfolio/agents/openai.yaml +4 -0
  213. package/skills-src/ewai-portfolio/references/portfolio-contract.md +67 -0
  214. package/skills-src/ewai-project-discovery/SKILL.md +95 -0
  215. package/skills-src/ewai-project-discovery/agents/openai.yaml +4 -0
  216. package/skills-src/ewai-project-discovery/references/discovery-contract.md +34 -0
  217. package/skills-src/ewai-prototype-iteration/SKILL.md +30 -0
  218. package/skills-src/ewai-prototype-iteration/agents/openai.yaml +4 -0
  219. package/skills-src/ewai-prototype-iteration/references/review-contract.md +49 -0
  220. package/skills-src/ewai-retro/SKILL.md +48 -0
  221. package/skills-src/ewai-retro/agents/openai.yaml +4 -0
  222. package/skills-src/ewai-retro/references/asset-routing.md +14 -0
  223. package/skills-src/ewai-rollout/SKILL.md +74 -0
  224. package/skills-src/ewai-rollout/agents/openai.yaml +4 -0
  225. package/skills-src/ewai-rollout/references/rollout-contract.md +74 -0
  226. package/skills-src/ewai-shape-intents/SKILL.md +84 -0
  227. package/skills-src/ewai-shape-intents/agents/openai.yaml +4 -0
  228. package/skills-src/ewai-shape-intents/references/intent-mapping-contract.md +109 -0
  229. package/skills-src/ewai-solution-readiness/SKILL.md +55 -0
  230. package/skills-src/ewai-solution-readiness/agents/openai.yaml +4 -0
  231. package/skills-src/ewai-standards-check/SKILL.md +93 -0
  232. package/skills-src/ewai-standards-check/agents/openai.yaml +4 -0
  233. package/skills-src/ewai-standards-check/references/report-contract.md +116 -0
  234. package/skills-src/ewai-test-scenarios/SKILL.md +94 -0
  235. package/skills-src/ewai-test-scenarios/agents/openai.yaml +4 -0
  236. package/skills-src/ewai-test-scenarios/references/scenario-contract.md +88 -0
  237. package/src/afk-worker.mjs +16 -0
  238. package/src/archaeology.mjs +1333 -0
  239. package/src/checkin.mjs +261 -0
  240. package/src/cli.mjs +2427 -0
  241. package/src/companion-guidance.mjs +257 -0
  242. package/src/companion-opening.mjs +62 -0
  243. package/src/companion.mjs +256 -0
  244. package/src/context.mjs +210 -0
  245. package/src/dashboard-preferences.mjs +80 -0
  246. package/src/delivery-artifacts.mjs +204 -0
  247. package/src/delivery-documents.mjs +248 -0
  248. package/src/delivery-gates.mjs +317 -0
  249. package/src/delivery.mjs +1433 -0
  250. package/src/design-system-application.mjs +291 -0
  251. package/src/design-system-authoring.mjs +101 -0
  252. package/src/design-systems.mjs +466 -0
  253. package/src/discovery.mjs +1314 -0
  254. package/src/error-reporting.mjs +323 -0
  255. package/src/evidence-depth.mjs +543 -0
  256. package/src/execution-state.mjs +243 -0
  257. package/src/install.mjs +166 -0
  258. package/src/intent-dependencies.mjs +117 -0
  259. package/src/intent-maps.mjs +402 -0
  260. package/src/intents.mjs +747 -0
  261. package/src/knowledge-proposals.mjs +717 -0
  262. package/src/launcher.mjs +51 -0
  263. package/src/meeting-evidence.mjs +703 -0
  264. package/src/network-rollout.mjs +386 -0
  265. package/src/organisation-blueprints.mjs +438 -0
  266. package/src/organisation-policies.mjs +448 -0
  267. package/src/packs.mjs +44 -0
  268. package/src/paths.mjs +62 -0
  269. package/src/persona-entitlements.mjs +438 -0
  270. package/src/persona-licence-config.mjs +98 -0
  271. package/src/persona-website-provider.mjs +134 -0
  272. package/src/persona-zip.mjs +87 -0
  273. package/src/personas.mjs +159 -0
  274. package/src/platform-metadata-analysis.mjs +314 -0
  275. package/src/policy-design-gates.mjs +623 -0
  276. package/src/policy-gate-integration.mjs +318 -0
  277. package/src/portfolio.mjs +509 -0
  278. package/src/power-platform-source-map.mjs +190 -0
  279. package/src/project.mjs +449 -0
  280. package/src/prototype-iterations.mjs +730 -0
  281. package/src/repository-source-map.mjs +603 -0
  282. package/src/runtime/afk-conductor.mjs +973 -0
  283. package/src/runtime/context-assembly.mjs +457 -0
  284. package/src/runtime/context-benchmarks.mjs +115 -0
  285. package/src/runtime/dashboard-actions.mjs +109 -0
  286. package/src/runtime/dashboard-handoffs.mjs +149 -0
  287. package/src/runtime/dashboard-server.mjs +1272 -0
  288. package/src/runtime/dashboard.mjs +197 -0
  289. package/src/runtime/database.mjs +789 -0
  290. package/src/runtime/error-reporting.mjs +581 -0
  291. package/src/runtime/evidence-depth-workspace.mjs +412 -0
  292. package/src/runtime/execution-leases.mjs +299 -0
  293. package/src/runtime/guided-discovery.mjs +350 -0
  294. package/src/runtime/guided-intents.mjs +517 -0
  295. package/src/runtime/impact-analysis.mjs +535 -0
  296. package/src/runtime/intents.mjs +222 -0
  297. package/src/runtime/knowledge.mjs +86 -0
  298. package/src/runtime/lifecycle-hooks.mjs +1239 -0
  299. package/src/runtime/mcp-config.mjs +110 -0
  300. package/src/runtime/mcp-server.mjs +1885 -0
  301. package/src/runtime/palace.mjs +362 -0
  302. package/src/runtime/paths.mjs +58 -0
  303. package/src/runtime/persona-engagement.mjs +255 -0
  304. package/src/runtime/phase-contributions.mjs +594 -0
  305. package/src/runtime/policy-workspace.mjs +170 -0
  306. package/src/runtime/prototype-iterations.mjs +235 -0
  307. package/src/runtime/provider-adapters.mjs +163 -0
  308. package/src/runtime/repository-index.mjs +838 -0
  309. package/src/runtime/runs.mjs +185 -0
  310. package/src/runtime/security-validation.mjs +1230 -0
  311. package/src/runtime/starter-materialisation.mjs +1155 -0
  312. package/src/runtime/team-hub-client.mjs +479 -0
  313. package/src/runtime/team-hub-database.mjs +288 -0
  314. package/src/runtime/team-hub-server.mjs +191 -0
  315. package/src/runtime/team-hub.mjs +110 -0
  316. package/src/runtime/tree-sitter-index.mjs +390 -0
  317. package/src/runtime/version.mjs +1 -0
  318. package/src/runtime/work.mjs +633 -0
  319. package/src/salesforce-source-map.mjs +212 -0
  320. package/src/security-validation-config.mjs +224 -0
  321. package/src/solution-readiness.mjs +620 -0
  322. package/src/starter-materialisation-contract.mjs +407 -0
  323. package/src/task-graph.mjs +544 -0
  324. package/src/team-hub-resources.mjs +239 -0
  325. package/src/team-hub.mjs +242 -0
  326. package/src/test-scenarios.mjs +622 -0
  327. package/src/validation-config.mjs +289 -0
  328. package/templates/SPECS/1.Scope/personas/registry.yaml +12 -0
  329. package/templates/SPECS/5.Strategy/patterns/context-packet.md +119 -0
  330. package/templates/SPECS/6.Build/_tracker-template.md +16 -0
  331. package/templates/SPECS/pipeline.yaml +62 -0
  332. package/templates/discovery-answers.yaml +86 -0
  333. package/templates/intent-body.md +21 -0
  334. package/tests/fixtures/context-benchmarks.json +9 -0
@@ -0,0 +1,2693 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --ink: #17211c;
4
+ --muted: #65716b;
5
+ --canvas: #edf1f2;
6
+ --surface: #ffffff;
7
+ --surface-2: #f7f9f9;
8
+ --line: #d7dede;
9
+ --line-strong: #bdc8c5;
10
+ --green: #176b4d;
11
+ --green-soft: #dff1e9;
12
+ --blue: #2e648f;
13
+ --blue-soft: #e3edf6;
14
+ --amber: #a05e12;
15
+ --amber-soft: #fff0d8;
16
+ --red: #a63838;
17
+ --red-soft: #f9e3e3;
18
+ --violet: #76529b;
19
+ --shadow: 0 12px 32px rgb(23 33 28 / 12%);
20
+ }
21
+
22
+ * { box-sizing: border-box; }
23
+ html, body { width: 100%; height: 100%; }
24
+ body {
25
+ margin: 0;
26
+ overflow: hidden;
27
+ background: var(--canvas);
28
+ color: var(--ink);
29
+ font-family: Inter, Aptos, "Segoe UI", Helvetica, Arial, sans-serif;
30
+ font-size: 14px;
31
+ -webkit-font-smoothing: antialiased;
32
+ }
33
+ button, input, select, textarea { font: inherit; }
34
+ button { color: inherit; }
35
+ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
36
+ .eyebrow { margin: 0 0 4px; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
37
+
38
+ .app-shell { display: grid; grid-template-rows: 64px minmax(0, 1fr); width: 100vw; height: 100dvh; }
39
+ .app-bar {
40
+ z-index: 10;
41
+ display: grid;
42
+ grid-template-columns: minmax(210px, .7fr) minmax(0, 2fr) minmax(300px, 1fr);
43
+ align-items: center;
44
+ gap: 12px;
45
+ padding: 0 18px;
46
+ background: var(--surface);
47
+ border-bottom: 1px solid var(--line);
48
+ }
49
+ .brand-block { display: flex; align-items: center; gap: 11px; min-width: 0; }
50
+ .brand-mark { width: 30px; height: 36px; object-fit: contain; }
51
+ .brand-block h1 { margin: 0; overflow: hidden; font-size: 15px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
52
+ .brand-block p { margin: 2px 0 0; color: var(--muted); font-size: 11px; }
53
+ .runtime-warning { color: var(--amber); font-weight: 700; }
54
+ .view-switcher { display: flex; align-items: center; gap: 3px; min-width: 0; overflow-x: auto; padding: 3px; background: var(--canvas); border-radius: 7px; }
55
+ .view-switcher button, .view-switcher a { display: flex; align-items: center; gap: 7px; flex: 0 0 auto; min-height: 34px; padding: 0 10px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); cursor: pointer; font-size: 12px; font-weight: 700; white-space: nowrap; }
56
+ .view-switcher a { color: var(--green); text-decoration: none; }
57
+ .view-switcher a:hover { background: var(--green-soft); }
58
+ .view-switcher a:focus-visible, .premium-card:focus-visible { outline: 2px solid var(--green); outline-offset: -2px; }
59
+ .premium-setup-form header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
60
+ .premium-setup-form h2 { margin: 0 0 10px; }
61
+ .premium-setup-form header p, .premium-setup-form .action-body p { color: var(--muted); line-height: 1.5; }
62
+ .premium-setup-form .action-body { display: grid; gap: 10px; }
63
+ .premium-setup-form input { width: 100%; min-height: 42px; border: 1px solid var(--line-strong); border-radius: 5px; padding: 10px; }
64
+ .premium-setup-form input:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
65
+ .premium-setup-form footer { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px; }
66
+ #premiumSetupStatus { color: var(--ink); }
67
+ .view-switcher button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgb(23 33 28 / 10%); }
68
+ .live-dot { width: 7px; height: 7px; border-radius: 50%; background: #29a36a; box-shadow: 0 0 0 3px rgb(41 163 106 / 14%); }
69
+ .nav-count { min-width: 18px; padding: 1px 5px; border-radius: 9px; background: var(--line); font-size: 10px; text-align: center; }
70
+ .app-actions { display: flex; justify-content: flex-end; gap: 8px; }
71
+ .global-search input { width: min(270px, 24vw); height: 36px; padding: 0 12px 0 34px; border: 1px solid var(--line); border-radius: 6px; outline: none; background: var(--surface-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%2365716b' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 11px center; }
72
+ .global-search input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgb(23 107 77 / 10%); }
73
+ .global-search input:disabled { opacity: .5; }
74
+ .quiet-button, .close-button, .icon-button { border: 1px solid var(--line); background: var(--surface); border-radius: 6px; cursor: pointer; }
75
+ .quiet-button { height: 36px; padding: 0 12px; font-size: 12px; font-weight: 700; }
76
+ .icon-button { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; color: var(--muted); }
77
+ .icon-button:hover, .icon-button[aria-expanded="true"] { border-color: var(--line-strong); background: var(--green-soft); color: var(--green); }
78
+ .icon-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
79
+
80
+ .summary-strip { position: fixed; z-index: 30; top: 58px; right: 18px; left: 18px; display: grid; grid-template-columns: repeat(6, minmax(100px, 1fr)); min-height: 60px; overflow: hidden; background: var(--surface); border: 1px solid var(--line-strong); border-radius: 7px; box-shadow: var(--shadow); }
81
+ .summary-metric { display: flex; align-items: center; gap: 7px; padding: 0 16px; border-right: 1px solid var(--line); }
82
+ .summary-metric strong { font-size: 19px; font-variant-numeric: tabular-nums; }
83
+ .summary-metric span { color: var(--muted); font-size: 11px; font-weight: 650; }
84
+ .summary-metric.positive strong { color: var(--green); }
85
+ .summary-metric.attention strong { color: var(--amber); }
86
+ .summary-metric.danger strong { color: var(--red); }
87
+
88
+ .dashboard-view { min-width: 0; min-height: 0; }
89
+ .board-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); }
90
+ .filter-rail { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; min-height: 0; overflow: hidden; padding: 16px 12px; background: var(--surface); border-right: 1px solid var(--line); }
91
+ .rail-heading, .workspace-heading, .live-heading, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
92
+ .rail-heading { padding: 0 4px 13px; }
93
+ .rail-heading h2, .workspace-heading h2, .live-heading h2, .section-heading h3 { margin: 0; font-size: 16px; }
94
+ .count-badge { min-width: 28px; padding: 4px 7px; background: var(--canvas); border-radius: 12px; color: var(--muted); font-size: 11px; font-weight: 750; text-align: center; }
95
+ .scope-controls { display: grid; gap: 4px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
96
+ .scope-button, .group-button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 34px; padding: 0 9px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); cursor: pointer; font-size: 12px; text-align: left; }
97
+ .scope-button:hover, .group-button:hover { background: var(--surface-2); color: var(--ink); }
98
+ .scope-button.active, .group-button.active { background: var(--green-soft); color: #12573f; font-weight: 750; }
99
+ .scope-button b, .group-button b { font-size: 11px; font-variant-numeric: tabular-nums; }
100
+ .done-toggle { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 9px; color: var(--muted); font-size: 12px; cursor: pointer; }
101
+ .done-toggle input { accent-color: var(--green); }
102
+ .group-list { display: grid; align-content: start; gap: 2px; min-height: 0; overflow-y: auto; padding-top: 12px; }
103
+ .group-button span { display: flex; align-items: center; gap: 8px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
104
+ .group-button i { width: 7px; height: 7px; flex: 0 0 auto; border: 1px solid var(--line-strong); border-radius: 2px; background: var(--surface); }
105
+ .group-button.active i { border-color: var(--green); background: var(--green); }
106
+ .rail-empty { padding: 8px; color: var(--muted); font-size: 12px; line-height: 1.5; }
107
+ .premium-card { display: grid; gap: 7px; margin-top: 12px; padding: 13px; border: 1px solid #b8cddd; border-radius: 6px; background: linear-gradient(145deg, #edf5fa, #f8fbfd); color: var(--ink); text-decoration: none; }
108
+ .premium-card:hover { border-color: var(--blue); box-shadow: 0 6px 16px rgb(46 100 143 / 12%); }
109
+ .premium-kicker { display: flex; align-items: center; gap: 6px; color: var(--blue); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
110
+ .premium-kicker i { font-style: normal; }
111
+ .premium-card > strong { font-size: 12px; }
112
+ .premium-card p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
113
+ .premium-action { display: flex; align-items: center; justify-content: space-between; padding-top: 3px; color: var(--blue); font-size: 10px; font-weight: 800; }
114
+
115
+ .board-workspace { display: grid; grid-template-rows: 56px minmax(0, 1fr); min-width: 0; min-height: 0; }
116
+ .workspace-heading { padding: 0 16px; background: var(--surface-2); border-bottom: 1px solid var(--line); }
117
+ .workspace-heading p { margin: 0; color: var(--muted); font-size: 11px; }
118
+ .board-mode { display: flex; gap: 2px; padding: 2px; background: var(--canvas); border-radius: 6px; }
119
+ .board-mode button { min-height: 28px; padding: 0 9px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); cursor: pointer; font-size: 10px; font-weight: 750; }
120
+ .board-mode button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 2px rgb(23 33 28 / 10%); }
121
+ .kanban { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); min-width: 0; min-height: 0; overflow-x: auto; background: var(--canvas); }
122
+ .kanban.cycle-board { grid-auto-columns: minmax(270px, 1fr); }
123
+ .kanban-lane { display: grid; grid-template-rows: 43px minmax(0, 1fr); min-width: 0; min-height: 0; border-right: 1px solid var(--line); }
124
+ .lane-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 12px; background: rgb(247 249 249 / 92%); border-bottom: 1px solid var(--line); backdrop-filter: blur(8px); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
125
+ .lane-heading span { display: flex; align-items: center; gap: 7px; }
126
+ .lane-heading i { width: 8px; height: 8px; border-radius: 2px; background: #899692; }
127
+ .lane-ready .lane-heading i { background: var(--blue); }
128
+ .lane-active .lane-heading i { background: var(--green); }
129
+ .lane-qa .lane-heading i { background: #765b9d; }
130
+ .lane-blocked .lane-heading i { background: var(--red); }
131
+ .lane-done .lane-heading i { background: #64716b; }
132
+ .lane-build .lane-heading i, .lane-deliver .lane-heading i, .lane-delivery .lane-heading i { background: var(--green); }
133
+ .lane-retro .lane-heading i, .lane-learn .lane-heading i { background: #765b9d; }
134
+ .lane-validate-external-plan .lane-heading i, .lane-validate-external-test-plan .lane-heading i, .lane-validate-external-code .lane-heading i { background: var(--blue); }
135
+ .lane-heading b { min-width: 22px; padding: 2px 6px; border-radius: 9px; background: var(--line); font-size: 10px; text-align: center; }
136
+ .lane-cards { min-height: 0; overflow-y: auto; padding: 9px; }
137
+ .lane-empty { display: grid; place-items: center; min-height: 80px; border: 1px dashed var(--line-strong); border-radius: 6px; color: var(--muted); font-size: 11px; }
138
+ .intent-card { position: relative; margin-bottom: 8px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 1px 2px rgb(23 33 28 / 5%); }
139
+ .intent-card:hover { border-color: var(--line-strong); box-shadow: 0 4px 12px rgb(23 33 28 / 8%); }
140
+ .intent-card.has-live-work { border-left: 3px solid var(--green); }
141
+ .intent-card > header { display: flex; justify-content: space-between; align-items: center; padding: 8px 9px 0; }
142
+ .priority { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
143
+ .priority-p0, .priority-p1 { color: var(--red); }
144
+ .sprint-star { width: 24px; height: 24px; padding: 0; border: 0; background: transparent; color: #a7b1ad; cursor: pointer; font-size: 17px; }
145
+ .sprint-star.selected { color: var(--amber); }
146
+ .card-main { display: grid; gap: 4px; width: 100%; padding: 5px 9px 10px; border: 0; background: transparent; cursor: pointer; text-align: left; }
147
+ .card-main strong { font-size: 13px; line-height: 1.35; }
148
+ .card-main small, .card-domain { color: var(--muted); font-size: 10px; }
149
+ .card-domain { overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
150
+ .card-progress, .detail-progress { display: block; width: 100%; height: 3px; overflow: hidden; border: 0; appearance: none; background: var(--canvas); }
151
+ .card-progress::-webkit-progress-bar, .detail-progress::-webkit-progress-bar, .guided-progress::-webkit-progress-bar { background: var(--canvas); }
152
+ .card-progress::-webkit-progress-value, .detail-progress::-webkit-progress-value, .guided-progress::-webkit-progress-value { background: var(--green); }
153
+ .card-progress::-moz-progress-bar, .detail-progress::-moz-progress-bar, .guided-progress::-moz-progress-bar { background: var(--green); }
154
+ .intent-card > footer { display: flex; gap: 9px; align-items: center; min-height: 28px; padding: 0 9px; color: var(--muted); font-size: 9px; }
155
+ .working-now { display: flex; align-items: center; gap: 4px; margin-left: auto; color: var(--green); font-weight: 750; }
156
+ .working-now i, .live-pill i { width: 6px; height: 6px; border-radius: 50%; background: #29a36a; }
157
+
158
+ .live-view { overflow-y: auto; padding: 22px; background: var(--canvas); }
159
+ .live-heading { align-items: flex-end; padding-bottom: 18px; border-bottom: 1px solid var(--line-strong); }
160
+ .live-heading h2 { font-size: 26px; }
161
+ .live-heading p { margin: 5px 0 0; color: var(--muted); }
162
+ .poll-state { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
163
+ .live-summary { display: grid; grid-template-columns: repeat(4, minmax(120px, 1fr)); margin: 16px 0; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; }
164
+ .live-summary .summary-metric { min-height: 56px; }
165
+ .active-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 10px; }
166
+ .active-card { display: grid; gap: 10px; min-height: 190px; padding: 16px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 6px; background: var(--surface); cursor: pointer; text-align: left; }
167
+ .active-card.tone-question { border-left-color: var(--amber); }
168
+ .active-card.tone-blocked, .active-card.tone-stale { border-left-color: var(--red); }
169
+ .active-card header, .active-card footer, .active-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
170
+ .active-card header span, .active-meta, .active-card footer { color: var(--muted); font-size: 10px; }
171
+ .active-card header b { padding: 3px 7px; border-radius: 10px; background: var(--green-soft); color: var(--green); font-size: 9px; text-transform: uppercase; }
172
+ .active-card h3, .active-card p { margin: 0; }
173
+ .active-card h3 { font-size: 15px; }
174
+ .active-card p { line-height: 1.5; }
175
+ .human-question { padding: 9px; background: var(--amber-soft); border-left: 3px solid var(--amber); color: #72420d; font-size: 12px; font-weight: 650; }
176
+ .live-empty, .fatal-error { grid-column: 1 / -1; padding: 40px; border: 1px dashed var(--line-strong); background: var(--surface); color: var(--muted); text-align: center; }
177
+ .live-empty strong, .fatal-error strong { color: var(--ink); }
178
+
179
+ .knowledge-view { display: grid; grid-template-columns: 290px minmax(0, 1fr); background: var(--surface); }
180
+ .knowledge-rail { min-height: 0; overflow-y: auto; padding: 16px 12px; border-right: 1px solid var(--line); background: var(--surface-2); }
181
+ .knowledge-rail > header, .knowledge-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
182
+ .knowledge-rail h2, .knowledge-heading h2 { margin: 0; font-size: 16px; }
183
+ .knowledge-tree { margin-top: 14px; }
184
+ .palace-tidiness { display: flex; align-items: center; gap: 7px; margin-top: 12px; padding: 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--muted); font-size: 10px; font-weight: 700; }
185
+ .palace-tidiness i { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
186
+ .palace-tidiness.tidy { color: #12573f; }
187
+ .palace-tidiness.tidy i { background: var(--green); }
188
+ .palace-tidiness.attention { color: #72420d; }
189
+ .palace-tidiness.attention i { background: var(--amber); }
190
+ .knowledge-folder { margin: 2px 0; }
191
+ .knowledge-folder summary { display: flex; align-items: center; justify-content: space-between; min-height: 32px; padding: 0 7px; border-radius: 5px; color: var(--ink); cursor: pointer; font-size: 11px; font-weight: 750; list-style: none; }
192
+ .knowledge-folder summary::-webkit-details-marker { display: none; }
193
+ .knowledge-folder summary::before { display: inline-block; width: 15px; color: var(--muted); content: "▸"; }
194
+ .knowledge-folder[open] > summary::before { content: "▾"; }
195
+ .knowledge-folder summary span { flex: 1; }
196
+ .knowledge-folder summary b { color: var(--muted); font-size: 9px; }
197
+ .knowledge-folder > div { margin-left: 12px; padding-left: 5px; border-left: 1px solid var(--line); }
198
+ .knowledge-document { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; min-height: 31px; padding: 0 7px 0 21px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); cursor: pointer; font-size: 10px; text-align: left; }
199
+ .knowledge-document span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
200
+ .knowledge-document small { color: #8a9691; font-size: 8px; font-weight: 800; }
201
+ .knowledge-document:hover { background: var(--surface); color: var(--ink); }
202
+ .knowledge-document.active { background: var(--green-soft); color: #12573f; font-weight: 750; }
203
+ .knowledge-workspace { display: grid; grid-template-rows: 72px minmax(0, 1fr); min-width: 0; min-height: 0; }
204
+ .knowledge-heading { padding: 0 24px; border-bottom: 1px solid var(--line); }
205
+ .knowledge-heading h2 { overflow: hidden; max-width: 70vw; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
206
+ .knowledge-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
207
+ .knowledge-content { min-height: 0; overflow-y: auto; padding: 28px clamp(24px, 6vw, 80px); background: var(--surface); }
208
+ .knowledge-markdown { max-width: 82ch; margin: 0; }
209
+ .knowledge-source { max-width: 100%; margin: 0; overflow: auto; padding: 20px; border: 1px solid var(--line); background: var(--surface-2); color: #29342e; font: 12px/1.65 "SFMono-Regular", Consolas, monospace; white-space: pre-wrap; }
210
+ .knowledge-empty { display: grid; place-items: center; align-content: center; min-height: 50vh; color: var(--muted); text-align: center; }
211
+ .knowledge-empty strong { color: var(--ink); font-size: 17px; }
212
+ .knowledge-empty p { margin: 7px 0; }
213
+ .knowledge-mode-switcher { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; margin-top: 14px; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--canvas); }
214
+ .knowledge-mode-switcher button { min-height: 31px; padding: 0 7px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); cursor: pointer; font-size: 10px; font-weight: 750; }
215
+ .knowledge-mode-switcher button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 2px rgb(23 33 28 / 10%); }
216
+ .meeting-evidence-sources { display: grid; align-content: start; gap: 7px; margin-top: 13px; }
217
+ .meeting-source-card { display: grid; gap: 6px; width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); cursor: pointer; text-align: left; }
218
+ .meeting-source-card:hover, .meeting-source-card.active { border-color: var(--green); box-shadow: 0 0 0 2px rgb(23 107 77 / 8%); }
219
+ .meeting-source-card > span { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
220
+ .meeting-source-card strong { font-size: 11px; }
221
+ .meeting-source-card b { color: var(--green); font-size: 8px; text-transform: uppercase; }
222
+ .meeting-source-card small { color: var(--muted); font-size: 9px; }
223
+ .meeting-source-card code { overflow: hidden; color: var(--blue); font-size: 8px; text-overflow: ellipsis; }
224
+ .meeting-evidence-workspace { display: grid; grid-template-rows: 72px minmax(0, 1fr); min-width: 0; min-height: 0; }
225
+ .meeting-evidence-heading { min-width: 0; }
226
+ .meeting-evidence-actions { display: flex; flex: 0 0 auto; gap: 7px; }
227
+ .meeting-evidence-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; min-width: 0; min-height: 0; overflow: hidden; }
228
+ .meeting-evidence-ledger { min-width: 0; overflow-y: auto; padding: 20px; background: var(--canvas); }
229
+ .meeting-evidence-context { min-width: 0; overflow-y: auto; padding: 16px; border-left: 1px solid var(--line); background: var(--surface-2); }
230
+ .meeting-evidence-context > section { margin-bottom: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
231
+ .meeting-evidence-context h3 { margin: 0 0 10px; font-size: 13px; }
232
+ .meeting-evidence-context dl { margin: 0; }
233
+ .meeting-evidence-context dl div { padding: 8px 0; border-bottom: 1px solid var(--line); }
234
+ .meeting-evidence-context dl div:last-child { border-bottom: 0; }
235
+ .meeting-evidence-context dt { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
236
+ .meeting-evidence-context dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 10px; }
237
+ .meeting-evidence-context code { font-size: 8px; }
238
+ .meeting-evidence-spine { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
239
+ .meeting-evidence-spine > header { padding: 13px 16px; border-bottom: 1px solid var(--line); }
240
+ .meeting-evidence-spine h3 { margin: 0; font-size: 15px; }
241
+ .meeting-candidate { display: grid; grid-template-columns: 78px minmax(0, 1fr); border-bottom: 1px solid var(--line); }
242
+ .meeting-candidate:last-child { border-bottom: 0; }
243
+ .meeting-candidate-anchor { position: relative; padding: 15px 12px; border-right: 1px solid var(--line); color: var(--blue); font: 9px/1.4 "SFMono-Regular", Consolas, monospace; text-align: right; }
244
+ .meeting-candidate-anchor i { position: absolute; top: 29px; right: -5px; width: 9px; height: 9px; border: 2px solid var(--surface); border-radius: 50%; background: var(--blue); }
245
+ .meeting-candidate > div:last-child { padding: 14px 16px; }
246
+ .meeting-candidate header { display: flex; justify-content: space-between; gap: 12px; }
247
+ .meeting-candidate header span, .meeting-candidate header b { font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
248
+ .meeting-candidate header span { color: var(--blue); }
249
+ .meeting-candidate header b { color: var(--green); }
250
+ .meeting-candidate[data-decision="rejected"] header b, .meeting-candidate[data-decision="deferred"] header b { color: var(--amber); }
251
+ .meeting-candidate h4 { margin: 7px 0 0; font-size: 12px; line-height: 1.45; }
252
+ .meeting-candidate p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
253
+ .meeting-candidate small { display: block; margin-top: 7px; color: var(--muted); font-size: 8px; }
254
+ .meeting-persona { margin-top: 7px; padding: 9px; border: 1px solid var(--line); border-radius: 5px; }
255
+ .meeting-persona header { display: flex; justify-content: space-between; gap: 8px; }
256
+ .meeting-persona header strong { font-size: 10px; }
257
+ .meeting-persona header span { color: var(--blue); font-size: 8px; font-weight: 800; text-transform: uppercase; }
258
+ .meeting-persona p, .meeting-persona small { color: var(--muted); font-size: 8px; line-height: 1.45; }
259
+ .meeting-persona p { margin: 5px 0; }
260
+ .meeting-evidence-receipt { display: grid; grid-template-columns: repeat(2, minmax(0, .8fr)) minmax(0, 1.4fr); margin-top: 9px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
261
+ .meeting-evidence-receipt.is-promoted { border-color: #a9cdbf; }
262
+ .meeting-evidence-receipt span { min-width: 0; padding: 10px; border-right: 1px solid var(--line); color: var(--muted); font-size: 9px; }
263
+ .meeting-evidence-receipt span:last-child { border-right: 0; }
264
+ .meeting-evidence-receipt strong, .meeting-evidence-receipt code { display: block; }
265
+ .meeting-evidence-receipt strong { margin-bottom: 3px; color: var(--ink); font-size: 8px; text-transform: uppercase; }
266
+ .meeting-evidence-receipt code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
267
+ .meeting-evidence-warning, .meeting-evidence-prepared, .meeting-evidence-message, .meeting-evidence-empty { padding: 12px 14px; border-left: 4px solid var(--amber); background: var(--amber-soft); }
268
+ .meeting-evidence-prepared, .meeting-evidence-message { border-left-color: var(--blue); background: var(--blue-soft); }
269
+ .meeting-evidence-empty { border: 1px dashed var(--line-strong); background: var(--surface); color: var(--muted); }
270
+ .meeting-evidence-empty.is-error { border-color: var(--red); background: var(--red-soft); }
271
+ .meeting-evidence-warning strong, .meeting-evidence-prepared strong, .meeting-evidence-empty strong { display: block; font-size: 11px; }
272
+ .meeting-evidence-warning p, .meeting-evidence-prepared p, .meeting-evidence-empty p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
273
+ .meeting-evidence-prepared code, .meeting-evidence-prepared span, .meeting-evidence-empty code { display: block; margin-top: 6px; font-size: 8px; }
274
+ .meeting-evidence-advisory, .meeting-evidence-notice { margin: 10px 0 0; padding: 10px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: #244e70; font-size: 8px; line-height: 1.5; }
275
+ .meeting-evidence-notice { border-left-color: var(--amber); background: var(--amber-soft); color: #70430f; }
276
+ .knowledge-proposal-sources { display: grid; align-content: start; gap: 7px; margin-top: 13px; }
277
+ .knowledge-proposal-sources > h3 { margin: 8px 0 0; color: var(--muted); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
278
+ .knowledge-proposal-source-card, .knowledge-proposal-bundle-card { display: grid; gap: 6px; width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); text-align: left; }
279
+ .knowledge-proposal-bundle-card { cursor: pointer; }
280
+ .knowledge-proposal-bundle-card:hover, .knowledge-proposal-bundle-card.active { border-color: var(--green); box-shadow: 0 0 0 2px rgb(23 107 77 / 8%); }
281
+ .knowledge-proposal-source-card > span, .knowledge-proposal-bundle-card > span { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
282
+ .knowledge-proposal-source-card strong, .knowledge-proposal-bundle-card strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; }
283
+ .knowledge-proposal-source-card b, .knowledge-proposal-bundle-card b { color: var(--green); font-size: 8px; text-transform: uppercase; }
284
+ .knowledge-proposal-source-card small, .knowledge-proposal-bundle-card small { color: var(--muted); font-size: 8px; }
285
+ .knowledge-proposal-source-card code, .knowledge-proposal-bundle-card code { overflow: hidden; color: var(--blue); font-size: 8px; text-overflow: ellipsis; }
286
+ .knowledge-proposal-source-card button { min-height: 28px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--surface-2); color: var(--ink); cursor: pointer; font-size: 9px; font-weight: 800; }
287
+ .knowledge-proposal-workspace { display: grid; grid-template-rows: 72px minmax(0, 1fr); min-width: 0; min-height: 0; }
288
+ .knowledge-proposal-heading { min-width: 0; }
289
+ .knowledge-proposal-actions { display: flex; flex: 0 0 auto; gap: 7px; }
290
+ .knowledge-proposal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; min-width: 0; min-height: 0; overflow: hidden; }
291
+ .knowledge-proposal-ledger { min-width: 0; overflow-y: auto; padding: 20px; background: var(--canvas); }
292
+ .knowledge-proposal-context { min-width: 0; overflow-y: auto; padding: 16px; border-left: 1px solid var(--line); background: var(--surface-2); }
293
+ .knowledge-proposal-context > section { margin-bottom: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
294
+ .knowledge-proposal-context h3 { margin: 0 0 10px; font-size: 13px; }
295
+ .knowledge-proposal-context dl { margin: 0; }
296
+ .knowledge-proposal-context dl div { padding: 8px 0; border-bottom: 1px solid var(--line); }
297
+ .knowledge-proposal-context dl div:last-child { border-bottom: 0; }
298
+ .knowledge-proposal-context dt { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
299
+ .knowledge-proposal-context dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 9px; }
300
+ .knowledge-proposal-context code { font-size: 8px; }
301
+ .knowledge-proposal-spine { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
302
+ .knowledge-proposal-spine > header { padding: 13px 16px; border-bottom: 1px solid var(--line); }
303
+ .knowledge-proposal-spine h3 { margin: 0; font-size: 15px; }
304
+ .knowledge-proposal-card { padding: 15px 16px; border-bottom: 1px solid var(--line); }
305
+ .knowledge-proposal-card:last-child { border-bottom: 0; }
306
+ .knowledge-proposal-card header { display: flex; justify-content: space-between; gap: 12px; }
307
+ .knowledge-proposal-card header span, .knowledge-proposal-card header b { font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
308
+ .knowledge-proposal-card header span { color: var(--blue); }
309
+ .knowledge-proposal-card header b { color: var(--green); }
310
+ .knowledge-proposal-card[data-state="conflict"] header b { color: var(--amber); }
311
+ .knowledge-proposal-card h4 { margin: 7px 0 4px; font-size: 13px; }
312
+ .knowledge-proposal-card > code { display: block; overflow-wrap: anywhere; color: var(--blue); font-size: 8px; }
313
+ .knowledge-proposal-card > p { margin: 7px 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
314
+ .knowledge-proposal-card > small { color: var(--muted); font-size: 8px; }
315
+ .knowledge-proposal-review-fields { display: grid; grid-template-columns: minmax(120px, .45fr) minmax(0, 1fr); gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
316
+ .knowledge-proposal-review-fields label, .knowledge-proposal-review-panel label { display: grid; gap: 4px; }
317
+ .knowledge-proposal-review-fields label:nth-last-child(-n + 2) { grid-column: 1 / -1; }
318
+ .knowledge-proposal-review-fields span, .knowledge-proposal-review-panel label span { color: var(--muted); font-size: 8px; font-weight: 800; }
319
+ .knowledge-proposal-review-fields input, .knowledge-proposal-review-fields select, .knowledge-proposal-review-fields textarea, .knowledge-proposal-review-panel input { min-width: 0; padding: 7px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--surface); color: var(--ink); font-size: 9px; }
320
+ .knowledge-proposal-disposition { margin-top: 10px; padding: 9px; border-left: 3px solid var(--green); background: var(--green-soft); }
321
+ .knowledge-proposal-disposition strong { font-size: 9px; text-transform: uppercase; }
322
+ .knowledge-proposal-disposition p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
323
+ .knowledge-proposal-review-panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .6fr) auto; align-items: end; gap: 10px; margin-top: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
324
+ .knowledge-proposal-review-panel > .eyebrow, .knowledge-proposal-review-panel > h3, .knowledge-proposal-review-panel > p { grid-column: 1 / -1; }
325
+ .knowledge-proposal-review-panel h3 { margin: 0; font-size: 13px; }
326
+ .knowledge-proposal-review-panel p { margin: 0; color: var(--muted); font-size: 9px; }
327
+ .knowledge-proposal-persona { margin-top: 7px; padding: 9px; border: 1px solid var(--line); border-radius: 5px; }
328
+ .knowledge-proposal-persona header { display: flex; justify-content: space-between; gap: 8px; }
329
+ .knowledge-proposal-persona header strong { font-size: 10px; }
330
+ .knowledge-proposal-persona header span { color: var(--blue); font-size: 8px; font-weight: 800; text-transform: uppercase; }
331
+ .knowledge-proposal-persona[data-tier="project"] header span { color: var(--amber); }
332
+ .knowledge-proposal-persona p, .knowledge-proposal-persona small { color: var(--muted); font-size: 8px; line-height: 1.45; }
333
+ .knowledge-proposal-persona p { margin: 5px 0; }
334
+ .knowledge-proposal-receipt { display: grid; grid-template-columns: repeat(2, minmax(0, .8fr)) minmax(0, 1.4fr); margin-top: 9px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
335
+ .knowledge-proposal-receipt.is-materialised { border-color: #a9cdbf; }
336
+ .knowledge-proposal-receipt span { min-width: 0; padding: 10px; border-right: 1px solid var(--line); color: var(--muted); font-size: 9px; }
337
+ .knowledge-proposal-receipt span:last-child { border-right: 0; }
338
+ .knowledge-proposal-receipt strong, .knowledge-proposal-receipt code { display: block; }
339
+ .knowledge-proposal-receipt strong { margin-bottom: 3px; color: var(--ink); font-size: 8px; text-transform: uppercase; }
340
+ .knowledge-proposal-receipt code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
341
+ .knowledge-proposal-prepared, .knowledge-proposal-message, .knowledge-proposal-empty { padding: 12px 14px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
342
+ .knowledge-proposal-empty { border: 1px dashed var(--line-strong); background: var(--surface); color: var(--muted); }
343
+ .knowledge-proposal-empty.compact { padding: 10px; }
344
+ .knowledge-proposal-empty.is-error { border-color: var(--red); background: var(--red-soft); }
345
+ .knowledge-proposal-prepared strong, .knowledge-proposal-empty strong { display: block; font-size: 11px; }
346
+ .knowledge-proposal-prepared p, .knowledge-proposal-empty p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
347
+ .knowledge-proposal-prepared code, .knowledge-proposal-prepared span { display: block; margin-top: 6px; font-size: 8px; }
348
+ .knowledge-proposal-advisory, .knowledge-proposal-notice { margin: 10px 0 0; padding: 10px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: #244e70; font-size: 8px; line-height: 1.5; }
349
+ .knowledge-proposal-notice { border-left-color: var(--amber); background: var(--amber-soft); color: #70430f; }
350
+
351
+ .intent-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; }
352
+ .intent-dialog::backdrop { background: rgb(23 33 28 / 34%); }
353
+ .intent-drawer { display: grid; grid-template-rows: auto 48px minmax(0, 1fr); width: min(780px, 92vw); height: 100%; margin-left: auto; background: var(--surface); box-shadow: var(--shadow); }
354
+ .drawer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px 22px 15px; border-bottom: 1px solid var(--line); }
355
+ .drawer-header h2 { margin: 0; font-size: 23px; }
356
+ .drawer-header > div > p:last-child { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
357
+ .close-button { width: 34px; height: 34px; font-size: 24px; line-height: 1; }
358
+ .drawer-tabs { display: flex; gap: 2px; padding: 0 18px; border-bottom: 1px solid var(--line); }
359
+ .drawer-tabs button { position: relative; padding: 0 12px; border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 11px; font-weight: 750; }
360
+ .drawer-tabs button.active { color: var(--ink); }
361
+ .drawer-tabs button.active::after { position: absolute; right: 10px; bottom: -1px; left: 10px; height: 2px; background: var(--green); content: ""; }
362
+ .drawer-content { overflow-y: auto; padding: 22px; outline: none; }
363
+ .overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
364
+ .detail-section { padding: 17px; border: 1px solid var(--line); border-radius: 6px; }
365
+ .detail-section.full-width, .status-section { grid-column: 1 / -1; }
366
+ .detail-section p { margin: 10px 0 0; color: var(--muted); line-height: 1.55; }
367
+ .execution-actions, .task-readiness { display: grid; gap: 8px; margin-top: 12px; }
368
+ .execution-action, .task-readiness article { display: grid; grid-template-columns: minmax(90px, auto) 1fr; gap: 4px 12px; align-items: baseline; padding: 11px 12px; border: 1px solid var(--line); border-radius: 4px; }
369
+ .execution-action span, .task-readiness span { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
370
+ .execution-action.is-permitted { border-left: 4px solid var(--green); }
371
+ .execution-action.is-blocked { border-left: 4px solid var(--red); }
372
+ .execution-action p, .task-readiness small { grid-column: 2; margin: 0; color: var(--muted); }
373
+ .intent-launchpad { position: relative; display: grid; grid-template-columns: 24px minmax(0, 1fr) minmax(150px, auto); gap: 14px; grid-column: 1 / -1; overflow: hidden; padding: 18px; border: 1px solid var(--line-strong); border-radius: 6px; background: linear-gradient(110deg, var(--surface) 0%, var(--surface) 65%, var(--surface-2) 100%); }
374
+ .launch-track { position: relative; display: grid; justify-items: center; min-height: 76px; }
375
+ .launch-track::before { position: absolute; top: 3px; bottom: 3px; width: 2px; background: var(--line-strong); content: ""; }
376
+ .launch-track i { z-index: 1; width: 12px; height: 12px; border: 3px solid var(--surface); border-radius: 50%; background: var(--green); box-shadow: 0 0 0 2px var(--green); }
377
+ .launch-track span { z-index: 1; align-self: end; width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); }
378
+ .launch-running .launch-track i { background: var(--blue); box-shadow: 0 0 0 2px var(--blue); }
379
+ .launch-approval .launch-track i { background: var(--amber); box-shadow: 0 0 0 2px var(--amber); }
380
+ .launch-blocked .launch-track i { background: var(--red); box-shadow: 0 0 0 2px var(--red); }
381
+ .launch-queued .launch-track i { background: var(--blue); box-shadow: 0 0 0 2px var(--blue); }
382
+ .launch-copy h3 { margin: 1px 0 0; font-size: 17px; }
383
+ .launch-copy p { max-width: 66ch; margin: 7px 0 0; color: var(--muted); line-height: 1.5; }
384
+ .launch-copy ul { margin: 9px 0 0; padding-left: 18px; color: var(--red); font-size: 10px; line-height: 1.55; }
385
+ .launch-notice { margin-top: 10px; padding: 8px 10px; border-left: 3px solid var(--green); background: var(--green-soft); color: #12573f; font-size: 10px; font-weight: 700; }
386
+ .launch-controls { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 7px; min-width: 150px; }
387
+ .launch-controls > b { align-self: flex-end; margin-bottom: 3px; color: var(--muted); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
388
+ .launch-button, .primary-action, .secondary-action { min-height: 36px; padding: 0 13px; border-radius: 5px; cursor: pointer; font-size: 10px; font-weight: 800; }
389
+ .launch-button.primary, .primary-action { border: 1px solid var(--green); background: var(--green); color: white; }
390
+ .launch-button.secondary, .secondary-action { border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); }
391
+ .launch-button.danger, .primary-action.danger { border: 1px solid #d2a4a4; background: var(--surface); color: var(--red); }
392
+ .launch-button:hover, .primary-action:hover, .secondary-action:hover { filter: brightness(.97); }
393
+ .launch-button:disabled, .primary-action:disabled { opacity: .48; cursor: not-allowed; }
394
+ .large-progress { font-size: 25px; }
395
+ .detail-progress { height: 6px; margin: 15px 0; border-radius: 3px; }
396
+ .state-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0; }
397
+ .state-grid div { padding-top: 9px; border-top: 1px solid var(--line); }
398
+ .state-grid dt { color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
399
+ .state-grid dd { margin: 4px 0 0; font-size: 12px; font-weight: 700; }
400
+ .persona-list { display: grid; gap: 7px; margin-top: 12px; }
401
+ .persona-list span { display: flex; justify-content: space-between; gap: 10px; padding: 8px; background: var(--surface-2); font-size: 11px; font-weight: 650; }
402
+ .persona-list small { color: var(--muted); font-size: 9px; font-weight: 500; }
403
+ .intent-map-reference { padding: 8px; background: var(--blue-soft); color: var(--blue) !important; font-size: 10px; }
404
+ .relationship-list { display: grid; gap: 7px; margin-top: 12px; }
405
+ .relationship-list article { padding: 9px; border-left: 3px solid var(--blue); background: var(--surface-2); }
406
+ .relationship-list span { display: block; color: var(--blue); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
407
+ .relationship-list strong { display: block; margin-top: 3px; font-size: 11px; }
408
+ .relationship-list article p { margin-top: 4px; font-size: 9px; }
409
+ .persona-manager { display: grid; gap: 14px; }
410
+ .persona-manager-section, .persona-create { padding: 17px; border: 1px solid var(--line); border-radius: 6px; }
411
+ .persona-guidance { margin: 7px 0 14px; color: var(--muted); font-size: 11px; line-height: 1.5; }
412
+ .attached-personas, .persona-options { display: grid; gap: 7px; }
413
+ .attached-persona { display: grid; grid-template-columns: minmax(150px, 1fr) 120px 150px auto; align-items: end; gap: 8px; padding: 10px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 5px; }
414
+ .attached-persona > div strong, .attached-persona > div small { display: block; }
415
+ .attached-persona > div strong { font-size: 11px; }
416
+ .attached-persona > div small { margin-top: 3px; color: var(--muted); font-size: 9px; }
417
+ .attached-persona label, .persona-finder label, .persona-create label { display: grid; gap: 4px; }
418
+ .attached-persona label span, .persona-finder label span, .persona-create label span { color: var(--muted); font-size: 8px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
419
+ .attached-persona select, .persona-finder select, .persona-finder input, .persona-create input { min-width: 0; height: 34px; padding: 0 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); font-size: 10px; }
420
+ .persona-unlink { height: 34px; padding: 0 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--red); cursor: pointer; font-size: 9px; font-weight: 750; }
421
+ .persona-finder { display: grid; grid-template-columns: minmax(180px, 1fr) 130px 155px; align-items: end; gap: 8px; margin: 14px 0 10px; }
422
+ .persona-option { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 5px; }
423
+ .persona-option > div > span { color: var(--blue); font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
424
+ .persona-option strong { display: block; margin-top: 3px; font-size: 11px; }
425
+ .persona-option p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
426
+ .persona-option button, .persona-create button { height: 32px; padding: 0 11px; border: 0; border-radius: 5px; background: var(--green); color: white; cursor: pointer; font-size: 9px; font-weight: 800; }
427
+ .persona-option button:disabled { background: var(--canvas); color: var(--muted); cursor: default; }
428
+ .persona-no-results { padding: 24px 12px; border: 1px dashed var(--line-strong); color: var(--muted); text-align: center; }
429
+ .persona-no-results strong { color: var(--ink); font-size: 11px; }
430
+ .persona-no-results p { margin: 5px 0 0; font-size: 9px; }
431
+ .persona-create summary { cursor: pointer; color: var(--green); font-size: 11px; font-weight: 800; }
432
+ .persona-create form { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(150px, 1fr) 130px auto; align-items: end; gap: 8px; margin-top: 14px; }
433
+ .persona-library-error, .persona-link-warning { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface-2); }
434
+ .persona-library-error p, .persona-link-warning p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
435
+ .persona-library-error button, .persona-link-warning button { min-width: max-content; height: 32px; padding: 0 11px; border: 0; border-radius: 5px; background: var(--green); color: white; cursor: pointer; font-size: 9px; font-weight: 800; }
436
+ .persona-link-warning { border-color: #dfc28e; background: var(--amber-soft); }
437
+
438
+ .impact-workspace { display: grid; gap: 13px; }
439
+ .impact-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 2px 0 3px; }
440
+ .impact-intro h3 { margin: 0; font-size: clamp(22px, 4vw, 32px); letter-spacing: -.035em; }
441
+ .impact-intro p { max-width: 58ch; margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
442
+ .impact-intro > span { min-width: max-content; padding: 5px 8px; border-radius: 12px; background: var(--amber-soft); color: #70430f; font-size: 8px; font-weight: 800; text-transform: uppercase; }
443
+ .impact-index { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
444
+ .impact-index.is-fresh { border-color: #c3d9ce; background: #edf7f2; }
445
+ .impact-index.is-stale { border-color: #dfc28e; background: #fff9ed; }
446
+ .impact-index > div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 8px; }
447
+ .impact-index i { grid-row: 1 / 3; width: 8px; height: 8px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 0 3px rgb(160 94 18 / 12%); }
448
+ .impact-index.is-fresh i { background: var(--green); box-shadow: 0 0 0 3px rgb(23 107 77 / 12%); }
449
+ .impact-index strong { font-size: 11px; }
450
+ .impact-index small { color: var(--muted); font-size: 9px; }
451
+ .impact-index button { min-height: 34px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 5px; background: transparent; cursor: pointer; font-size: 9px; font-weight: 800; }
452
+ .source-map-coverage { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
453
+ .source-map-coverage > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 13px 14px; border-bottom: 1px solid var(--line); background: var(--surface-2); }
454
+ .source-map-coverage > header h3, .source-map-personas h4, .source-map-detail-grid h4 { margin: 2px 0 0; font-size: 12px; }
455
+ .source-map-coverage > header p { max-width: 68ch; margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
456
+ .source-map-coverage > header b, .source-map-personas header b { min-width: max-content; font-size: 9px; }
457
+ .source-map-outcomes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
458
+ .source-map-outcomes article { padding: 11px 12px; border-right: 1px solid var(--line); }
459
+ .source-map-outcomes article:last-child { border-right: 0; }
460
+ .source-map-outcomes span, .source-map-profiles span, .source-map-files span, .source-map-personas article span { display: block; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
461
+ .source-map-outcomes strong { display: block; margin-top: 5px; font-size: 17px; }
462
+ .source-map-outcomes [data-outcome="analysis_failed"] strong, .source-map-outcomes [data-outcome="skipped_sensitive"] strong { color: var(--red); }
463
+ .source-map-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
464
+ .source-map-detail-grid > section { min-width: 0; padding: 13px 14px; }
465
+ .source-map-detail-grid > section + section { border-left: 1px solid var(--line); }
466
+ .source-map-profiles, .source-map-files { display: grid; gap: 0; margin-top: 8px; }
467
+ .source-map-profiles article, .source-map-files article { min-width: 0; padding: 8px 0; border-top: 1px solid var(--line); }
468
+ .source-map-profiles strong, .source-map-files code, .source-map-personas strong { display: block; margin-top: 3px; overflow-wrap: anywhere; font-size: 10px; }
469
+ .source-map-profiles small, .source-map-files small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }
470
+ .source-map-profiles p, .source-map-files p, .source-map-personas p { color: var(--muted); font-size: 9px; line-height: 1.45; }
471
+ .source-map-personas { padding: 13px 14px; border-top: 1px solid var(--line); }
472
+ .source-map-personas > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
473
+ .source-map-personas > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 9px; }
474
+ .source-map-personas article { padding: 10px; border: 1px solid var(--line); border-radius: 5px; }
475
+ .source-map-personas article[data-tier="premium"] span, .source-map-personas article[data-tier="premium-unavailable"] span { color: #7753a6; }
476
+ .source-map-personas article[data-tier="project"] span { color: var(--amber); }
477
+ .source-map-personas article p { margin: 4px 0 0; }
478
+ .source-map-boundary { margin: 0; padding: 10px 14px; border-top: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-size: 8px; }
479
+ .impact-inputs { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 6px; }
480
+ .impact-inputs label, .impact-route label, .impact-confirmation > label { display: grid; align-content: start; gap: 5px; }
481
+ .impact-inputs label > span, .impact-route label > span, .impact-confirmation label > span { font-size: 9px; font-weight: 800; }
482
+ .impact-inputs textarea, .impact-route input, .impact-route select, .impact-confirmation input { width: 100%; min-width: 0; padding: 9px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface); color: var(--ink); font-size: 10px; line-height: 1.45; }
483
+ .impact-inputs textarea:focus, .impact-route input:focus, .impact-route select:focus, .impact-confirmation input:focus { border-color: var(--green); outline: 2px solid rgb(23 107 77 / 13%); outline-offset: 0; }
484
+ .impact-inputs label > small { color: var(--muted); font-size: 8px; }
485
+ .impact-inputs > button { grid-column: 1 / -1; justify-self: center; }
486
+ .impact-message { padding: 10px 12px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: #244f71; font-size: 10px; }
487
+ .impact-message.is-error { border-left-color: var(--red); background: var(--red-soft); color: #742727; }
488
+ .impact-message.is-success { border-left-color: var(--green); background: var(--green-soft); color: #12573f; }
489
+ .impact-message strong { display: block; }
490
+ .impact-message p { margin: 3px 0 0; }
491
+ .impact-band { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
492
+ .impact-band > header { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
493
+ .impact-band > header > span, .impact-card > span, .impact-persona > span { color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
494
+ .impact-band > header h3 { margin: 0; font-size: 13px; }
495
+ .impact-band > header p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
496
+ .impact-band > header b { font-size: 9px; }
497
+ .impact-observed { border-left: 4px solid var(--blue); }
498
+ .impact-observed > header { background: var(--blue-soft); }
499
+ .impact-inferred { border-left: 4px solid var(--amber); }
500
+ .impact-inferred > header { background: var(--amber-soft); }
501
+ .impact-decided { border-left: 4px solid var(--green); }
502
+ .impact-decided > header { background: var(--green-soft); }
503
+ .impact-evidence-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(180px, .8fr); }
504
+ .impact-node-list { display: grid; gap: 0; margin: 0; padding: 8px 14px; list-style: none; }
505
+ .impact-node-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
506
+ .impact-node-list li:last-child { border-bottom: 0; }
507
+ .impact-node-list span, .impact-node-list small { color: var(--muted); font-size: 8px; text-transform: capitalize; }
508
+ .impact-node-list code { grid-column: 1 / -1; overflow-wrap: anywhere; color: #244f71; font-size: 10px; }
509
+ .impact-coverage { padding: 14px; border-left: 1px solid var(--line); background: #fff9ed; }
510
+ .impact-coverage.is-complete { background: #edf7f2; }
511
+ .impact-coverage strong { font-size: 11px; }
512
+ .impact-coverage p { margin: 7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
513
+ .impact-persona-grid, .impact-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 12px; }
514
+ .impact-card-grid { padding-top: 0; }
515
+ .impact-persona, .impact-card { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
516
+ .impact-persona > span { color: var(--blue); }
517
+ .impact-persona[data-tier="premium"] > span { color: #7753a6; }
518
+ .impact-persona[data-tier="project"] > span { color: var(--amber); }
519
+ .impact-persona strong, .impact-card strong { display: block; margin-top: 4px; font-size: 11px; }
520
+ .impact-persona p, .impact-card p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
521
+ .impact-card code { display: block; margin-top: 7px; overflow-wrap: anywhere; color: var(--blue); font-size: 8px; }
522
+ .impact-empty-row { grid-column: 1 / -1; color: var(--muted); font-size: 10px; }
523
+ .impact-route-list { display: grid; gap: 8px; padding: 12px; }
524
+ .impact-route { display: grid; grid-template-columns: minmax(0, 1fr) 125px minmax(150px, .75fr); gap: 10px; align-items: start; padding: 11px; border: 1px solid var(--line); border-radius: 5px; }
525
+ .impact-route strong { font-size: 11px; }
526
+ .impact-route p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
527
+ .impact-route small { display: block; margin-top: 5px; color: var(--blue); font-size: 8px; }
528
+ .impact-route label.is-required > span::after { color: var(--red); content: " · required"; }
529
+ .impact-confirmation { display: grid; grid-template-columns: minmax(150px, .55fr) minmax(240px, 1fr) auto; align-items: end; gap: 12px; padding: 12px; border-top: 1px solid var(--line); background: var(--surface-2); }
530
+ .impact-acknowledge { grid-template-columns: auto 1fr !important; align-items: center !important; }
531
+ .impact-acknowledge input { width: 16px; height: 16px; padding: 0; accent-color: var(--green); }
532
+ .impact-acknowledge span { font-weight: 600 !important; line-height: 1.4; }
533
+ .impact-boundary { margin: 0; padding: 0 12px 12px; background: var(--surface-2); color: var(--muted); font-size: 8px; }
534
+ .impact-history { padding: 13px; border: 1px solid var(--line); border-radius: 6px; }
535
+ .impact-history > article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); }
536
+ .impact-history > article:first-of-type { margin-top: 10px; }
537
+ .impact-history strong, .impact-history span { display: block; }
538
+ .impact-history strong { font-size: 10px; }
539
+ .impact-history span { margin-top: 3px; color: var(--muted); font-size: 8px; }
540
+ .impact-history code { color: var(--blue); font-size: 8px; }
541
+ .test-scenario-workspace { display: grid; gap: 13px; }
542
+ .test-scenario-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 2px 0 3px; }
543
+ .test-scenario-intro h3 { margin: 0; font-size: clamp(22px, 4vw, 32px); letter-spacing: -.035em; }
544
+ .test-scenario-intro p { margin: 6px 0 0; color: var(--muted); font: italic 13px/1.45 Georgia, serif; }
545
+ .test-scenario-status, .test-scenario-library { min-width: max-content; padding: 5px 8px; border-radius: 12px; background: var(--surface-2); color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
546
+ .test-scenario-status.is-recorded { background: var(--green-soft); color: var(--green); }
547
+ .test-scenario-status.is-stale, .test-scenario-status.is-missing, .test-scenario-library.is-unavailable { background: var(--amber-soft); color: #70430f; }
548
+ .test-scenario-status.is-invalid { background: var(--red-soft); color: #742727; }
549
+ .test-scenario-state { padding: 12px 14px; border-left: 4px solid var(--amber); background: var(--amber-soft); }
550
+ .test-scenario-state.is-invalid { border-left-color: var(--red); background: var(--red-soft); }
551
+ .test-scenario-state strong, .test-scenario-state p, .test-scenario-state code { display: block; }
552
+ .test-scenario-state strong { font-size: 11px; }
553
+ .test-scenario-state p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
554
+ .test-scenario-state code { margin-top: 8px; overflow-wrap: anywhere; color: var(--blue); font-size: 9px; }
555
+ .test-scenario-receipt { display: grid; grid-template-columns: repeat(2, minmax(0, .75fr)) minmax(0, 1.5fr); border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
556
+ .test-scenario-receipt > span { min-width: 0; padding: 10px 12px; border-right: 1px solid var(--line); color: var(--muted); font-size: 9px; }
557
+ .test-scenario-receipt > span:last-child { border-right: 0; }
558
+ .test-scenario-receipt strong, .test-scenario-receipt code { display: block; }
559
+ .test-scenario-receipt strong { margin-bottom: 3px; color: var(--ink); font-size: 8px; text-transform: uppercase; }
560
+ .test-scenario-receipt code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
561
+ .test-scenario-readiness, .test-scenario-personas, .test-scenario-loom, .test-scenario-gaps { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
562
+ .test-scenario-readiness > header, .test-scenario-personas > header, .test-scenario-loom > header, .test-scenario-gaps > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--surface-2); }
563
+ .test-scenario-readiness h4, .test-scenario-personas h4, .test-scenario-loom h4, .test-scenario-gaps h4 { margin: 1px 0 0; font-size: 13px; }
564
+ .test-scenario-readiness > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); }
565
+ .test-scenario-readiness > div > span { padding: 11px 13px; border-right: 1px solid var(--line); color: var(--muted); font-size: 8px; text-transform: uppercase; }
566
+ .test-scenario-readiness > div > span:last-child { border-right: 0; }
567
+ .test-scenario-readiness > div strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: 17px; }
568
+ .test-scenario-readiness > div > p { padding: 12px 14px; color: var(--muted); font-size: 9px; }
569
+ .test-scenario-personas > header > b, .test-scenario-loom > header > span { color: var(--muted); font-size: 9px; }
570
+ .test-scenario-personas > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 12px; }
571
+ .test-scenario-persona { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 5px; }
572
+ .test-scenario-persona > span { color: var(--blue); font-size: 8px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
573
+ .test-scenario-persona[data-tier="premium"] > span { color: #76529b; }
574
+ .test-scenario-persona[data-tier="project"] > span { color: var(--amber); }
575
+ .test-scenario-persona strong, .test-scenario-persona small { display: block; }
576
+ .test-scenario-persona strong { margin-top: 4px; font-size: 11px; }
577
+ .test-scenario-persona small { margin-top: 4px; color: var(--blue); font-size: 8px; }
578
+ .test-scenario-persona p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
579
+ .test-scenario-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
580
+ .test-scenario-filters label { display: grid; gap: 5px; }
581
+ .test-scenario-filters label > span { font-size: 8px; font-weight: 800; }
582
+ .test-scenario-filters select { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface); color: var(--ink); font-size: 9px; }
583
+ .test-scenario-rows { display: grid; }
584
+ .test-scenario-row { padding: 13px; border-bottom: 1px solid var(--line); }
585
+ .test-scenario-row:last-child { border-bottom: 0; }
586
+ .test-scenario-row > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
587
+ .test-scenario-row > header span { color: var(--blue); font: 8px/1.3 "SFMono-Regular", Consolas, monospace; text-transform: uppercase; }
588
+ .test-scenario-row > header h4 { margin: 3px 0 0; font-size: 12px; }
589
+ .test-scenario-row > header b { padding: 3px 6px; border: 1px solid currentColor; border-radius: 9px; color: var(--green); font-size: 8px; text-transform: uppercase; }
590
+ .test-scenario-row[data-status="blocked"] > header b, .test-scenario-row[data-status="hypothesis"] > header b { color: var(--amber); }
591
+ .test-scenario-row[data-status="superseded"] > header b { color: var(--muted); }
592
+ .test-scenario-join { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 10px; border: 1px solid var(--line); border-radius: 5px; }
593
+ .test-scenario-join > section { min-width: 0; padding: 9px 10px; border-right: 1px solid var(--line); }
594
+ .test-scenario-join > section:last-child { border-right: 0; }
595
+ .test-scenario-join > section > span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
596
+ .test-scenario-join code, .test-scenario-join section div > span, .test-scenario-join section div > strong, .test-scenario-join section div > small, .test-scenario-join section div > span > b, .test-scenario-join section div > span > small { display: block; overflow-wrap: anywhere; }
597
+ .test-scenario-join code { margin-top: 4px; color: var(--blue); font-size: 8px; }
598
+ .test-scenario-join b, .test-scenario-join strong { font-size: 9px; }
599
+ .test-scenario-join small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.4; }
600
+ .test-scenario-row > p { margin: 9px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
601
+ .test-scenario-row > p strong { color: var(--ink); }
602
+ .test-scenario-gaps ul { margin: 0; padding: 0; list-style: none; }
603
+ .test-scenario-gaps li { display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; gap: 10px; padding: 10px 13px; border-bottom: 1px solid var(--line); font-size: 9px; }
604
+ .test-scenario-gaps li:last-child { border-bottom: 0; }
605
+ .test-scenario-gaps li strong { color: var(--amber); font-family: "SFMono-Regular", Consolas, monospace; }
606
+ .test-scenario-gaps li b { color: var(--muted); text-transform: uppercase; }
607
+ .test-scenario-empty { grid-column: 1 / -1; margin: 0; padding: 13px; color: var(--muted); font-size: 9px; }
608
+ .test-scenario-boundary { margin: 0; padding: 10px 12px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: #244f71; font-size: 8px; line-height: 1.5; }
609
+ .live-pill { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 11px; background: var(--green-soft); color: var(--green); font-size: 10px; font-weight: 750; }
610
+ .phase-list, .material-list, .activity-list { display: grid; }
611
+ .phase-row { display: grid; grid-template-columns: 30px 12px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 54px; border-bottom: 1px solid var(--line); }
612
+ .phase-number { color: var(--muted); font-size: 9px; font-variant-numeric: tabular-nums; }
613
+ .phase-row > i { width: 10px; height: 10px; border: 2px solid var(--line-strong); border-radius: 50%; background: var(--surface); }
614
+ .phase-row.phase-completed > i { border-color: var(--green); background: var(--green); }
615
+ .phase-row.phase-active > i, .phase-row.phase-running > i { border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-soft); }
616
+ .phase-row.phase-blocked > i, .phase-row.phase-failed > i { border-color: var(--red); background: var(--red); }
617
+ .phase-row strong { display: block; font-size: 12px; }
618
+ .phase-row small { color: var(--muted); font-size: 10px; }
619
+ .phase-row > b { color: var(--muted); font-size: 9px; text-transform: uppercase; }
620
+ .material-row { display: grid; grid-template-columns: 95px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 13px 0; border-bottom: 1px solid var(--line); }
621
+ .material-row > span, .material-row > b { color: var(--muted); font-size: 9px; font-weight: 750; text-transform: uppercase; }
622
+ .material-row strong, .material-row code { display: block; }
623
+ .material-row strong { font-size: 12px; }
624
+ .material-row code { margin-top: 5px; overflow-wrap: anywhere; color: var(--muted); font: 10px/1.5 "SFMono-Regular", Consolas, monospace; }
625
+ .activity-row { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--line); }
626
+ .activity-row > i { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--green); }
627
+ .activity-row.needs-human > i { background: var(--amber); }
628
+ .activity-row header { display: flex; justify-content: space-between; }
629
+ .activity-row header span, .activity-row small { color: var(--muted); font-size: 9px; }
630
+ .activity-row p { margin: 6px 0; line-height: 1.5; }
631
+ .activity-row pre { max-height: 200px; overflow: auto; padding: 10px; background: var(--surface-2); font-size: 10px; white-space: pre-wrap; }
632
+ .detail-empty { padding: 50px 20px; border: 1px dashed var(--line-strong); color: var(--muted); text-align: center; }
633
+ .detail-empty strong { color: var(--ink); }
634
+ .prototype-view { display: grid; grid-template-rows: auto minmax(420px, 1fr) auto; gap: 14px; min-height: calc(100dvh - 220px); }
635
+ .prototype-view > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
636
+ .prototype-view h3 { margin: 0 0 5px; font-size: 16px; }
637
+ .prototype-view code { color: var(--muted); font: 10px/1.4 "SFMono-Regular", Consolas, monospace; }
638
+ .prototype-view a { padding: 7px 10px; border: 1px solid var(--line); border-radius: 5px; color: var(--green); font-size: 10px; font-weight: 750; text-decoration: none; white-space: nowrap; }
639
+ .prototype-view iframe { width: 100%; height: 100%; min-height: 420px; border: 1px solid var(--line); background: white; }
640
+ .prototype-variants { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; color: var(--muted); font-size: 10px; }
641
+ .prototype-variants span { padding: 5px 8px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 4px; }
642
+ .markdown-body { max-width: 70ch; margin: 0 auto; color: #29342e; font-size: 14px; line-height: 1.7; }
643
+ .markdown-body h2 { margin: 1.7em 0 .55em; color: var(--ink); font-size: 22px; line-height: 1.25; }
644
+ .markdown-body h3 { margin: 1.5em 0 .5em; color: var(--ink); font-size: 16px; }
645
+ .markdown-body h4 { margin: 1.25em 0 .4em; font-size: 14px; }
646
+ .markdown-body p, .markdown-body li { margin: .55em 0; }
647
+ .markdown-body code { padding: 2px 4px; border-radius: 3px; background: var(--canvas); font-family: "SFMono-Regular", Consolas, monospace; font-size: .88em; }
648
+ .markdown-body a { color: var(--green); }
649
+
650
+ .guided-view { display: grid; grid-template-columns: 230px minmax(440px, 1fr) 300px; min-height: 0; background: var(--surface-2); }
651
+ .guided-rail, .guided-outline { min-height: 0; overflow-y: auto; padding: 22px 15px; background: var(--surface); }
652
+ .guided-rail { border-right: 1px solid var(--line); }
653
+ .guided-rail h2, .guided-outline h2 { margin: 0; font-size: 17px; letter-spacing: -.02em; }
654
+ .guided-rail > p, .guided-outline > p { margin: 6px 0 18px; color: var(--muted); font-size: 11px; line-height: 1.55; }
655
+ .guided-progress { display: block; width: 100%; height: 4px; overflow: hidden; margin-bottom: 18px; border: 0; border-radius: 4px; appearance: none; background: var(--canvas); }
656
+ .guided-sections { display: grid; gap: 3px; }
657
+ .guided-section { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; min-height: 45px; padding: 6px 8px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); cursor: pointer; text-align: left; }
658
+ .guided-section:hover { background: var(--surface-2); color: var(--ink); }
659
+ .guided-section b { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--surface); font-size: 9px; }
660
+ .guided-section strong, .guided-section small { display: block; }
661
+ .guided-section strong { font-size: 11px; }
662
+ .guided-section small { margin-top: 1px; font-size: 9px; font-weight: 500; }
663
+ .guided-section em { font-size: 11px; font-style: normal; }
664
+ .guided-section.done b { border-color: var(--green); background: var(--green); color: white; }
665
+ .guided-section.active { background: var(--green-soft); color: #12573f; }
666
+ .guided-section.active b { border-color: var(--green); color: var(--green); }
667
+ .guided-section.active.done b { color: white; }
668
+
669
+ .guided-workspace { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
670
+ .guided-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 72px; padding: 10px 28px; border-bottom: 1px solid var(--line); background: var(--surface-2); }
671
+ .guided-heading h2 { margin: 0; font-size: 15px; }
672
+ .guided-heading p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
673
+ .guided-step-count { color: var(--muted); font: 10px/1.3 "SFMono-Regular", Consolas, monospace; white-space: nowrap; }
674
+ .guided-content { min-height: 0; overflow-y: auto; padding: 30px clamp(22px, 4vw, 56px); }
675
+ .guided-empty, .guided-completed { display: grid; place-items: center; align-content: center; min-height: 100%; color: var(--muted); text-align: center; }
676
+ .guided-empty strong, .guided-completed h3 { color: var(--ink); }
677
+ .guided-empty p, .guided-completed p { max-width: 52ch; margin: 7px 0 0; line-height: 1.55; }
678
+ .guided-completed i { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 18px; border-radius: 50%; background: var(--green); color: white; font-size: 24px; font-style: normal; }
679
+ .guided-completed h3 { max-width: 650px; margin: 10px 0 0; font-size: 26px; }
680
+ .guided-completed .primary-action { margin-top: 20px; }
681
+ .guided-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 70px; padding: 10px 28px; border-top: 1px solid var(--line); background: var(--surface); }
682
+ .guided-actions > span { color: var(--muted); font-size: 10px; }
683
+ .guided-actions > div { display: flex; gap: 8px; }
684
+
685
+ .guided-personas { max-width: 820px; margin: 0 auto 24px; padding: 14px; border: 1px solid #c5d4cc; border-radius: 8px; background: #f2f8f5; }
686
+ .guided-personas > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 11px; }
687
+ .guided-personas h3 { margin: 0; font-size: 12px; }
688
+ .guided-personas header p { margin: 2px 0 0; color: var(--muted); font-size: 9px; }
689
+ .guided-persona-status { display: flex; align-items: center; gap: 6px; color: #12573f; font-size: 9px; font-weight: 800; white-space: nowrap; }
690
+ .guided-persona-status i { width: 6px; height: 6px; border-radius: 50%; background: #29a36a; box-shadow: 0 0 0 3px rgb(41 163 106 / 14%); }
691
+ .guided-persona-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
692
+ .guided-persona { min-width: 0; padding: 10px; border: 1px solid #d4dfd9; border-radius: 6px; background: var(--surface); }
693
+ .guided-persona > div { display: flex; align-items: center; gap: 7px; }
694
+ .guided-persona-avatar { display: grid; flex: 0 0 auto; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--green-soft); color: #12573f; font-size: 9px; font-weight: 900; }
695
+ .guided-persona > div p { min-width: 0; margin: 0; }
696
+ .guided-persona strong { display: block; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
697
+ .guided-persona > div p span { display: block; margin-top: 2px; color: var(--blue); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
698
+ .guided-persona[data-tier="premium"] > div p span { color: #7753a6; }
699
+ .guided-persona[data-tier="project"] > div p span { color: var(--amber); }
700
+ .guided-persona > p { margin: 7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
701
+ .guided-no-personas { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 10px; }
702
+
703
+ .evidence-depth-panel { max-width: 980px; margin: 0 auto 24px; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); }
704
+ .evidence-depth-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; cursor: pointer; list-style: none; background: #f7f9f8; }
705
+ .evidence-depth-panel > summary::-webkit-details-marker { display: none; }
706
+ .evidence-depth-panel > summary span, .evidence-depth-panel > summary b, .evidence-depth-panel > summary small { display: block; }
707
+ .evidence-depth-panel > summary b { font-size: 12px; }
708
+ .evidence-depth-panel > summary small { margin-top: 2px; color: var(--muted); font-size: 9px; }
709
+ .evidence-depth-panel > summary em { padding: 4px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-style: normal; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
710
+ .evidence-depth-panel > summary em[data-status="source-map-stale"], .evidence-depth-panel > summary em[data-status="source-map-missing"] { background: var(--amber-soft); color: #6f4b19; }
711
+ .evidence-depth-empty { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px; padding: 18px; border-top: 1px solid var(--line); }
712
+ .evidence-depth-empty h3 { margin: 3px 0 6px; font-size: 17px; }
713
+ .evidence-depth-empty p { max-width: 70ch; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
714
+ .evidence-depth-empty code { grid-column: 1 / -1; padding: 9px; background: var(--canvas); font-size: 9px; overflow-wrap: anywhere; }
715
+ .evidence-depth-design-notice { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 8px 16px; border-block: 1px solid #e4cfaa; background: var(--amber-soft); color: #6f4b19; font-size: 8px; }
716
+ .evidence-depth-design-notice span { text-align: right; }
717
+ .evidence-depth-notice { margin: 0; padding: 10px 16px; border-bottom: 1px solid var(--line); background: var(--blue-soft); color: #36576d; font-size: 9px; }
718
+ .evidence-depth-review > header, .evidence-depth-gaps > header, .evidence-depth-compare > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 16px; }
719
+ .evidence-depth-review h3, .evidence-depth-gaps h3, .evidence-depth-questions h3, .evidence-depth-compare h3 { margin: 3px 0 0; font-size: 15px; }
720
+ .evidence-depth-review label, .evidence-depth-gaps label, .evidence-depth-compare label { display: grid; gap: 4px; color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
721
+ .evidence-depth-review input, .evidence-depth-review select, .evidence-depth-gaps input, .evidence-depth-gaps select, .evidence-depth-compare select { min-height: 34px; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--surface); color: var(--ink); font-size: 10px; text-transform: none; }
722
+ .evidence-depth-review input:focus, .evidence-depth-review select:focus, .evidence-depth-gaps input:focus, .evidence-depth-gaps select:focus, .evidence-depth-compare select:focus { border-color: var(--green); outline: 3px solid rgb(23 107 77 / 10%); }
723
+ .evidence-depth-ledger { border-block: 1px solid var(--line); }
724
+ .evidence-depth-ledger-head { display: grid; grid-template-columns: 1.1fr .85fr .75fr 1.2fr; gap: 10px; padding: 8px 14px; background: var(--canvas); color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
725
+ .evidence-depth-row { display: grid; grid-template-columns: 1.1fr .85fr .75fr 1.2fr; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--line); }
726
+ .evidence-depth-row:first-of-type { border-top: 0; }
727
+ .evidence-depth-row > div { min-width: 0; }
728
+ .evidence-depth-row > div > strong { display: block; font-size: 11px; text-transform: capitalize; }
729
+ .evidence-depth-row small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.4; }
730
+ .evidence-depth-row [data-coverage] { display: inline-block; color: #12573f; font-size: 9px; text-transform: capitalize; }
731
+ .evidence-depth-row [data-coverage="owner-evidence-required"], .evidence-depth-row [data-coverage="partial"], .evidence-depth-row [data-coverage="contradictory"] { color: #9b5f12; }
732
+ .evidence-depth-level { display: inline-block; padding: 4px 7px; border-radius: 999px; background: var(--blue-soft); color: #36576d; font-size: 8px; font-weight: 850; text-transform: uppercase; }
733
+ .evidence-depth-row > div:nth-child(4) { display: grid; grid-template-columns: .72fr 1.28fr; gap: 6px; }
734
+ .evidence-depth-row-personas { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding-top: 6px; border-top: 1px dashed var(--line); }
735
+ .evidence-depth-row-personas > span { margin-right: 3px; color: var(--muted); font-size: 8px; font-weight: 750; text-transform: uppercase; }
736
+ .evidence-depth-row-personas b { padding: 3px 6px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-weight: 750; }
737
+ .evidence-depth-row-personas b[data-tier="premium"] { background: #f1ebf8; color: #68488f; }
738
+ .evidence-depth-row-personas b[data-tier="project"] { background: var(--amber-soft); color: #6f4b19; }
739
+ .evidence-depth-gaps, .evidence-depth-questions, .evidence-depth-compare { border-top: 1px solid var(--line); }
740
+ .evidence-depth-gaps > article { display: grid; grid-template-columns: minmax(0, 1fr) 190px 110px; align-items: center; gap: 10px; padding: 10px 16px; border-top: 1px solid var(--line); }
741
+ .evidence-depth-gaps article strong, .evidence-depth-gaps article span, .evidence-depth-gaps article small { display: block; }
742
+ .evidence-depth-gaps article strong { font: 9px/1.4 "SFMono-Regular", Consolas, monospace; }
743
+ .evidence-depth-gaps article span { margin-top: 2px; font-size: 9px; }
744
+ .evidence-depth-gaps article small { margin-top: 2px; color: var(--muted); font-size: 8px; }
745
+ .evidence-depth-gaps > p, .evidence-depth-questions > p { margin: 0; padding: 12px 16px; color: var(--muted); font-size: 9px; }
746
+ .evidence-depth-questions { padding: 16px; }
747
+ .evidence-depth-questions > article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .7fr); gap: 12px; margin-top: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 6px; }
748
+ .evidence-depth-questions article strong { font-size: 9px; text-transform: uppercase; }
749
+ .evidence-depth-questions article p { margin: 4px 0; font-size: 10px; line-height: 1.5; }
750
+ .evidence-depth-questions article small { color: var(--muted); font-size: 8px; }
751
+ .evidence-depth-questions aside { display: grid; gap: 5px; }
752
+ .evidence-depth-persona { padding: 7px; border-left: 3px solid var(--green); background: var(--green-soft); }
753
+ .evidence-depth-persona strong, .evidence-depth-persona span { display: inline; font-size: 8px; }
754
+ .evidence-depth-persona span { margin-left: 5px; color: #12573f; text-transform: uppercase; }
755
+ .evidence-depth-persona p { margin: 3px 0 0 !important; color: #405763; font-size: 8px !important; }
756
+ .evidence-depth-review > footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border-top: 1px solid var(--line); background: #f7f9f8; }
757
+ .evidence-depth-review > footer p { max-width: 66ch; margin: 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
758
+ .evidence-depth-review > footer div { display: flex; gap: 7px; }
759
+ .evidence-depth-compare > header > div:last-child { display: flex; align-items: end; gap: 7px; }
760
+ .evidence-depth-comparison { display: grid; grid-template-columns: 1.35fr repeat(7, 1fr); align-items: center; gap: 6px; padding: 10px 16px; border-top: 1px solid var(--line); background: var(--green-soft); }
761
+ .evidence-depth-comparison[data-reproducible="false"] { background: var(--amber-soft); }
762
+ .evidence-depth-comparison > strong { font-size: 9px; }
763
+ .evidence-depth-comparison span { color: var(--muted); font-size: 8px; text-align: center; }
764
+ .evidence-depth-comparison span b { display: block; color: var(--ink); text-transform: capitalize; }
765
+
766
+ .guided-question-card, .guided-review { max-width: 820px; margin: 0 auto; }
767
+ .guided-question-number { display: flex; align-items: center; gap: 10px; color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
768
+ .guided-question-number::after { width: 44px; height: 1px; background: var(--blue); content: ""; }
769
+ .guided-question-card > h3, .guided-review > h3 { max-width: 760px; margin: 16px 0 9px; font-size: clamp(25px, 3vw, 40px); line-height: 1.08; letter-spacing: -.04em; }
770
+ .guided-question-card > p, .guided-review > p { max-width: 680px; margin: 0 0 22px; color: var(--muted); font-size: 13px; line-height: 1.6; }
771
+ .guided-answer-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(230px, .85fr); gap: 16px; align-items: stretch; }
772
+ .guided-answer-field, .guided-evidence-margin { padding: 16px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
773
+ .guided-answer-field label { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; font-size: 11px; font-weight: 800; }
774
+ .guided-answer-field label span { color: var(--amber); font-size: 8px; letter-spacing: .06em; text-transform: uppercase; }
775
+ .guided-answer-field input, .guided-answer-field select, .guided-answer-field textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid var(--line-strong); border-radius: 5px; outline: none; background: #fbfcfc; color: var(--ink); line-height: 1.5; }
776
+ .guided-answer-field input, .guided-answer-field select { min-height: 42px; }
777
+ .guided-answer-field textarea { resize: vertical; }
778
+ .guided-answer-field input:focus, .guided-answer-field select:focus, .guided-answer-field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgb(23 107 77 / 10%); }
779
+ .guided-answer-field > small { display: block; margin-top: 8px; color: var(--muted); font-size: 9px; }
780
+ .guided-answer-field.has-error { border-color: #d2a4a4; }
781
+ .guided-field-error { margin: 8px 0 0; color: var(--red); font-size: 10px; }
782
+ .guided-blueprint-picker { display: grid; gap: 12px; }
783
+ .guided-blueprint-empty { padding: 13px; border: 1px dashed var(--line-strong); border-radius: 6px; background: var(--surface-2); }
784
+ .guided-blueprint-empty strong { font-size: 11px; }
785
+ .guided-blueprint-empty p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
786
+ .guided-blueprint-unavailable { padding: 11px 13px; border-left: 3px solid var(--amber); background: var(--amber-soft); color: #6f4b19; }
787
+ .guided-blueprint-unavailable strong { font-size: 10px; }
788
+ .guided-blueprint-unavailable p { margin: 4px 0 0; font-size: 9px; line-height: 1.45; }
789
+ .guided-blueprint-unavailable code { color: inherit; font-size: 8px; }
790
+ .guided-blueprint-summary { overflow: hidden; border: 1px solid #c5d4cc; border-radius: 7px; background: #f7faf8; }
791
+ .guided-blueprint-summary > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 14px; border-bottom: 1px solid #d4dfd9; }
792
+ .guided-blueprint-summary h4 { margin: 3px 0; font-size: 14px; }
793
+ .guided-blueprint-summary header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
794
+ .guided-blueprint-summary header code { display: block; margin-top: 5px; color: #405763; font-size: 8px; overflow-wrap: anywhere; }
795
+ .guided-blueprint-compatible { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
796
+ .guided-blueprint-compatible.unavailable { background: var(--amber-soft); color: #6f4b19; }
797
+ .guided-blueprint-incompatible { margin: 0; padding: 10px 14px; border-bottom: 1px solid #e4cfaa; background: var(--amber-soft); color: #6f4b19; font-size: 9px; line-height: 1.45; }
798
+ .guided-blueprint-dependencies { margin: 0; padding: 9px 14px; border-bottom: 1px solid #d4dfd9; color: var(--muted); font-size: 9px; }
799
+ .guided-blueprint-dependencies code { color: var(--ink); font-size: 8px; }
800
+ .guided-blueprint-modules { display: grid; gap: 0; }
801
+ .guided-blueprint-module { display: grid !important; grid-template-columns: auto minmax(0, 1fr); align-items: flex-start !important; justify-content: initial !important; gap: 10px !important; margin: 0 !important; padding: 12px 14px; border-bottom: 1px solid #dfe7e2; cursor: pointer; }
802
+ .guided-blueprint-module:last-child { border-bottom: 0; }
803
+ .guided-blueprint-module:hover { background: #f0f7f3; }
804
+ .guided-blueprint-module input { width: 15px !important; min-height: 15px !important; margin: 2px 0 0; accent-color: var(--green); }
805
+ .guided-blueprint-module span { color: inherit !important; font-size: inherit !important; letter-spacing: normal !important; text-transform: none !important; }
806
+ .guided-blueprint-module strong, .guided-blueprint-module small { display: block; }
807
+ .guided-blueprint-module strong { font-size: 10px; }
808
+ .guided-blueprint-module small { margin-top: 2px; color: #12573f; font-size: 8px; font-weight: 750; }
809
+ .guided-blueprint-module p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
810
+ .guided-blueprint-module.required { cursor: default; }
811
+ .guided-blueprint-module.required:hover { background: transparent; }
812
+ .guided-blueprint-impact { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d4dfd9; background: var(--surface); }
813
+ .guided-blueprint-impact span { padding: 10px; color: var(--muted); font-size: 8px; text-align: center; text-transform: uppercase; }
814
+ .guided-blueprint-impact strong { display: block; margin-bottom: 2px; color: var(--ink); font-size: 15px; }
815
+ .guided-blueprint-boundary { margin: 0; padding: 10px 14px; border-top: 1px solid #d4dfd9; color: #405763; font-size: 9px; line-height: 1.5; }
816
+ .guided-evidence-margin { position: relative; overflow: hidden; border-color: #b8cddd; background: var(--blue-soft); }
817
+ .guided-evidence-margin::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--blue); content: ""; }
818
+ .guided-evidence-margin h4 { margin: 0 0 10px; color: var(--blue); font-size: 11px; }
819
+ .guided-evidence-margin p { margin: 0 0 12px; color: #405763; font-size: 10px; line-height: 1.5; }
820
+ .guided-evidence-margin code { display: block; margin: 5px 0 14px; color: #36576d; font: 9px/1.45 "SFMono-Regular", Consolas, monospace; overflow-wrap: anywhere; }
821
+ .guided-evidence-margin strong { display: block; margin-bottom: 5px; color: #36576d; font-size: 9px; text-transform: uppercase; }
822
+ .guided-error { max-width: 820px; margin: 0 auto 18px; padding: 12px 14px; border-left: 4px solid var(--red); background: var(--red-soft); color: #762828; }
823
+ .guided-error strong { font-size: 11px; }
824
+ .guided-error p { margin: 4px 0 0; font-size: 10px; line-height: 1.5; }
825
+
826
+ .guided-outline { border-left: 1px solid var(--line); }
827
+ .guided-thesis { padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); }
828
+ .guided-thesis blockquote { margin: 9px 0 0; font: 600 17px/1.35 Georgia, "Times New Roman", serif; letter-spacing: -.015em; }
829
+ .guided-outline-section { padding: 14px 1px; border-bottom: 1px solid var(--line); }
830
+ .guided-outline-section header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
831
+ .guided-outline-section h3 { margin: 0; font-size: 11px; }
832
+ .guided-outline-section header span { color: var(--green); font-size: 9px; font-weight: 800; }
833
+ .guided-outline-section p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
834
+ .guided-review-note { margin-top: 17px; padding: 12px; border: 1px solid #dfc28e; border-radius: 6px; background: var(--amber-soft); color: #6f4b19; font-size: 10px; line-height: 1.5; }
835
+ .guided-review-note strong { display: block; margin-bottom: 3px; }
836
+
837
+ .guided-review-section { margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
838
+ .guided-review-section h4 { margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--line); background: var(--surface-2); font-size: 12px; }
839
+ .guided-review-section > div { display: grid; grid-template-columns: minmax(130px, .4fr) minmax(0, 1fr); gap: 14px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
840
+ .guided-review-section > div:last-child { border-bottom: 0; }
841
+ .guided-review-section > div > span { color: var(--muted); font-size: 9px; font-weight: 750; text-transform: uppercase; }
842
+ .guided-review-section > div > p { margin: 0; font-size: 11px; line-height: 1.5; }
843
+ .guided-blueprint-review code { font-size: 8px; overflow-wrap: anywhere; }
844
+ .guided-blueprint-review small { color: var(--muted); font-size: 9px; }
845
+ .guided-destinations > div { grid-template-columns: minmax(0, 1fr) auto; }
846
+ .guided-destinations code { overflow-wrap: anywhere; font-size: 10px; }
847
+ .guided-destinations > p { padding: 14px; color: var(--muted); font-size: 11px; }
848
+ .guided-approval-panel { margin-top: 20px; padding: 18px; border: 1px solid var(--line-strong); border-radius: 7px; background: var(--surface); }
849
+ .guided-approval-panel h4 { margin: 0; font-size: 16px; }
850
+ .guided-approval-panel > p { margin: 6px 0 15px; color: var(--muted); font-size: 10px; line-height: 1.5; }
851
+ .guided-approval-panel > label:not(.guided-confirm) { display: grid; gap: 5px; }
852
+ .guided-approval-panel > label > span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
853
+ .guided-approval-panel input[type="text"] { width: 100%; min-height: 42px; padding: 0 11px; border: 1px solid var(--line); border-radius: 5px; }
854
+ .guided-confirm { display: flex; align-items: flex-start; gap: 9px; margin: 13px 0; }
855
+ .guided-confirm input { margin-top: 2px; accent-color: var(--green); }
856
+ .guided-confirm span { line-height: 1.45; letter-spacing: 0 !important; text-transform: none !important; }
857
+ .guided-accepted-blueprint { display: grid; gap: 5px; min-width: min(460px, 100%); margin-top: 16px; padding: 13px; border: 1px solid #c5d4cc; border-radius: 7px; background: #f2f8f5; color: #12573f; }
858
+ .guided-accepted-blueprint strong { font-size: 12px; }
859
+ .guided-accepted-blueprint code { color: #405763; font-size: 8px; overflow-wrap: anywhere; }
860
+ .guided-accepted-blueprint span { font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
861
+
862
+ .intent-studio-view { display: grid; grid-template-columns: 230px minmax(0, 1fr) 280px; min-width: 0; min-height: 0; overflow: hidden; background: var(--canvas); }
863
+ .intent-studio-spine, .intent-studio-persona-rail { min-width: 0; overflow-y: auto; padding: 20px 18px; background: var(--surface); }
864
+ .intent-studio-spine { border-right: 1px solid var(--line); }
865
+ .intent-studio-persona-rail { border-left: 1px solid var(--line); }
866
+ .intent-studio-spine h2, .intent-studio-persona-rail h2 { margin: 4px 0 8px; font-size: 18px; }
867
+ .intent-studio-spine > p, .intent-studio-persona-rail > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
868
+ .intent-studio-spine progress { width: 100%; height: 6px; margin: 18px 0 14px; border: 0; border-radius: 999px; background: var(--surface-2); accent-color: var(--green); }
869
+ .intent-studio-spine nav { display: grid; gap: 3px; }
870
+ .intent-studio-spine nav button { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 9px; width: 100%; padding: 8px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
871
+ .intent-studio-spine nav button:hover, .intent-studio-spine nav button:focus-visible { border-color: var(--line); background: var(--surface-2); outline: 0; }
872
+ .intent-studio-spine nav button.active { border-color: #b8cddd; background: var(--blue-soft); }
873
+ .intent-studio-spine nav button b { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: 8px; }
874
+ .intent-studio-spine nav button.done b { border-color: #b8d9ca; background: var(--green-soft); color: var(--green); }
875
+ .intent-studio-spine nav button span { min-width: 0; }
876
+ .intent-studio-spine nav button strong, .intent-studio-spine nav button small { display: block; }
877
+ .intent-studio-spine nav button strong { font-size: 10px; }
878
+ .intent-studio-spine nav button small { margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
879
+
880
+ .intent-studio-canvas { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; min-width: 0; min-height: 0; overflow: hidden; }
881
+ .intent-studio-canvas > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 16px 22px; border-bottom: 1px solid var(--line); background: var(--surface); }
882
+ .intent-studio-canvas > header h2 { max-width: 760px; margin: 4px 0 5px; font-size: 19px; }
883
+ .intent-studio-canvas > header p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
884
+ .intent-studio-revision { flex: 0 0 auto; padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
885
+ .intent-studio-notice { padding: 9px 22px; border-bottom: 1px solid #d9c99f; background: var(--amber-soft); color: #6f4b19; font-size: 10px; }
886
+ .intent-studio-notice.error { border-color: #e3b6b6; background: var(--red-soft); color: #762828; }
887
+ .intent-studio-content { min-width: 0; min-height: 0; overflow-y: auto; padding: 24px; }
888
+ .intent-studio-card { width: min(840px, 100%); margin: 0 auto; padding: 22px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
889
+ .intent-studio-question { margin-bottom: 19px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
890
+ .intent-studio-question p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
891
+ .intent-studio-field { display: grid; gap: 6px; min-width: 0; }
892
+ .intent-studio-field > span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
893
+ .intent-studio-field input, .intent-studio-field textarea, .intent-studio-field select, .intent-studio-reconcile select { width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); font: inherit; }
894
+ .intent-studio-field input, .intent-studio-field select, .intent-studio-reconcile select { min-height: 40px; padding: 0 10px; }
895
+ .intent-studio-field textarea { padding: 10px; resize: vertical; line-height: 1.55; }
896
+ .intent-studio-field input:focus, .intent-studio-field textarea:focus, .intent-studio-field select:focus, .intent-studio-reconcile select:focus { border-color: var(--green); outline: 2px solid rgb(23 107 77 / 11%); }
897
+ .intent-studio-field small { color: var(--muted); font-size: 9px; line-height: 1.45; }
898
+ .intent-studio-field em { color: var(--red); font-size: 9px; font-style: normal; }
899
+ .intent-studio-field.has-error input, .intent-studio-field.has-error textarea { border-color: #cc8686; }
900
+ .intent-studio-identity-grid, .intent-studio-shape-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
901
+ .intent-studio-identity-grid .intent-studio-field:last-child, .intent-studio-wide { grid-column: 1 / -1; }
902
+ .intent-studio-mode { display: flex; gap: 6px; margin-bottom: 18px; padding: 4px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
903
+ .intent-studio-mode button { flex: 1; min-height: 35px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 9px; font-weight: 800; cursor: pointer; }
904
+ .intent-studio-mode button.active { background: var(--surface); color: var(--green); box-shadow: 0 1px 3px rgb(23 33 28 / 9%); }
905
+ .intent-studio-reconcile { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; margin-bottom: 18px; padding: 13px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
906
+ .intent-studio-reconcile label { display: grid; gap: 5px; }
907
+ .intent-studio-reconcile label span { color: #36576d; font-size: 9px; font-weight: 800; text-transform: uppercase; }
908
+ .intent-studio-reconcile p { grid-column: 1 / -1; margin: 0; color: #405763; font-size: 9px; line-height: 1.5; }
909
+ .intent-studio-types { margin: 10px 0 0; color: var(--muted); font-size: 9px; }
910
+ .intent-studio-canvas > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 22px; border-top: 1px solid var(--line); background: var(--surface); }
911
+ .intent-studio-canvas > footer > div { display: flex; gap: 7px; }
912
+
913
+ .intent-studio-persona-rail #intentStudioPersonas { display: grid; gap: 8px; margin-top: 16px; }
914
+ .intent-studio-persona-rail #intentStudioPersonas article { padding: 11px; border-left: 3px solid var(--blue); background: var(--surface-2); }
915
+ .intent-studio-persona-rail #intentStudioPersonas article[data-tier="project"] { border-left-color: var(--green); }
916
+ .intent-studio-persona-rail #intentStudioPersonas article[data-tier="premium"] { border-left-color: #b9862b; }
917
+ .intent-studio-persona-rail #intentStudioPersonas header { display: flex; justify-content: space-between; gap: 8px; }
918
+ .intent-studio-persona-rail #intentStudioPersonas header strong { font-size: 10px; }
919
+ .intent-studio-persona-rail #intentStudioPersonas header span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
920
+ .intent-studio-persona-rail #intentStudioPersonas p { margin: 6px 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
921
+ .intent-studio-persona-rail #intentStudioPersonas small { color: var(--blue); font-size: 8px; }
922
+ .intent-studio-baseline { margin-top: 16px; padding: 12px; border: 1px solid #b8d9ca; background: var(--green-soft); }
923
+ .intent-studio-baseline strong { color: var(--green); font-size: 10px; }
924
+ .intent-studio-baseline p, .intent-studio-baseline small { display: block; margin: 5px 0 0; color: #405763; font-size: 9px; line-height: 1.5; }
925
+ .intent-studio-advisory { margin-top: 14px !important; padding-top: 12px; border-top: 1px solid var(--line); }
926
+
927
+ .intent-studio-review { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr); gap: 16px; }
928
+ .intent-studio-review-summary, .intent-studio-review-panel > div { padding: 15px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
929
+ .intent-studio-review-summary h3 { margin: 5px 0; font-size: 18px; }
930
+ .intent-studio-review-summary > code { display: block; margin-bottom: 12px; color: var(--green); font-size: 9px; }
931
+ .intent-studio-review-summary > div { padding: 9px 0; border-top: 1px solid var(--line); }
932
+ .intent-studio-review-summary > div strong { color: var(--muted); font-size: 8px; text-transform: uppercase; }
933
+ .intent-studio-review-summary > div p { margin: 4px 0 0; font-size: 10px; line-height: 1.45; }
934
+ .intent-studio-review-panel { display: grid; gap: 10px; }
935
+ .intent-studio-review-panel h3, .intent-studio-review-panel h4 { margin: 4px 0 7px; }
936
+ .intent-studio-review-panel p, .intent-studio-review-panel li { color: var(--muted); font-size: 10px; line-height: 1.5; }
937
+ .intent-studio-blockers ul { padding-left: 18px; }
938
+ .intent-studio-blockers li code { display: inline-block; margin-right: 7px; color: var(--red); }
939
+ .intent-studio-destinations code { display: block; margin-top: 6px; padding: 7px; background: var(--surface-2); font-size: 9px; overflow-wrap: anywhere; }
940
+ .intent-studio-changes article { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 8px; padding: 9px 0; border-top: 1px solid var(--line); }
941
+ .intent-studio-changes article > strong { grid-column: 1 / -1; font-size: 9px; text-transform: uppercase; }
942
+ .intent-studio-changes article span { min-width: 0; overflow-wrap: anywhere; color: var(--muted); font-size: 9px; }
943
+ .intent-studio-changes article small { display: block; margin-bottom: 3px; color: var(--ink); font-weight: 800; }
944
+ .intent-studio-approval { border-color: #b8d9ca !important; background: var(--green-soft) !important; }
945
+ .intent-studio-approval > label:not(.intent-studio-confirm) { display: grid; gap: 5px; }
946
+ .intent-studio-approval label span { font-size: 9px; font-weight: 750; }
947
+ .intent-studio-approval input[type="text"] { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 5px; }
948
+ .intent-studio-confirm { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; }
949
+ .intent-studio-confirm input { margin-top: 2px; accent-color: var(--green); }
950
+ .intent-studio-empty, .intent-studio-error, .intent-studio-completed { display: grid; width: min(620px, 100%); min-height: 240px; margin: 40px auto; place-items: center; align-content: center; gap: 8px; padding: 24px; border: 1px solid var(--line); background: var(--surface); text-align: center; }
951
+ .intent-studio-empty p, .intent-studio-error p, .intent-studio-completed p { max-width: 520px; margin: 0; color: var(--muted); line-height: 1.55; }
952
+ .intent-studio-empty.compact { min-height: 0; margin: 0; padding: 12px; }
953
+ .intent-studio-completed i { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); font-style: normal; font-weight: 900; }
954
+ .intent-studio-completed code { max-width: 100%; overflow-wrap: anywhere; font-size: 9px; }
955
+
956
+ @media (max-width: 390px) {
957
+ .intent-studio-view { grid-template-columns: minmax(0, 1fr); overflow-x: hidden; }
958
+ .intent-studio-canvas > header { gap: 8px; }
959
+ .intent-studio-canvas > header h2 { overflow-wrap: anywhere; font-size: 17px; }
960
+ .intent-studio-content { padding: 9px; }
961
+ .intent-studio-card,
962
+ .intent-studio-review-summary,
963
+ .intent-studio-review-panel > div { padding: 12px; }
964
+ .intent-studio-mode,
965
+ .intent-studio-canvas > footer > div { display: grid; grid-template-columns: 1fr; }
966
+ .intent-studio-changes article { grid-template-columns: minmax(0, 1fr); }
967
+ .intent-studio-changes article > strong { grid-column: auto; }
968
+ .intent-studio-changes article b { display: none; }
969
+ }
970
+
971
+ .action-dialog { width: min(620px, calc(100vw - 30px)); max-width: none; max-height: min(760px, calc(100dvh - 30px)); padding: 0; overflow: hidden; border: 0; border-radius: 8px; background: var(--surface); box-shadow: 0 24px 70px rgb(23 33 28 / 24%); }
972
+ .action-dialog::backdrop { background: rgb(23 33 28 / 48%); }
973
+ .action-sheet { display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; max-height: min(760px, calc(100dvh - 30px)); }
974
+ .action-sheet > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 17px; border-bottom: 1px solid var(--line); }
975
+ .action-sheet h2 { margin: 0; font-size: 21px; }
976
+ .action-sheet header p:last-child { margin: 6px 0 0; color: var(--muted); line-height: 1.45; }
977
+ .action-body { min-height: 0; overflow-y: auto; padding: 20px 24px; }
978
+ .action-sheet > footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 24px; border-top: 1px solid var(--line); background: var(--surface-2); }
979
+ .action-error { margin: 0 24px 12px; padding: 10px 12px; border-left: 3px solid var(--red); background: var(--red-soft); color: #762828; font-size: 11px; line-height: 1.5; }
980
+ .action-callout { padding: 15px; border-left: 4px solid var(--green); background: var(--green-soft); }
981
+ .action-callout.danger { border-left-color: var(--red); background: var(--red-soft); }
982
+ .action-callout strong { font-size: 12px; }
983
+ .action-callout p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
984
+ .action-field { display: grid; gap: 5px; margin-top: 14px; }
985
+ .action-field > span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
986
+ .action-field input, .action-field select, .action-field textarea { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); }
987
+ .action-field select, .action-field input { min-height: 38px; }
988
+ .action-field textarea { resize: vertical; line-height: 1.45; }
989
+ .action-field input:focus, .action-field select:focus, .action-field textarea:focus { border-color: var(--green); outline: 2px solid rgb(23 107 77 / 10%); }
990
+ .action-warning { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
991
+ .approval-evidence { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
992
+ .approval-evidence > strong { font-size: 11px; }
993
+ .approval-evidence > div { display: grid; gap: 5px; margin-top: 9px; }
994
+ .approval-evidence span { display: flex; justify-content: space-between; gap: 15px; padding: 7px 9px; background: var(--surface-2); font-size: 10px; font-weight: 700; }
995
+ .approval-evidence small { overflow: hidden; max-width: 58%; color: var(--muted); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
996
+ .afk-options { display: grid; grid-template-columns: minmax(140px, 1fr) minmax(130px, .8fr) minmax(130px, .8fr); gap: 10px; }
997
+ .afk-options .action-field { margin-top: 0; }
998
+ .field-suffix { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border: 1px solid var(--line); border-radius: 5px; }
999
+ .field-suffix input { border: 0; }
1000
+ .field-suffix span { padding-right: 9px; color: var(--muted); font-size: 9px; }
1001
+ .preflight-panel { margin-top: 16px; padding: 14px; border-left: 4px solid var(--line-strong); background: var(--surface-2); }
1002
+ .preflight-panel.ready { border-left-color: var(--green); background: var(--green-soft); }
1003
+ .preflight-panel.blocked { border-left-color: var(--red); background: var(--red-soft); }
1004
+ .preflight-panel strong { font-size: 12px; }
1005
+ .preflight-panel p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
1006
+ .preflight-panel ul { margin: 8px 0 0; padding-left: 18px; color: #762828; font-size: 10px; line-height: 1.55; }
1007
+ .repository-runway { display: grid; gap: 5px; margin-top: 10px; }
1008
+ .repository-runway span { display: flex; justify-content: space-between; gap: 12px; padding: 7px 9px; border: 1px solid var(--line); font-size: 10px; }
1009
+ .repository-runway small { color: var(--muted); }
1010
+
1011
+ .hooks-view { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(320px, .7fr); grid-template-rows: auto auto auto minmax(0, 1fr); gap: 12px; overflow: hidden; padding: 18px; background: var(--canvas); }
1012
+ .hooks-heading, .hooks-register, .hooks-notice { grid-column: 1 / -1; }
1013
+ .hooks-heading, .hooks-register > header, .hooks-ledger-heading, .hook-detail > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
1014
+ .hooks-heading h2 { margin: 0; font-size: 26px; }
1015
+ .hooks-heading p, .hooks-register > header p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
1016
+ .hooks-summary { display: flex; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
1017
+ .hooks-summary span { display: grid; min-width: 98px; padding: 9px 12px; border-right: 1px solid var(--line); color: var(--muted); font-size: 9px; text-align: center; text-transform: uppercase; }
1018
+ .hooks-summary span:last-child { border-right: 0; }
1019
+ .hooks-summary strong { color: var(--ink); font-size: 17px; font-variant-numeric: tabular-nums; }
1020
+ .hooks-summary .attention strong { color: var(--red); }
1021
+ .hooks-notice { padding: 9px 12px; border-left: 3px solid var(--green); background: var(--green-soft); color: #12573f; font-size: 11px; }
1022
+ .hooks-notice.error { border-color: var(--red); background: var(--red-soft); color: #762828; }
1023
+ .hooks-register { padding: 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
1024
+ .hooks-register h3, .hooks-ledger h3, .hook-detail h3 { margin: 0; font-size: 15px; }
1025
+ .hooks-register > header p { max-width: 54ch; text-align: right; }
1026
+ .hook-handlers { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 8px; margin-top: 11px; }
1027
+ .hook-handler-card { min-width: 0; padding: 12px; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: 5px; background: var(--surface-2); }
1028
+ .hook-handler-card > header, .hook-handler-card > header > div, .hook-subscription, .hook-subscription > span { display: flex; align-items: center; gap: 8px; }
1029
+ .hook-handler-card > header { justify-content: space-between; }
1030
+ .hook-handler-card code, .hook-ledger-row code, .hook-detail code { overflow-wrap: anywhere; color: #405763; font: 9px/1.45 "SFMono-Regular", Consolas, monospace; }
1031
+ .hook-handler-card > p { margin: 7px 0 4px; color: var(--muted); font-size: 10px; }
1032
+ .hook-digest { color: var(--green); font-size: 9px; font-weight: 800; text-transform: uppercase; }
1033
+ .hook-digest-value { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
1034
+ .hook-subscription { justify-content: space-between; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line); }
1035
+ .hook-subscription > span { flex-wrap: wrap; }
1036
+ .hook-subscription b { color: var(--green); font-size: 9px; text-transform: uppercase; }
1037
+ .hook-subscription.disabled b { color: var(--amber); }
1038
+ .hook-subscription small { color: var(--muted); font-size: 9px; }
1039
+ .hook-subscription button { min-height: 30px; font-size: 9px; }
1040
+ .hooks-ledger { display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; min-height: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
1041
+ .hooks-ledger-heading { align-items: flex-end; padding: 12px; border-bottom: 1px solid var(--line); }
1042
+ .hook-filters { display: flex; gap: 7px; }
1043
+ .hook-filters label { display: grid; gap: 3px; color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
1044
+ .hook-filters select { max-width: 150px; min-height: 30px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface-2); color: var(--ink); font-size: 10px; }
1045
+ .hook-ledger-list { min-height: 0; overflow-y: auto; }
1046
+ .hook-ledger-row { display: grid; grid-template-columns: minmax(150px, 1fr) 18px minmax(130px, .8fr) 18px minmax(155px, .95fr); gap: 7px; align-items: center; width: 100%; padding: 11px 12px; border: 0; border-bottom: 1px solid var(--line); background: var(--surface); cursor: pointer; text-align: left; }
1047
+ .hook-ledger-row:hover, .hook-ledger-row.selected { background: var(--blue-soft); }
1048
+ .hook-ledger-row:focus-visible { position: relative; z-index: 1; }
1049
+ .hook-ledger-row > b { color: var(--line-strong); font-size: 15px; }
1050
+ .hook-ledger-row > span { display: grid; gap: 2px; min-width: 0; }
1051
+ .hook-ledger-row small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
1052
+ .hook-ledger-row strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
1053
+ .hook-ledger-row em, .hook-ledger-row .hook-delivery > span { overflow: hidden; color: var(--muted); font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
1054
+ .hook-status { color: var(--amber); font-size: 10px; text-transform: uppercase; }
1055
+ .hook-status.status-succeeded { color: var(--green); }
1056
+ .hook-status.status-exhausted, .hook-status.status-rejected { color: var(--red); }
1057
+ .hook-status.status-incompatible, .hook-status.status-disabled, .hook-status.status-retrying { color: var(--amber); }
1058
+ .hook-detail { min-height: 0; overflow-y: auto; padding: 15px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
1059
+ .hook-boundary { padding: 11px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: var(--muted); font-size: 10px; line-height: 1.5; }
1060
+ .hook-boundary strong { color: var(--ink); }
1061
+ .hook-facts { display: grid; gap: 0; margin: 12px 0; border: 1px solid var(--line); }
1062
+ .hook-facts > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 9px; padding: 9px; border-bottom: 1px solid var(--line); }
1063
+ .hook-facts > div:last-child { border-bottom: 0; }
1064
+ .hook-facts dt { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
1065
+ .hook-facts dd { display: grid; gap: 3px; margin: 0; font-size: 10px; }
1066
+ .hook-facts dd span { display: flex; gap: 7px; }
1067
+ .hook-facts small { color: var(--muted); }
1068
+ .hook-context, .hook-attempts { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
1069
+ .hook-context h4, .hook-attempts h4 { margin: 0 0 8px; font-size: 11px; }
1070
+ .hook-context > code { display: block; margin-top: 4px; }
1071
+ .hook-context > p, .hook-attempts > p { color: var(--muted); font-size: 10px; }
1072
+ .hook-personas { display: grid; gap: 6px; }
1073
+ .hook-personas article { padding: 9px; border-left: 3px solid var(--blue); background: var(--surface-2); }
1074
+ .hook-personas article[data-tier="premium"] { border-left-color: var(--violet); }
1075
+ .hook-personas article[data-tier="project"] { border-left-color: var(--green); }
1076
+ .hook-personas header { display: flex; justify-content: space-between; gap: 8px; }
1077
+ .hook-personas span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
1078
+ .hook-personas article[data-tier="premium"] span { color: var(--violet); }
1079
+ .hook-personas p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
1080
+ .hook-attempts article { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 9px; }
1081
+ .hook-attempts article span, .hook-attempts article small { color: var(--muted); }
1082
+ .hook-attempts article p { grid-column: 1 / -1; margin: 0; line-height: 1.45; }
1083
+ .hook-detail > .primary-action { width: 100%; margin-top: 14px; }
1084
+ .hooks-empty { padding: 24px; color: var(--muted); text-align: center; }
1085
+ .hooks-empty strong { color: var(--ink); }
1086
+ .hooks-empty p { margin: 6px 0 0; font-size: 10px; line-height: 1.5; }
1087
+
1088
+ button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .premium-card:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
1089
+ [hidden] { display: none !important; }
1090
+
1091
+ @media (max-width: 960px) {
1092
+ .meeting-evidence-layout { grid-template-columns: 1fr; overflow-y: auto; }
1093
+ .meeting-evidence-ledger, .meeting-evidence-context { overflow: visible; }
1094
+ .meeting-evidence-context { border-top: 1px solid var(--line); border-left: 0; }
1095
+ .knowledge-proposal-layout { grid-template-columns: 1fr; overflow-y: auto; }
1096
+ .knowledge-proposal-ledger, .knowledge-proposal-context { overflow: visible; }
1097
+ .knowledge-proposal-context { border-top: 1px solid var(--line); border-left: 0; }
1098
+ }
1099
+
1100
+ @media (max-width: 600px) {
1101
+ .meeting-evidence-workspace { grid-template-rows: auto minmax(0, 1fr); }
1102
+ .meeting-evidence-heading { align-items: flex-start; padding: 12px; }
1103
+ .meeting-evidence-actions { flex-direction: column; }
1104
+ .meeting-evidence-layout { min-width: 0; }
1105
+ .meeting-evidence-ledger, .meeting-evidence-context { min-width: 0; padding: 10px; }
1106
+ .meeting-candidate { grid-template-columns: 1fr; }
1107
+ .meeting-candidate-anchor { border-right: 0; border-bottom: 1px solid var(--line); text-align: left; }
1108
+ .meeting-candidate-anchor i { top: auto; right: auto; bottom: -5px; left: 16px; }
1109
+ .meeting-evidence-receipt { grid-template-columns: 1fr; }
1110
+ .meeting-evidence-receipt span { border-right: 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
1111
+ .knowledge-mode-switcher { grid-template-columns: 1fr; }
1112
+ .knowledge-proposal-workspace { grid-template-rows: auto minmax(0, 1fr); }
1113
+ .knowledge-proposal-heading { align-items: flex-start; padding: 12px; }
1114
+ .knowledge-proposal-actions { flex-direction: column; }
1115
+ .knowledge-proposal-layout { min-width: 0; }
1116
+ .knowledge-proposal-ledger, .knowledge-proposal-context { min-width: 0; padding: 10px; }
1117
+ .knowledge-proposal-card { min-width: 0; padding: 12px; }
1118
+ .knowledge-proposal-review-fields, .knowledge-proposal-review-panel { grid-template-columns: 1fr; }
1119
+ .knowledge-proposal-review-fields label:nth-last-child(-n + 2), .knowledge-proposal-review-panel > * { grid-column: auto; }
1120
+ .knowledge-proposal-receipt { grid-template-columns: 1fr; }
1121
+ .knowledge-proposal-receipt span { border-right: 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
1122
+ }
1123
+
1124
+ @media (max-width: 1040px) {
1125
+ .intent-studio-view { grid-template-columns: 205px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; overflow-y: auto; }
1126
+ .intent-studio-persona-rail { display: block; grid-column: 1 / -1; padding: 13px 18px; overflow: visible; border-top: 1px solid var(--line); border-left: 0; }
1127
+ .intent-studio-persona-rail #intentStudioPersonas { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
1128
+ }
1129
+
1130
+ @media (max-width: 900px) {
1131
+ .app-shell { grid-template-rows: 106px minmax(0, 1fr); }
1132
+ .app-bar { grid-template-columns: minmax(180px, 1fr) auto; grid-template-rows: 54px 46px; gap: 0 8px; padding-bottom: 6px; }
1133
+ .brand-block p { display: none; }
1134
+ .view-switcher { grid-row: 2; grid-column: 1 / -1; justify-self: stretch; width: 100%; overflow-x: auto; }
1135
+ .view-switcher button, .view-switcher a { flex: 1 0 auto; }
1136
+ .app-actions { grid-row: 1; grid-column: 2; }
1137
+ .global-search { flex: 1; }
1138
+ .global-search input { width: 100%; }
1139
+ .summary-strip { grid-template-columns: repeat(3, 1fr); }
1140
+ .summary-metric:nth-child(n+4) { border-top: 1px solid var(--line); }
1141
+ .board-layout { grid-template-columns: 180px minmax(0, 1fr); }
1142
+ .knowledge-view { grid-template-columns: 240px minmax(0, 1fr); }
1143
+ .workspace-heading p { display: none; }
1144
+ .overview-grid { grid-template-columns: 1fr; }
1145
+ .detail-section { grid-column: 1 / -1; }
1146
+ .impact-evidence-grid { grid-template-columns: 1fr; }
1147
+ .impact-coverage { border-top: 1px solid var(--line); border-left: 0; }
1148
+ .impact-route { grid-template-columns: minmax(0, 1fr) 120px; }
1149
+ .impact-route label:last-child { grid-column: 1 / -1; }
1150
+ .impact-confirmation { grid-template-columns: 1fr 1fr; }
1151
+ .impact-confirmation button { grid-column: 2; }
1152
+ .intent-launchpad { grid-template-columns: 20px minmax(0, 1fr); }
1153
+ .launch-controls { grid-column: 2; flex-direction: row; flex-wrap: wrap; justify-content: flex-start; }
1154
+ .launch-controls > b { width: 100%; align-self: auto; }
1155
+ .attached-persona { grid-template-columns: minmax(140px, 1fr) 110px 140px; }
1156
+ .attached-persona .persona-unlink { grid-column: 3; }
1157
+ .persona-create form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1158
+ .guided-view { grid-template-columns: 210px minmax(0, 1fr); }
1159
+ .guided-outline { display: none; }
1160
+ .intent-studio-view { grid-template-columns: 205px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; overflow-y: auto; }
1161
+ .intent-studio-persona-rail { display: block; grid-column: 1 / -1; padding: 13px 18px; overflow: visible; border-top: 1px solid var(--line); border-left: 0; }
1162
+ .intent-studio-persona-rail #intentStudioPersonas { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
1163
+ .hooks-view { grid-template-columns: minmax(0, 1fr) 300px; }
1164
+ .hooks-register > header p { display: none; }
1165
+ .hook-filters { display: grid; grid-template-columns: repeat(3, 1fr); }
1166
+ }
1167
+
1168
+ @media (max-width: 720px) {
1169
+ .intent-studio-view { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; }
1170
+ .intent-studio-spine { overflow: hidden; padding: 11px 14px; border-right: 0; border-bottom: 1px solid var(--line); }
1171
+ .intent-studio-spine > h2, .intent-studio-spine > p { display: none; }
1172
+ .intent-studio-spine progress { margin: 6px 0 0; }
1173
+ .intent-studio-spine nav { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; overscroll-behavior-inline: contain; }
1174
+ .intent-studio-spine nav button { flex: 0 0 142px; }
1175
+ .intent-studio-persona-rail { max-height: 230px; overflow-y: auto; }
1176
+ }
1177
+
1178
+ @media (max-width: 640px) {
1179
+ .app-shell { grid-template-rows: 144px minmax(0, 1fr); }
1180
+ .app-bar { grid-template-columns: minmax(140px, 1fr) auto; grid-template-rows: 52px 42px 42px; padding: 0 10px 7px; }
1181
+ .brand-mark { display: none; }
1182
+ .view-switcher { grid-row: 2; grid-column: 1 / -1; justify-self: stretch; width: 100%; overflow-x: auto; }
1183
+ .view-switcher button { flex: 1 0 auto; padding: 0 9px; }
1184
+ .app-actions { grid-row: 3; grid-column: 1 / -1; width: 100%; }
1185
+ .global-search { flex: 1; }
1186
+ .global-search input { width: 100%; max-width: none; }
1187
+ .summary-strip { top: 138px; right: 10px; left: 10px; }
1188
+ .board-layout { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
1189
+ .knowledge-view { grid-template-columns: 1fr; grid-template-rows: minmax(150px, 34vh) minmax(0, 1fr); }
1190
+ .knowledge-rail { border-right: 0; border-bottom: 1px solid var(--line); }
1191
+ .knowledge-workspace { grid-template-rows: 66px minmax(0, 1fr); }
1192
+ .filter-rail { display: flex; gap: 6px; overflow-x: auto; padding: 8px; border-right: 0; border-bottom: 1px solid var(--line); }
1193
+ .rail-heading { display: none; }
1194
+ .scope-controls { display: flex; padding: 0; border: 0; }
1195
+ .scope-button { width: auto; white-space: nowrap; }
1196
+ .done-toggle { flex: 0 0 auto; white-space: nowrap; }
1197
+ .group-list { display: flex; gap: 4px; padding: 0; }
1198
+ .premium-card { display: none; }
1199
+ .group-button { width: auto; flex: 0 0 auto; white-space: nowrap; }
1200
+ .group-button span { overflow: visible; }
1201
+ .kanban { grid-auto-columns: minmax(245px, 82vw); min-width: 0; }
1202
+ .live-view { padding: 14px; }
1203
+ .live-summary { grid-template-columns: repeat(2, 1fr); }
1204
+ .live-heading { align-items: flex-start; }
1205
+ .poll-state { display: none; }
1206
+ .intent-drawer { width: 100vw; }
1207
+ .drawer-tabs { overflow-x: auto; }
1208
+ .drawer-tabs button { min-width: max-content; }
1209
+ .state-grid { grid-template-columns: repeat(2, 1fr); }
1210
+ .intent-launchpad { padding: 14px; }
1211
+ .launch-controls { flex-direction: column; }
1212
+ .afk-options { grid-template-columns: 1fr; }
1213
+ .approval-evidence span, .repository-runway span { display: grid; }
1214
+ .approval-evidence small { max-width: 100%; }
1215
+ .action-sheet > header, .action-body, .action-sheet > footer { padding-right: 16px; padding-left: 16px; }
1216
+ .attached-persona, .persona-finder, .persona-create form { grid-template-columns: 1fr; }
1217
+ .impact-intro { display: grid; }
1218
+ .impact-intro > span { justify-self: start; }
1219
+ .impact-index, .impact-inputs { grid-template-columns: 1fr; }
1220
+ .impact-index { align-items: stretch; }
1221
+ .impact-index button { width: 100%; }
1222
+ .source-map-coverage > header { display: grid; }
1223
+ .source-map-coverage > header b { justify-self: start; }
1224
+ .source-map-outcomes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1225
+ .source-map-outcomes article { border-bottom: 1px solid var(--line); }
1226
+ .source-map-detail-grid, .source-map-personas > div { grid-template-columns: 1fr; }
1227
+ .source-map-detail-grid > section + section { border-top: 1px solid var(--line); border-left: 0; }
1228
+ .impact-inputs > button { grid-column: auto; width: 100%; }
1229
+ .impact-band > header { grid-template-columns: 70px minmax(0, 1fr); }
1230
+ .impact-band > header b { grid-column: 2; }
1231
+ .impact-persona-grid, .impact-card-grid { grid-template-columns: 1fr; }
1232
+ .impact-route, .impact-confirmation { grid-template-columns: 1fr; }
1233
+ .impact-route label:last-child, .impact-confirmation button { grid-column: auto; }
1234
+ .attached-persona .persona-unlink { grid-column: auto; }
1235
+ .guided-view { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
1236
+ .guided-rail { overflow: hidden; padding: 12px 14px; border-right: 0; border-bottom: 1px solid var(--line); }
1237
+ .guided-rail > p, .guided-sections { display: none; }
1238
+ .guided-progress { margin: 9px 0 0; }
1239
+ .guided-heading { min-height: 66px; padding: 9px 16px; }
1240
+ .guided-heading p { display: none; }
1241
+ .guided-content { padding: 20px 16px; }
1242
+ .guided-personas > header { align-items: center; }
1243
+ .guided-personas header p { display: none; }
1244
+ .guided-persona-list { grid-template-columns: 1fr; }
1245
+ .evidence-depth-panel > summary { align-items: flex-start; }
1246
+ .evidence-depth-empty, .evidence-depth-review > header, .evidence-depth-gaps > header, .evidence-depth-review > footer, .evidence-depth-compare > header { display: grid; }
1247
+ .evidence-depth-design-notice { display: grid; }
1248
+ .evidence-depth-design-notice span { text-align: left; }
1249
+ .evidence-depth-ledger-head { display: none; }
1250
+ .evidence-depth-row { grid-template-columns: 1fr 1fr; }
1251
+ .evidence-depth-row > div:nth-child(4) { grid-column: 1 / -1; }
1252
+ .evidence-depth-gaps > article, .evidence-depth-questions > article { grid-template-columns: 1fr; }
1253
+ .evidence-depth-review > footer div, .evidence-depth-compare > header > div:last-child { display: grid; width: 100%; }
1254
+ .evidence-depth-review > footer button { width: 100%; }
1255
+ .evidence-depth-comparison { grid-template-columns: repeat(2, 1fr); }
1256
+ .evidence-depth-comparison > strong { grid-column: 1 / -1; }
1257
+ .guided-answer-grid { grid-template-columns: 1fr; }
1258
+ .guided-blueprint-summary > header { display: grid; }
1259
+ .guided-blueprint-impact { grid-template-columns: 1fr; }
1260
+ .guided-blueprint-impact span { border-bottom: 1px solid var(--line); }
1261
+ .guided-blueprint-impact span:last-child { border-bottom: 0; }
1262
+ .guided-question-card > h3, .guided-review > h3 { font-size: 27px; }
1263
+ .guided-actions { padding: 9px 14px; }
1264
+ .guided-actions > span { display: none; }
1265
+ .guided-actions > div { width: 100%; }
1266
+ .guided-actions button { flex: 1; }
1267
+ .guided-review-section > div { grid-template-columns: 1fr; gap: 4px; }
1268
+ .intent-studio-view { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; }
1269
+ .intent-studio-spine { overflow: hidden; padding: 11px 14px; border-right: 0; border-bottom: 1px solid var(--line); }
1270
+ .intent-studio-spine > h2, .intent-studio-spine > p { display: none; }
1271
+ .intent-studio-spine progress { margin: 6px 0 0; }
1272
+ .intent-studio-spine nav { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; overscroll-behavior-inline: contain; }
1273
+ .intent-studio-spine nav button { flex: 0 0 142px; }
1274
+ .intent-studio-canvas > header { padding: 11px 14px; }
1275
+ .intent-studio-canvas > header p, .intent-studio-revision { display: none; }
1276
+ .intent-studio-content { padding: 12px; }
1277
+ .intent-studio-card { padding: 15px; }
1278
+ .intent-studio-identity-grid, .intent-studio-shape-grid, .intent-studio-review { grid-template-columns: 1fr; }
1279
+ .intent-studio-wide, .intent-studio-identity-grid .intent-studio-field:last-child { grid-column: auto; }
1280
+ .intent-studio-reconcile { grid-template-columns: 1fr; }
1281
+ .intent-studio-reconcile p { grid-column: auto; }
1282
+ .intent-studio-canvas > footer { display: grid; padding: 9px 12px; }
1283
+ .intent-studio-canvas > footer > div { width: 100%; }
1284
+ .intent-studio-canvas > footer button { flex: 1; min-width: 0; }
1285
+ .intent-studio-persona-rail { max-height: 230px; overflow-y: auto; }
1286
+ .hooks-view { display: block; overflow-y: auto; padding: 12px; }
1287
+ .hooks-heading { display: grid; }
1288
+ .hooks-summary { width: 100%; }
1289
+ .hooks-summary span { flex: 1; min-width: 0; }
1290
+ .hooks-register, .hooks-ledger, .hook-detail { margin-top: 10px; }
1291
+ .hooks-ledger { overflow: visible; }
1292
+ .hooks-ledger-heading { display: grid; align-items: start; }
1293
+ .hook-filters { grid-template-columns: 1fr; width: 100%; }
1294
+ .hook-filters select { width: 100%; max-width: none; }
1295
+ .hook-ledger-list { overflow: visible; }
1296
+ .hook-ledger-row { grid-template-columns: 1fr; gap: 6px; }
1297
+ .hook-ledger-row > b { transform: rotate(90deg); justify-self: center; }
1298
+ .hook-ledger-row > span { padding: 5px 0; }
1299
+ .hook-ledger-row strong, .hook-ledger-row em, .hook-ledger-row .hook-delivery > span { white-space: normal; }
1300
+ .hook-detail { overflow: visible; }
1301
+ }
1302
+
1303
+ @media (max-width: 760px) {
1304
+ .test-scenario-intro, .test-scenario-readiness > header { display: grid; }
1305
+ .test-scenario-intro > span, .test-scenario-library { justify-self: start; }
1306
+ .test-scenario-receipt, .test-scenario-filters, .test-scenario-personas > div, .test-scenario-join { grid-template-columns: 1fr; }
1307
+ .test-scenario-receipt > span, .test-scenario-join > section { border-right: 0; border-bottom: 1px solid var(--line); }
1308
+ .test-scenario-receipt > span:last-child, .test-scenario-join > section:last-child { border-bottom: 0; }
1309
+ .test-scenario-gaps li { grid-template-columns: 60px minmax(0, 1fr); }
1310
+ .test-scenario-gaps li b { grid-column: 2; }
1311
+ }
1312
+
1313
+ .security-view {
1314
+ overflow-y: auto;
1315
+ padding: 24px;
1316
+ background: var(--canvas);
1317
+ }
1318
+
1319
+ .security-heading,
1320
+ .security-section > header,
1321
+ .security-finding > header,
1322
+ .security-disposition-form,
1323
+ .security-actions {
1324
+ display: flex;
1325
+ align-items: center;
1326
+ justify-content: space-between;
1327
+ gap: 12px;
1328
+ }
1329
+
1330
+ .security-heading h2,
1331
+ .security-section h3,
1332
+ .security-provider h4,
1333
+ .security-finding h4 {
1334
+ margin: 0;
1335
+ }
1336
+
1337
+ .security-heading p,
1338
+ .security-section > header p,
1339
+ .security-provider p,
1340
+ .security-finding p {
1341
+ margin: 4px 0 0;
1342
+ color: var(--muted);
1343
+ }
1344
+
1345
+ .security-summary span {
1346
+ display: grid;
1347
+ gap: 3px;
1348
+ justify-items: end;
1349
+ text-align: right;
1350
+ }
1351
+
1352
+ .security-summary small {
1353
+ color: var(--muted);
1354
+ font-size: 12px;
1355
+ font-weight: 500;
1356
+ }
1357
+
1358
+ .security-assurance-notice {
1359
+ margin: 18px 0;
1360
+ padding: 14px 16px;
1361
+ border: 1px solid #9bcbb6;
1362
+ border-left: 4px solid #0f8956;
1363
+ border-radius: 6px;
1364
+ background: #eef7f2;
1365
+ color: #174b38;
1366
+ font-size: 14px;
1367
+ line-height: 1.55;
1368
+ }
1369
+
1370
+ .security-contract-error {
1371
+ margin: -8px 0 18px;
1372
+ padding: 10px 12px;
1373
+ border: 1px solid #e8b7b1;
1374
+ border-radius: 6px;
1375
+ background: #fff3f1;
1376
+ color: #8c2f26;
1377
+ }
1378
+
1379
+ .security-status,
1380
+ .security-section {
1381
+ margin-top: 14px;
1382
+ padding: 16px;
1383
+ border: 1px solid var(--line);
1384
+ border-radius: 8px;
1385
+ background: var(--surface);
1386
+ }
1387
+
1388
+ .security-status {
1389
+ display: grid;
1390
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1391
+ gap: 10px;
1392
+ }
1393
+
1394
+ .security-status span,
1395
+ .security-coverage-row span {
1396
+ display: grid;
1397
+ gap: 3px;
1398
+ }
1399
+
1400
+ .security-status small,
1401
+ .security-coverage-row small,
1402
+ .security-meta {
1403
+ color: var(--muted);
1404
+ font-size: 12px;
1405
+ }
1406
+
1407
+ .security-card-grid,
1408
+ .security-personas,
1409
+ .security-runs,
1410
+ .security-findings {
1411
+ display: grid;
1412
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1413
+ gap: 12px;
1414
+ margin-top: 14px;
1415
+ }
1416
+
1417
+ .security-provider,
1418
+ .security-personas article,
1419
+ .security-run,
1420
+ .security-finding {
1421
+ padding: 14px;
1422
+ border: 1px solid var(--line);
1423
+ border-radius: 7px;
1424
+ background: var(--canvas);
1425
+ }
1426
+
1427
+ .security-runs {
1428
+ grid-template-columns: 1fr;
1429
+ }
1430
+
1431
+ .security-run {
1432
+ display: grid;
1433
+ grid-template-columns: minmax(180px, 1fr) minmax(120px, auto) auto;
1434
+ gap: 12px;
1435
+ align-items: center;
1436
+ }
1437
+
1438
+ .security-run > div,
1439
+ .security-run > span {
1440
+ display: grid;
1441
+ gap: 3px;
1442
+ }
1443
+
1444
+ .security-run > span {
1445
+ justify-items: end;
1446
+ }
1447
+
1448
+ .security-run small {
1449
+ color: var(--muted);
1450
+ font-size: 12px;
1451
+ }
1452
+
1453
+ .security-provider header,
1454
+ .security-personas article header {
1455
+ display: flex;
1456
+ align-items: flex-start;
1457
+ justify-content: space-between;
1458
+ gap: 10px;
1459
+ }
1460
+
1461
+ .security-provider header > div {
1462
+ display: grid;
1463
+ gap: 3px;
1464
+ }
1465
+
1466
+ .security-provider header > div span {
1467
+ color: var(--muted);
1468
+ font-size: 12px;
1469
+ }
1470
+
1471
+ .security-provider header > b {
1472
+ white-space: nowrap;
1473
+ }
1474
+
1475
+ .security-tags,
1476
+ .security-source-links,
1477
+ .security-actions {
1478
+ display: flex;
1479
+ flex-wrap: wrap;
1480
+ gap: 6px;
1481
+ margin-top: 10px;
1482
+ }
1483
+
1484
+ .security-provider ul {
1485
+ margin: 12px 0;
1486
+ padding-left: 22px;
1487
+ }
1488
+
1489
+ .security-provider footer {
1490
+ display: flex;
1491
+ flex-wrap: wrap;
1492
+ align-items: center;
1493
+ gap: 12px;
1494
+ margin-top: 12px;
1495
+ }
1496
+
1497
+ .security-provider footer button {
1498
+ margin-left: auto;
1499
+ }
1500
+
1501
+ .security-tags span,
1502
+ .security-personas article header span,
1503
+ .security-severity,
1504
+ .security-state {
1505
+ padding: 3px 7px;
1506
+ border: 1px solid var(--line);
1507
+ border-radius: 999px;
1508
+ background: var(--surface);
1509
+ color: var(--ink);
1510
+ font-size: 11px;
1511
+ font-weight: 700;
1512
+ letter-spacing: .02em;
1513
+ }
1514
+
1515
+ .security-personas article[data-tier="premium"] {
1516
+ border-color: #d2b76d;
1517
+ background: #fffaf0;
1518
+ }
1519
+
1520
+ .security-personas article[data-tier="project"] {
1521
+ border-color: #8db8a6;
1522
+ }
1523
+
1524
+ .security-caution {
1525
+ margin-top: 10px;
1526
+ padding-top: 10px;
1527
+ border-top: 1px solid var(--line);
1528
+ font-size: 13px;
1529
+ }
1530
+
1531
+ .security-coverage {
1532
+ display: grid;
1533
+ gap: 8px;
1534
+ margin-top: 14px;
1535
+ }
1536
+
1537
+ .security-coverage-row {
1538
+ display: grid;
1539
+ grid-template-columns: minmax(140px, 1fr) repeat(3, minmax(80px, auto));
1540
+ gap: 10px;
1541
+ align-items: center;
1542
+ padding: 10px 0;
1543
+ border-bottom: 1px solid var(--line);
1544
+ }
1545
+
1546
+ .security-coverage-row:last-child {
1547
+ border-bottom: 0;
1548
+ }
1549
+
1550
+ .security-finding > header {
1551
+ align-items: flex-start;
1552
+ }
1553
+
1554
+ .security-severity[data-severity="critical"],
1555
+ .security-severity[data-severity="high"] {
1556
+ border-color: #d99b93;
1557
+ background: #fff3f1;
1558
+ color: #8c2f26;
1559
+ }
1560
+
1561
+ .security-severity[data-severity="medium"] {
1562
+ border-color: #d7bd76;
1563
+ background: #fff9e8;
1564
+ color: #71550f;
1565
+ }
1566
+
1567
+ .security-disposition-form {
1568
+ align-items: flex-end;
1569
+ flex-wrap: wrap;
1570
+ margin-top: 14px;
1571
+ padding-top: 12px;
1572
+ border-top: 1px solid var(--line);
1573
+ }
1574
+
1575
+ .security-disposition-form label {
1576
+ display: grid;
1577
+ flex: 1 1 150px;
1578
+ gap: 5px;
1579
+ color: var(--muted);
1580
+ font-size: 12px;
1581
+ }
1582
+
1583
+ .security-disposition-form input,
1584
+ .security-disposition-form select {
1585
+ width: 100%;
1586
+ }
1587
+
1588
+ .security-empty {
1589
+ margin: 14px 0 0;
1590
+ padding: 18px;
1591
+ border: 1px dashed var(--line-strong);
1592
+ border-radius: 7px;
1593
+ color: var(--muted);
1594
+ text-align: center;
1595
+ }
1596
+
1597
+ .starters-view { overflow: auto; padding: 24px; background: var(--canvas); }
1598
+ .starters-heading, .starter-section > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
1599
+ .starters-heading h2, .starter-section h3 { margin: 3px 0 0; }
1600
+ .starters-heading p, .starter-section > header p { max-width: 650px; margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
1601
+ .starter-summary { display: flex; flex-wrap: wrap; gap: 7px; }
1602
+ .starter-summary span { display: grid; min-width: 76px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); text-align: right; }
1603
+ .starter-summary strong { font-size: 16px; }
1604
+ .starter-summary span { color: var(--muted); font-size: 9px; }
1605
+ .starter-notice { margin-top: 16px; padding: 12px 14px; border-left: 3px solid var(--amber); background: var(--amber-soft); color: #604514; font-size: 11px; line-height: 1.55; }
1606
+ .starter-status { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 11px; }
1607
+ .starter-section { margin-top: 18px; padding: 17px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
1608
+ .starter-personas { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; margin-top: 13px; }
1609
+ .starter-persona { padding: 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
1610
+ .starter-persona header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
1611
+ .starter-persona header span { padding: 3px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-weight: 800; text-transform: uppercase; }
1612
+ .starter-persona[data-tier="premium"] { border-color: #d2b76d; background: #fffaf0; }
1613
+ .starter-persona[data-tier="premium"] header span { background: #f4ead2; color: #705318; }
1614
+ .starter-persona[data-tier="project"] { border-color: #8db8a6; }
1615
+ .starter-persona p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
1616
+ .starter-form, .starter-apply-form { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)) auto; align-items: end; gap: 10px; margin-top: 14px; }
1617
+ .starter-form label, .starter-apply-form label { display: grid; gap: 5px; }
1618
+ .starter-form label > span, .starter-apply-form label > span { color: var(--muted); font-size: 9px; font-weight: 750; text-transform: uppercase; }
1619
+ .starter-form select, .starter-apply-form input[type="text"], .starter-apply-form input:not([type]) { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); }
1620
+ .starter-confirm { grid-column: 1 / -1; display: flex !important; grid-template-columns: auto 1fr; align-items: flex-start; color: var(--muted); font-size: 10px; line-height: 1.45; }
1621
+ .starter-confirm input { margin-top: 2px; accent-color: var(--green); }
1622
+ .starter-attempts { display: grid; gap: 10px; margin-top: 14px; }
1623
+ .starter-attempt { padding: 13px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); }
1624
+ .starter-attempt > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
1625
+ .starter-attempt > header div { display: grid; gap: 3px; min-width: 0; }
1626
+ .starter-attempt > header strong, .starter-attempt > header small { overflow-wrap: anywhere; }
1627
+ .starter-attempt > header small, .starter-attempt li span, .starter-attempt li small { color: var(--muted); font-size: 9px; }
1628
+ .starter-attempt > header b { padding: 3px 7px; border: 1px solid var(--line); border-radius: 999px; font-size: 8px; text-transform: uppercase; }
1629
+ .starter-attempt.status-completed > header b { border-color: #8db8a6; background: var(--green-soft); color: #12573f; }
1630
+ .starter-attempt.status-recovery-required > header b, .starter-attempt.status-failed > header b { border-color: #d99b93; background: #fff3f1; color: #8c2f26; }
1631
+ .starter-counts { display: flex; flex-wrap: wrap; gap: 7px; margin: 11px 0; }
1632
+ .starter-counts span { padding: 6px 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--muted); font-size: 9px; }
1633
+ .starter-counts strong { color: var(--ink); font-size: 12px; }
1634
+ .starter-attempt ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
1635
+ .starter-attempt li { display: grid; grid-template-columns: 100px minmax(100px, 1fr) auto; gap: 8px; padding: 7px 8px; border-bottom: 1px solid var(--line); }
1636
+ .starter-expiry, .starter-evidence { margin: 10px 0 0; color: var(--muted); font-size: 9px; }
1637
+ .starter-evidence code { overflow-wrap: anywhere; }
1638
+ .starter-empty { margin-top: 14px; padding: 18px; border: 1px dashed var(--line-strong); border-radius: 7px; color: var(--muted); text-align: center; }
1639
+ .starter-empty p { margin: 5px 0 0; font-size: 10px; }
1640
+
1641
+ @media (max-width: 760px) {
1642
+ .starters-view { padding: 14px; }
1643
+ .starters-heading, .starter-section > header { display: grid; }
1644
+ .starter-summary { justify-content: flex-start; }
1645
+ .starter-form, .starter-apply-form { grid-template-columns: 1fr; }
1646
+ .starter-confirm { grid-column: 1; }
1647
+ .starter-form button, .starter-apply-form button { width: 100%; }
1648
+ .starter-attempt li { grid-template-columns: 1fr; }
1649
+ .security-view { padding: 14px; }
1650
+ .security-heading, .security-section > header, .security-finding > header { display: grid; }
1651
+ .security-status { grid-template-columns: 1fr; }
1652
+ .security-card-grid, .security-personas, .security-runs, .security-findings { grid-template-columns: 1fr; }
1653
+ .security-coverage-row { grid-template-columns: 1fr 1fr; }
1654
+ .security-coverage-row span:first-child { grid-column: 1 / -1; }
1655
+ .security-disposition-form { display: grid; align-items: stretch; }
1656
+ .security-summary span { justify-items: start; text-align: left; }
1657
+ .security-provider footer button { width: 100%; margin-left: 0; }
1658
+ .security-run { grid-template-columns: 1fr; }
1659
+ .security-run > span { justify-items: start; }
1660
+ .security-run button { width: 100%; }
1661
+ }
1662
+
1663
+ @media (prefers-reduced-motion: no-preference) {
1664
+ .intent-drawer { animation: drawer-in 160ms ease-out; }
1665
+ @keyframes drawer-in { from { transform: translateX(24px); opacity: .85; } }
1666
+ }
1667
+
1668
+ .portfolio-view {
1669
+ overflow-x: hidden;
1670
+ overflow-y: auto;
1671
+ padding: 24px;
1672
+ background: var(--canvas);
1673
+ }
1674
+
1675
+ .portfolio-heading,
1676
+ .portfolio-line-panel > header,
1677
+ .portfolio-context > header,
1678
+ .portfolio-persona-section > header,
1679
+ .portfolio-review > header,
1680
+ .portfolio-dependency-section > header {
1681
+ display: flex;
1682
+ align-items: flex-start;
1683
+ justify-content: space-between;
1684
+ gap: 16px;
1685
+ }
1686
+
1687
+ .portfolio-heading h2,
1688
+ .portfolio-line-panel h3,
1689
+ .portfolio-context h3,
1690
+ .portfolio-persona-section h3,
1691
+ .portfolio-review h3,
1692
+ .portfolio-dependency-section h3 { margin: 0; }
1693
+ .portfolio-heading p,
1694
+ .portfolio-persona-section header p,
1695
+ .portfolio-context header p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
1696
+ .portfolio-summary span { display: grid; justify-items: end; gap: 3px; text-align: right; }
1697
+ .portfolio-summary strong { font-size: 13px; text-transform: capitalize; }
1698
+ .portfolio-summary small { color: var(--muted); font-size: 10px; }
1699
+ .portfolio-summary .status-attention strong,
1700
+ .portfolio-summary .status-invalid strong { color: var(--amber); }
1701
+ .portfolio-summary .status-ready strong { color: var(--green); }
1702
+
1703
+ .portfolio-advisory-notice,
1704
+ .portfolio-security-notice,
1705
+ .portfolio-contract-error,
1706
+ .portfolio-status {
1707
+ margin-top: 12px;
1708
+ padding: 11px 13px;
1709
+ border: 1px solid var(--line);
1710
+ border-radius: 6px;
1711
+ background: var(--surface);
1712
+ font-size: 11px;
1713
+ line-height: 1.5;
1714
+ }
1715
+ .portfolio-advisory-notice { border-left: 4px solid var(--amber); background: var(--amber-soft); color: #604514; }
1716
+ .portfolio-security-notice { border-left: 4px solid var(--green); background: var(--green-soft); color: #174b38; }
1717
+ .portfolio-contract-error { border-color: #e8b7b1; background: var(--red-soft); color: #8c2f26; }
1718
+
1719
+ .portfolio-workspace { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr); gap: 14px; margin-top: 14px; }
1720
+ .portfolio-line-panel,
1721
+ .portfolio-context-panel { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
1722
+ .portfolio-context-panel { align-self: start; }
1723
+ .portfolio-programme-line { display: grid; gap: 7px; margin-top: 14px; }
1724
+ .portfolio-node {
1725
+ position: relative;
1726
+ display: grid;
1727
+ grid-template-columns: 14px minmax(0, 1fr) auto;
1728
+ align-items: center;
1729
+ gap: 9px;
1730
+ width: calc(100% - min(calc(var(--portfolio-depth) * 28px), 196px));
1731
+ margin-left: min(calc(var(--portfolio-depth) * 28px), 196px);
1732
+ padding: 10px 11px;
1733
+ border: 1px solid var(--line);
1734
+ border-radius: 6px;
1735
+ background: var(--surface-2);
1736
+ cursor: pointer;
1737
+ text-align: left;
1738
+ }
1739
+ .portfolio-node::before { position: absolute; top: -8px; bottom: 50%; left: -18px; width: 16px; border-bottom: 1px solid var(--line-strong); border-left: 1px solid var(--line-strong); content: ''; }
1740
+ .portfolio-node[style="--portfolio-depth:0"]::before { display: none; }
1741
+ .portfolio-node:hover { border-color: var(--line-strong); background: var(--surface); }
1742
+ .portfolio-node:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
1743
+ .portfolio-node[aria-current="true"] { border-color: var(--green); background: var(--green-soft); }
1744
+ .portfolio-node-marker { width: 10px; height: 10px; border: 2px solid var(--green); border-radius: 50%; background: var(--surface); }
1745
+ .portfolio-node.status-stale .portfolio-node-marker,
1746
+ .portfolio-node.status-disagreement .portfolio-node-marker,
1747
+ .portfolio-node.status-missing .portfolio-node-marker { border-color: var(--amber); }
1748
+ .portfolio-node.status-unavailable .portfolio-node-marker { border-color: var(--red); }
1749
+ .portfolio-node-body { display: grid; min-width: 0; gap: 2px; }
1750
+ .portfolio-node-body small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
1751
+ .portfolio-node-body strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1752
+ .portfolio-node-body em,
1753
+ .portfolio-node-body span { color: var(--muted); font-size: 9px; font-style: normal; }
1754
+ .portfolio-node > b { color: var(--muted); font-size: 9px; font-weight: 650; white-space: nowrap; }
1755
+
1756
+ .portfolio-dependency-section,
1757
+ .portfolio-persona-section,
1758
+ .portfolio-review { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
1759
+ .portfolio-dependencies { display: grid; gap: 7px; margin-top: 11px; }
1760
+ .portfolio-dependency { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(180px, 1.2fr) auto; align-items: center; gap: 10px; width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); cursor: pointer; text-align: left; }
1761
+ .portfolio-dependency:hover,
1762
+ .portfolio-dependency.selected { border-color: var(--blue); background: var(--blue-soft); }
1763
+ .portfolio-dependency span { display: grid; gap: 2px; }
1764
+ .portfolio-dependency small,
1765
+ .portfolio-observed small { color: var(--blue); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
1766
+ .portfolio-dependency em,
1767
+ .portfolio-dependency b { color: var(--muted); font-size: 9px; font-style: normal; font-weight: 600; }
1768
+ .portfolio-observed { padding: 10px; border: 1px dashed var(--line-strong); border-radius: 6px; }
1769
+ .portfolio-observed strong { display: block; margin-top: 3px; }
1770
+ .portfolio-observed p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
1771
+
1772
+ .portfolio-context > header { display: block; }
1773
+ .portfolio-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 13px 0 0; }
1774
+ .portfolio-facts div { padding: 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); }
1775
+ .portfolio-facts dt { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
1776
+ .portfolio-facts dd { margin: 4px 0 0; font-size: 10px; font-weight: 700; }
1777
+ .portfolio-context-attention { margin-top: 14px; }
1778
+ .portfolio-context-attention h4 { margin: 0; font-size: 11px; }
1779
+ .portfolio-context-attention ul { display: grid; gap: 6px; margin: 8px 0 0; padding: 0; list-style: none; }
1780
+ .portfolio-context-attention li { display: grid; gap: 3px; padding: 8px; border-left: 3px solid var(--amber); background: var(--amber-soft); }
1781
+ .portfolio-context-attention li strong,
1782
+ .portfolio-context-attention li small { font-size: 8px; }
1783
+ .portfolio-context-attention li span,
1784
+ .portfolio-context-attention p,
1785
+ .portfolio-route { color: var(--muted); font-size: 9px; line-height: 1.45; }
1786
+ .portfolio-route { padding: 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); }
1787
+
1788
+ .portfolio-personas { display: grid; gap: 7px; margin-top: 11px; }
1789
+ .portfolio-persona { padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
1790
+ .portfolio-persona header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
1791
+ .portfolio-persona header span { padding: 3px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-weight: 800; text-transform: uppercase; }
1792
+ .portfolio-persona p { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
1793
+ .portfolio-persona small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; }
1794
+ .portfolio-persona[data-tier="premium"] { border-color: #d2b76d; background: #fffaf0; }
1795
+ .portfolio-persona[data-tier="premium"] header span { background: #f4ead2; color: #705318; }
1796
+ .portfolio-persona[data-tier="project"] { border-color: #8db8a6; }
1797
+ .portfolio-review > div > p { color: var(--muted); font-size: 10px; line-height: 1.5; }
1798
+ .portfolio-review ul { display: grid; gap: 5px; padding-left: 18px; color: var(--ink); font-size: 9px; line-height: 1.45; }
1799
+ .portfolio-review > div > small { color: var(--muted); font-size: 8px; line-height: 1.4; }
1800
+ .portfolio-premium-state { display: grid; gap: 3px; margin: 10px 0; padding: 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); }
1801
+ .portfolio-premium-state strong { font-size: 9px; }
1802
+ .portfolio-premium-state span { color: var(--muted); font-size: 9px; line-height: 1.45; }
1803
+ .portfolio-empty { padding: 24px; border: 1px dashed var(--line-strong); border-radius: 7px; color: var(--muted); text-align: center; }
1804
+ .portfolio-empty strong { color: var(--ink); }
1805
+ .portfolio-empty p { margin: 6px 0 0; font-size: 10px; line-height: 1.5; }
1806
+ .portfolio-empty.compact { padding: 13px; }
1807
+ .portfolio-invalid ul { display: grid; gap: 5px; padding: 0; list-style: none; text-align: left; }
1808
+ .portfolio-invalid li { display: grid; grid-template-columns: minmax(120px, auto) 1fr; gap: 8px; }
1809
+
1810
+ @media (max-width: 900px) {
1811
+ .portfolio-workspace { grid-template-columns: 1fr; }
1812
+ .portfolio-context-panel { width: 100%; }
1813
+ }
1814
+
1815
+ @media (max-width: 390px) {
1816
+ .portfolio-view { overflow-x: hidden; padding: 12px; }
1817
+ .portfolio-heading,
1818
+ .portfolio-line-panel > header,
1819
+ .portfolio-persona-section > header { display: grid; }
1820
+ .portfolio-summary span { justify-items: start; text-align: left; }
1821
+ .portfolio-line-panel,
1822
+ .portfolio-context-panel { padding: 12px; }
1823
+ .portfolio-node { grid-template-columns: 12px minmax(0, 1fr); width: calc(100% - min(calc(var(--portfolio-depth) * 12px), 84px)); margin-left: min(calc(var(--portfolio-depth) * 12px), 84px); }
1824
+ .portfolio-node::before { left: -8px; width: 7px; }
1825
+ .portfolio-node > b { grid-column: 2; white-space: normal; }
1826
+ .portfolio-node-body strong { white-space: normal; }
1827
+ .portfolio-dependency { grid-template-columns: 1fr; }
1828
+ .portfolio-facts { grid-template-columns: 1fr; }
1829
+ .portfolio-invalid li { grid-template-columns: 1fr; }
1830
+ }
1831
+
1832
+ .rollout-view {
1833
+ overflow-x: hidden;
1834
+ overflow-y: auto;
1835
+ padding: 24px;
1836
+ background: var(--canvas);
1837
+ }
1838
+ .rollout-heading,
1839
+ .rollout-ledger-panel > header,
1840
+ .rollout-persona-section > header,
1841
+ .rollout-review > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
1842
+ .rollout-heading h2,
1843
+ .rollout-ledger-panel h3,
1844
+ .rollout-context h3,
1845
+ .rollout-persona-section h3,
1846
+ .rollout-review h3 { margin: 0; }
1847
+ .rollout-heading p,
1848
+ .rollout-context header p,
1849
+ .rollout-persona-section header p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
1850
+ .rollout-summary span { display: grid; justify-items: end; gap: 3px; text-align: right; }
1851
+ .rollout-summary strong { font-size: 13px; text-transform: capitalize; }
1852
+ .rollout-summary small { color: var(--muted); font-size: 10px; }
1853
+ .rollout-summary .status-attention strong,
1854
+ .rollout-summary .status-invalid strong { color: var(--amber); }
1855
+ .rollout-summary .status-ready strong { color: var(--green); }
1856
+ .rollout-advisory-notice,
1857
+ .rollout-security-notice,
1858
+ .rollout-contract-error,
1859
+ .rollout-status { margin-top: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 11px; line-height: 1.5; }
1860
+ .rollout-advisory-notice { border-left: 4px solid var(--amber); background: var(--amber-soft); color: #604514; }
1861
+ .rollout-security-notice { border-left: 4px solid var(--green); background: var(--green-soft); color: #174b38; }
1862
+ .rollout-contract-error { border-color: #e8b7b1; background: var(--red-soft); color: #8c2f26; }
1863
+ .rollout-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .78fr); gap: 14px; margin-top: 14px; }
1864
+ .rollout-ledger-panel,
1865
+ .rollout-context-panel { min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
1866
+ .rollout-ledger-panel > header { padding: 16px; border-bottom: 1px solid var(--line); }
1867
+ .rollout-context-panel { align-self: start; }
1868
+ .rollout-ledger { min-width: 0; }
1869
+ .rollout-cohort { padding: 16px; border-bottom: 1px solid var(--line); }
1870
+ .rollout-cohort > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 14px; }
1871
+ .rollout-cohort > header > p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; text-align: right; }
1872
+ .rollout-cohort-choice { display: grid; gap: 3px; padding: 0; border: 0; background: transparent; cursor: pointer; text-align: left; }
1873
+ .rollout-cohort-choice strong { font-size: 14px; }
1874
+ .rollout-cohort-choice small { color: var(--muted); font-size: 9px; }
1875
+ .rollout-cohort-choice[aria-current="true"] strong { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
1876
+ .rollout-baseline { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; width: 100%; margin-top: 11px; padding: 9px 10px; border: 0; border-left: 3px solid var(--blue); background: var(--blue-soft); color: var(--blue); cursor: pointer; text-align: left; }
1877
+ .rollout-baseline span,
1878
+ .rollout-baseline small { font-size: 8px; font-weight: 750; }
1879
+ .rollout-baseline strong { overflow-wrap: anywhere; font-size: 10px; }
1880
+ .rollout-baseline.selected { box-shadow: inset 0 0 0 1px var(--blue); }
1881
+ .rollout-projects { position: relative; display: grid; gap: 8px; margin: 10px 0 0 10px; padding-left: 18px; }
1882
+ .rollout-projects::before { position: absolute; top: 0; bottom: 0; left: 3px; width: 1px; background: var(--line-strong); content: ''; }
1883
+ .rollout-project { position: relative; min-width: 0; }
1884
+ .rollout-project::before { position: absolute; top: 16px; left: -19px; width: 8px; height: 8px; border: 2px solid var(--surface); border-radius: 50%; background: var(--green); box-shadow: 0 0 0 1px var(--green); content: ''; }
1885
+ .rollout-project.tone-warn::before { background: var(--amber); box-shadow: 0 0 0 1px var(--amber); }
1886
+ .rollout-project.tone-stop::before { background: var(--red); box-shadow: 0 0 0 1px var(--red); }
1887
+ .rollout-project > button { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 12px; width: 100%; padding: 10px 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); cursor: pointer; text-align: left; }
1888
+ .rollout-project > button:hover { border-color: var(--line-strong); background: var(--surface); }
1889
+ .rollout-project:focus-within { z-index: 1; }
1890
+ .rollout-project:focus-visible,
1891
+ .rollout-project > button:focus-visible,
1892
+ .rollout-cohort-choice:focus-visible,
1893
+ .rollout-baseline:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
1894
+ .rollout-project > button[aria-current="true"] { border-color: var(--green); box-shadow: 0 0 0 3px #176b4d16; }
1895
+ .rollout-project > button > span { display: grid; min-width: 0; gap: 3px; }
1896
+ .rollout-project > button strong { font-size: 11px; }
1897
+ .rollout-project > button small,
1898
+ .rollout-project > button em { overflow-wrap: anywhere; color: var(--muted); font-size: 8px; font-style: normal; }
1899
+ .rollout-project > button b { padding: 4px 7px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: 8px; text-transform: uppercase; }
1900
+ .rollout-project.tone-warn > button b { background: var(--amber-soft); color: var(--amber); }
1901
+ .rollout-project.tone-stop > button b { background: var(--red-soft); color: var(--red); }
1902
+ .rollout-evidence { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
1903
+ .rollout-evidence span { padding: 3px 6px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 8px; }
1904
+ .rollout-evidence span[data-state="missing"],
1905
+ .rollout-evidence span[data-state="stale"] { border-color: #e8c98f; color: var(--amber); }
1906
+ .rollout-evidence span[data-state="unavailable"] { border-color: #e8b7b1; color: var(--red); }
1907
+ .rollout-legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 11px 16px; color: var(--muted); font-size: 9px; }
1908
+ .rollout-legend b { color: var(--ink); }
1909
+ .rollout-context,
1910
+ .rollout-persona-section,
1911
+ .rollout-review { padding: 16px; }
1912
+ .rollout-persona-section,
1913
+ .rollout-review { border-top: 1px solid var(--line); }
1914
+ .rollout-context > header { display: block; }
1915
+ .rollout-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 13px 0 0; }
1916
+ .rollout-facts div { min-width: 0; padding: 8px; background: var(--surface-2); }
1917
+ .rollout-facts dt { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
1918
+ .rollout-facts dd { overflow-wrap: anywhere; margin: 4px 0 0; font-size: 9px; font-weight: 700; }
1919
+ .rollout-route { margin: 12px 0 0; padding: 10px; border-left: 3px solid var(--amber); background: var(--amber-soft); color: #72420d; font-size: 9px; line-height: 1.5; }
1920
+ .rollout-evidence-detail { margin-top: 14px; }
1921
+ .rollout-evidence-detail h4 { margin: 0; font-size: 10px; }
1922
+ .rollout-evidence-detail ul { display: grid; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
1923
+ .rollout-evidence-detail li { display: grid; grid-template-columns: minmax(70px, auto) auto; gap: 3px 8px; padding: 7px; background: var(--surface-2); }
1924
+ .rollout-evidence-detail li strong,
1925
+ .rollout-evidence-detail li span { font-size: 8px; text-transform: capitalize; }
1926
+ .rollout-evidence-detail li small { grid-column: 1 / -1; color: var(--muted); font-size: 8px; line-height: 1.4; }
1927
+ .rollout-personas { display: grid; gap: 7px; margin-top: 11px; }
1928
+ .rollout-persona { padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
1929
+ .rollout-persona header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
1930
+ .rollout-persona header span { padding: 3px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-weight: 800; text-transform: uppercase; }
1931
+ .rollout-persona p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
1932
+ .rollout-persona small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
1933
+ .rollout-persona[data-tier="premium"] { border-color: #d2b76d; background: #fffaf0; }
1934
+ .rollout-persona[data-tier="premium"] header span { background: #f4ead2; color: #705318; }
1935
+ .rollout-persona[data-tier="project"] { border-color: #8db8a6; }
1936
+ .rollout-review p { color: var(--muted); font-size: 9px; line-height: 1.5; }
1937
+ .rollout-review ul { display: grid; gap: 5px; padding-left: 17px; font-size: 9px; line-height: 1.45; }
1938
+ .rollout-review > div > small { color: var(--muted); font-size: 8px; line-height: 1.4; }
1939
+ .rollout-premium-state { display: grid; gap: 3px; margin: 10px 0; padding: 8px; background: var(--surface-2); }
1940
+ .rollout-premium-state strong,
1941
+ .rollout-premium-state span { font-size: 8px; line-height: 1.45; }
1942
+ .rollout-premium-state span { color: var(--muted); }
1943
+ .rollout-empty { padding: 24px; border: 1px dashed var(--line-strong); border-radius: 7px; color: var(--muted); text-align: center; }
1944
+ .rollout-empty strong { color: var(--ink); }
1945
+ .rollout-empty p { margin: 6px 0 0; font-size: 10px; line-height: 1.5; }
1946
+ .rollout-empty.compact { padding: 13px; }
1947
+ .rollout-invalid ul { display: grid; gap: 5px; padding: 0; list-style: none; text-align: left; }
1948
+ .rollout-invalid li { display: grid; grid-template-columns: minmax(120px, auto) 1fr; gap: 8px; }
1949
+
1950
+ @media (max-width: 900px) {
1951
+ .rollout-layout { grid-template-columns: 1fr; }
1952
+ .rollout-context-panel { width: 100%; }
1953
+ }
1954
+
1955
+ @media (max-width: 390px) {
1956
+ .rollout-view { overflow-x: hidden; padding: 12px; }
1957
+ .rollout-heading,
1958
+ .rollout-ledger-panel > header,
1959
+ .rollout-persona-section > header { display: grid; }
1960
+ .rollout-summary span { justify-items: start; text-align: left; }
1961
+ .rollout-layout { grid-template-columns: minmax(0, 1fr); }
1962
+ .rollout-cohort { padding: 12px; }
1963
+ .rollout-cohort > header,
1964
+ .rollout-baseline,
1965
+ .rollout-project > button { grid-template-columns: 1fr; }
1966
+ .rollout-cohort > header > p { text-align: left; }
1967
+ .rollout-project > button b { justify-self: start; }
1968
+ .rollout-facts { grid-template-columns: 1fr; }
1969
+ .rollout-invalid li { grid-template-columns: 1fr; }
1970
+ }
1971
+
1972
+ .companion-view { overflow-x: hidden; overflow-y: auto; padding: 24px; background: var(--canvas); }
1973
+ .companion-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
1974
+ .companion-heading h2 { margin: 0; font-size: 26px; }
1975
+ .companion-heading p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
1976
+ .companion-focus { display: grid; gap: 4px; min-width: min(100%, 440px); }
1977
+ .companion-focus label span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
1978
+ .companion-focus > div { display: flex; gap: 6px; }
1979
+ .companion-focus input { min-width: 0; width: 260px; height: 36px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface); }
1980
+ .companion-focus button[type="submit"] { min-height: 36px; padding: 0 13px; border: 1px solid var(--green); border-radius: 5px; background: var(--green); color: white; cursor: pointer; font-size: 10px; font-weight: 800; }
1981
+ .companion-focus input:focus-visible,
1982
+ .companion-recommendation > button:focus-visible,
1983
+ .companion-handoff:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
1984
+ .companion-notice,
1985
+ .companion-contract-error,
1986
+ .companion-status { margin-top: 10px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 10px; line-height: 1.5; }
1987
+ .companion-notice.advisory { border-left: 4px solid var(--green); background: var(--green-soft); color: #174b38; }
1988
+ .companion-notice.security { border-left: 4px solid var(--amber); background: var(--amber-soft); color: #604514; }
1989
+ .companion-contract-error { border-color: #e8b7b1; background: var(--red-soft); color: #8c2f26; }
1990
+ .companion-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .75fr); gap: 14px; margin-top: 14px; }
1991
+ .companion-runway-panel,
1992
+ .companion-context-panel { min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
1993
+ .companion-runway-panel > header,
1994
+ .companion-persona-section > header,
1995
+ .companion-review > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
1996
+ .companion-runway-panel > header { padding: 16px; border-bottom: 1px solid var(--line); }
1997
+ .companion-runway-panel h3,
1998
+ .companion-context h3,
1999
+ .companion-persona-section h3,
2000
+ .companion-review h3 { margin: 0; }
2001
+ .companion-runway { position: relative; display: grid; gap: 10px; margin: 18px 16px; padding-left: 28px; }
2002
+ .companion-runway::before { position: absolute; top: 5px; bottom: 5px; left: 8px; width: 1px; background: var(--line-strong); content: ''; }
2003
+ .companion-recommendation { position: relative; }
2004
+ .companion-recommendation::before { position: absolute; z-index: 1; top: 18px; left: -24px; width: 9px; height: 9px; border: 2px solid var(--surface); border-radius: 50%; background: var(--green); box-shadow: 0 0 0 1px var(--green); content: ''; }
2005
+ .companion-recommendation.tone-human-decision::before { background: var(--amber); box-shadow: 0 0 0 1px var(--amber); }
2006
+ .companion-recommendation.tone-blocked::before { background: var(--red); box-shadow: 0 0 0 1px var(--red); }
2007
+ .companion-recommendation > button { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 5px 12px; width: 100%; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); cursor: pointer; text-align: left; transition: border-color 120ms ease, box-shadow 120ms ease; }
2008
+ .companion-recommendation > button:hover { border-color: var(--line-strong); background: var(--surface); }
2009
+ .companion-recommendation > button[aria-current="true"] { border-color: var(--green); box-shadow: 0 0 0 3px rgb(23 107 77 / 9%); }
2010
+ .companion-rank { grid-row: 1 / 3; color: var(--muted); font-size: 20px; font-weight: 800; }
2011
+ .companion-recommendation > button strong { font-size: 12px; }
2012
+ .companion-class { grid-row: 1 / 3; grid-column: 3; align-self: center; padding: 4px 7px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2013
+ .tone-human-decision .companion-class { background: var(--amber-soft); color: var(--amber); }
2014
+ .tone-blocked .companion-class { background: var(--red-soft); color: var(--red); }
2015
+ .companion-reason { grid-column: 2; color: var(--muted); font-size: 9px; line-height: 1.45; }
2016
+ .companion-route { display: flex; flex-wrap: wrap; gap: 5px; margin: 7px 0 0 50px; }
2017
+ .companion-route span { padding: 3px 6px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 8px; }
2018
+ .companion-legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 11px 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; }
2019
+ .companion-legend b { color: var(--ink); }
2020
+ .companion-context-panel { align-self: start; }
2021
+ .companion-context,
2022
+ .companion-persona-section,
2023
+ .companion-review { padding: 16px; }
2024
+ .companion-persona-section,
2025
+ .companion-review { border-top: 1px solid var(--line); }
2026
+ .companion-context > header p,
2027
+ .companion-persona-section header p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
2028
+ .companion-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 13px 0 0; }
2029
+ .companion-facts div { min-width: 0; padding: 8px; background: var(--surface-2); }
2030
+ .companion-facts dt { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2031
+ .companion-facts dd { overflow-wrap: anywhere; margin: 4px 0 0; font-size: 9px; font-weight: 700; }
2032
+ .companion-decision { margin: 12px 0 0; padding: 10px; border-left: 3px solid var(--amber); background: var(--amber-soft); color: #72420d; font-size: 9px; line-height: 1.5; }
2033
+ .companion-decision.blocked { border-left-color: var(--red); background: var(--red-soft); color: #7f2929; }
2034
+ .companion-handoff { margin-top: 10px; }
2035
+ .companion-blockers { margin-top: 13px; }
2036
+ .companion-blockers h4 { margin: 0; font-size: 10px; }
2037
+ .companion-blockers ul { display: grid; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
2038
+ .companion-blockers li { display: grid; gap: 3px; padding: 8px; border-left: 3px solid var(--red); background: var(--red-soft); }
2039
+ .companion-blockers li strong { font-size: 8px; }
2040
+ .companion-blockers li span { color: var(--muted); font-size: 9px; line-height: 1.4; }
2041
+ .companion-personas { display: grid; gap: 7px; margin-top: 11px; }
2042
+ .companion-persona { padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
2043
+ .companion-persona header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
2044
+ .companion-persona header span { padding: 3px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-weight: 800; text-transform: uppercase; }
2045
+ .companion-persona p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
2046
+ .companion-persona small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
2047
+ .companion-persona[data-tier="premium"] { border-color: #d2b76d; background: #fffaf0; }
2048
+ .companion-persona[data-tier="premium"] header span { background: #f4ead2; color: #705318; }
2049
+ .companion-persona[data-tier="project"] { border-color: #8db8a6; }
2050
+ .companion-review ul { display: grid; gap: 5px; margin: 10px 0 0; padding-left: 17px; font-size: 9px; line-height: 1.45; }
2051
+ .companion-baseline { display: grid; gap: 4px; margin-top: 11px; padding: 9px; background: var(--surface-2); }
2052
+ .companion-baseline strong { font-size: 9px; }
2053
+ .companion-baseline p,
2054
+ .companion-baseline small { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
2055
+ .companion-empty { padding: 24px; border: 1px dashed var(--line-strong); border-radius: 7px; color: var(--muted); text-align: center; }
2056
+ .companion-empty strong { color: var(--ink); }
2057
+ .companion-empty p { margin: 6px 0 0; font-size: 9px; line-height: 1.5; }
2058
+ .companion-empty.compact { padding: 13px; }
2059
+
2060
+ @media (max-width: 960px) {
2061
+ .companion-layout { grid-template-columns: 1fr; }
2062
+ .companion-context-panel { width: 100%; }
2063
+ }
2064
+
2065
+ @media (max-width: 600px) {
2066
+ .companion-view { padding: 12px; }
2067
+ .companion-heading { align-items: stretch; flex-direction: column; }
2068
+ .companion-focus { min-width: 0; }
2069
+ .companion-focus > div { flex-wrap: wrap; }
2070
+ .companion-focus input { flex: 1 1 100%; width: 100%; }
2071
+ .companion-recommendation > button { grid-template-columns: 32px minmax(0, 1fr); }
2072
+ .companion-class { grid-row: auto; grid-column: 2; justify-self: start; }
2073
+ .companion-reason { grid-column: 2; }
2074
+ .companion-route { margin-left: 44px; }
2075
+ .companion-facts { grid-template-columns: 1fr; }
2076
+ }
2077
+
2078
+ @media (prefers-reduced-motion: reduce) {
2079
+ .companion-recommendation > button { transition: none; }
2080
+ }
2081
+
2082
+ .phase-studio-view { min-width: 0; overflow-x: hidden; overflow-y: auto; padding: 20px; background: var(--canvas); }
2083
+ .phase-studio-heading { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(240px, .55fr) auto; align-items: end; gap: 16px; }
2084
+ .phase-studio-heading h2 { margin: 4px 0 5px; }
2085
+ .phase-studio-heading p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
2086
+ .phase-studio-heading label { display: grid; gap: 5px; }
2087
+ .phase-studio-heading label span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
2088
+ .phase-studio-heading select { width: 100%; min-height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); }
2089
+ .phase-studio-state { align-self: center; max-width: 220px; overflow-wrap: anywhere; padding: 8px 10px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 8px; }
2090
+ .phase-studio-context-bridge { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line); border-left: 4px solid var(--green); border-radius: 7px; background: var(--surface); }
2091
+ .phase-studio-context-bridge > div { display: grid; grid-template-columns: minmax(150px, 1fr) auto minmax(150px, 1fr) auto minmax(150px, 1fr); align-items: center; gap: 8px; }
2092
+ .phase-studio-context-bridge > div > span { color: var(--muted); font-size: 14px; text-align: center; }
2093
+ .phase-studio-context-bridge button { display: grid; gap: 4px; min-height: 54px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); color: var(--ink); cursor: pointer; text-align: left; }
2094
+ .phase-studio-context-bridge button span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
2095
+ .phase-studio-context-bridge button strong { font-size: 10px; }
2096
+ .phase-studio-context-bridge button:hover:not(:disabled) { border-color: var(--line-strong); background: var(--surface); }
2097
+ .phase-studio-context-bridge button:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
2098
+ .phase-studio-context-bridge button[aria-pressed="true"] { border-color: var(--green); background: var(--green-soft); box-shadow: 0 0 0 2px rgb(23 107 77 / 8%); }
2099
+ .phase-studio-context-bridge button:disabled { cursor: not-allowed; opacity: .62; }
2100
+ .phase-studio-context-bridge > p { margin: 9px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
2101
+ .phase-studio-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr) 270px; align-items: start; gap: 12px; margin-top: 12px; }
2102
+ .phase-studio-spine, .phase-studio-canvas, .phase-studio-persona-rail { min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
2103
+ .phase-studio-spine, .phase-studio-persona-rail { padding: 15px; }
2104
+ .phase-studio-spine h3, .phase-studio-persona-rail h3 { margin: 4px 0 6px; font-size: 15px; }
2105
+ .phase-studio-spine > p, .phase-studio-persona-rail > p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
2106
+ .phase-studio-spine nav { display: grid; gap: 4px; margin-top: 14px; }
2107
+ .phase-studio-spine nav button { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 8px; width: 100%; padding: 8px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--ink); cursor: pointer; text-align: left; }
2108
+ .phase-studio-spine nav button:hover, .phase-studio-spine nav button:focus-visible { border-color: var(--line); background: var(--surface-2); outline: 0; }
2109
+ .phase-studio-spine nav button[aria-current="step"] { border-color: #b8cddd; background: var(--blue-soft); }
2110
+ .phase-studio-spine nav button b { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--muted); font-size: 8px; }
2111
+ .phase-studio-spine nav button strong, .phase-studio-spine nav button small { display: block; }
2112
+ .phase-studio-spine nav button strong { font-size: 9px; }
2113
+ .phase-studio-spine nav button small { margin-top: 2px; color: var(--muted); font-size: 8px; }
2114
+ .phase-studio-history { display: grid; gap: 7px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
2115
+ .phase-studio-history h4 { margin: 0; font-size: 10px; }
2116
+ .phase-studio-history article { display: grid; gap: 3px; padding: 8px; border-left: 3px solid var(--blue); background: var(--surface-2); }
2117
+ .phase-studio-history strong, .phase-studio-history span, .phase-studio-history small, .phase-studio-history p { margin: 0; font-size: 8px; line-height: 1.4; }
2118
+ .phase-studio-history span, .phase-studio-history small, .phase-studio-history p { color: var(--muted); }
2119
+ .phase-studio-canvas { display: grid; grid-template-rows: auto minmax(300px, auto) auto; overflow: hidden; }
2120
+ .phase-studio-notice { padding: 9px 14px; border-bottom: 1px solid #d9c99f; background: var(--amber-soft); color: #6f4b19; font-size: 9px; line-height: 1.45; }
2121
+ .phase-studio-notice.error { border-color: #e3b6b6; background: var(--red-soft); color: #762828; }
2122
+ .phase-studio-content { min-width: 0; padding: 18px; }
2123
+ .phase-studio-empty { display: grid; min-height: 220px; place-items: center; align-content: center; gap: 7px; padding: 20px; border: 1px dashed var(--line-strong); color: var(--muted); text-align: center; }
2124
+ .phase-studio-empty strong { color: var(--ink); }
2125
+ .phase-studio-empty p, .phase-studio-empty small { max-width: 560px; margin: 0; font-size: 9px; line-height: 1.5; }
2126
+ .phase-studio-empty.compact { min-height: 0; padding: 12px; }
2127
+ .phase-studio-form { display: grid; gap: 16px; }
2128
+ .phase-studio-question { padding-bottom: 13px; border-bottom: 1px solid var(--line); }
2129
+ .phase-studio-question h3 { margin: 4px 0 5px; font-size: 17px; }
2130
+ .phase-studio-question p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
2131
+ .phase-studio-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
2132
+ .phase-studio-form-grid label { display: grid; gap: 5px; min-width: 0; }
2133
+ .phase-studio-form-grid label.wide { grid-column: 1 / -1; }
2134
+ .phase-studio-form-grid label > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
2135
+ .phase-studio-form-grid input, .phase-studio-form-grid select, .phase-studio-form-grid textarea { width: 100%; min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); font: inherit; }
2136
+ .phase-studio-form-grid input, .phase-studio-form-grid select { min-height: 39px; }
2137
+ .phase-studio-form-grid textarea { resize: vertical; line-height: 1.5; }
2138
+ .phase-studio-form-grid input:focus, .phase-studio-form-grid select:focus, .phase-studio-form-grid textarea:focus { border-color: var(--green); outline: 2px solid rgb(23 107 77 / 11%); }
2139
+ .phase-studio-guidance { padding: 12px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
2140
+ .phase-studio-guidance h4 { margin: 0; font-size: 10px; }
2141
+ .phase-studio-guidance ul { display: grid; gap: 4px; margin: 8px 0; padding-left: 17px; font-size: 9px; line-height: 1.45; }
2142
+ .phase-studio-guidance small { color: var(--muted); font-size: 8px; line-height: 1.4; }
2143
+ .phase-studio-resolution-form { margin-bottom: 16px; padding: 13px; border: 1px solid #d8c18f; border-radius: 6px; background: var(--amber-soft); }
2144
+ .phase-studio-destinations { display: grid; gap: 5px; padding: 10px; border: 1px solid var(--line); background: var(--surface); }
2145
+ .phase-studio-destinations strong { font-size: 9px; }
2146
+ .phase-studio-destinations code { overflow-wrap: anywhere; color: var(--green); font-size: 8px; }
2147
+ .phase-studio-thread { display: grid; gap: 8px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
2148
+ .phase-studio-thread h3, .phase-studio-review-grid h4, .phase-studio-shared-items h4 { margin: 4px 0 8px; }
2149
+ .phase-studio-entry { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--line); border-left: 3px solid var(--blue); border-radius: 5px; background: var(--surface-2); }
2150
+ .phase-studio-entry[data-owner-context="business"] { border-left-color: var(--green); }
2151
+ .phase-studio-entry[data-owner-context="shared-review"] { border-left-color: var(--amber); }
2152
+ .phase-studio-entry header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
2153
+ .phase-studio-entry header span, .phase-studio-entry header small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
2154
+ .phase-studio-entry header strong { margin-left: auto; font-size: 9px; }
2155
+ .phase-studio-entry p { margin: 0; font-size: 10px; line-height: 1.5; }
2156
+ .phase-studio-entry footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; color: var(--muted); font-size: 8px; }
2157
+ .phase-studio-entry footer b { color: var(--blue); }
2158
+ .phase-studio-muted { color: var(--muted); font-size: 9px; line-height: 1.5; }
2159
+ .phase-studio-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
2160
+ .phase-studio-review-grid > section { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 6px; }
2161
+ .phase-studio-shared-items { margin-top: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
2162
+ .phase-studio-shared-items .phase-studio-review-grid { display: block; }
2163
+ .phase-studio-conflicts { display: grid; gap: 8px; margin-top: 12px; }
2164
+ .phase-studio-conflicts article { padding: 10px; border-left: 3px solid var(--red); background: var(--red-soft); }
2165
+ .phase-studio-conflicts article[data-status="resolved"] { border-left-color: var(--green); background: var(--green-soft); }
2166
+ .phase-studio-conflicts strong, .phase-studio-conflicts p, .phase-studio-conflicts small { margin: 0 0 4px; font-size: 9px; line-height: 1.45; }
2167
+ .phase-studio-actions { display: grid; gap: 9px; padding: 11px 14px; border-top: 1px solid var(--line); background: var(--surface); }
2168
+ .phase-studio-actions > p { margin: 0; color: var(--muted); font-size: 8px; }
2169
+ .phase-studio-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
2170
+ .phase-studio-persona-rail #phaseStudioPersonas { display: grid; gap: 8px; margin-top: 14px; }
2171
+ .phase-studio-persona-rail #phaseStudioPersonas article { padding: 10px; border-left: 3px solid var(--blue); background: var(--surface-2); }
2172
+ .phase-studio-persona-rail #phaseStudioPersonas article[data-tier="project"] { border-left-color: var(--green); }
2173
+ .phase-studio-persona-rail #phaseStudioPersonas article[data-tier="premium"] { border-left-color: #b9862b; background: #fffaf0; }
2174
+ .phase-studio-persona-rail #phaseStudioPersonas header { display: flex; justify-content: space-between; gap: 7px; }
2175
+ .phase-studio-persona-rail #phaseStudioPersonas header strong { font-size: 9px; }
2176
+ .phase-studio-persona-rail #phaseStudioPersonas header span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2177
+ .phase-studio-persona-rail #phaseStudioPersonas p { margin: 5px 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
2178
+ .phase-studio-persona-rail #phaseStudioPersonas small { color: var(--blue); font-size: 8px; }
2179
+ .phase-studio-persona-baseline { margin-top: 14px; padding: 11px; border: 1px solid #b8d9ca; background: var(--green-soft); }
2180
+ .phase-studio-persona-baseline strong { color: var(--green); font-size: 9px; }
2181
+ .phase-studio-persona-baseline p, .phase-studio-persona-baseline small { display: block; margin: 5px 0 0; color: #405763; font-size: 8px; line-height: 1.45; }
2182
+ .phase-studio-advisory { margin-top: 13px !important; padding-top: 11px; border-top: 1px solid var(--line); }
2183
+ .prototype-review-panel { margin-top: 14px; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); }
2184
+ .prototype-review-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; cursor: pointer; list-style: none; background: var(--surface-2); }
2185
+ .prototype-review-panel > summary::-webkit-details-marker { display: none; }
2186
+ .prototype-review-panel > summary b, .prototype-review-panel > summary small { display: block; }
2187
+ .prototype-review-panel > summary small { margin-top: 3px; color: var(--muted); font-size: 8px; }
2188
+ .prototype-review-panel > summary em { padding: 4px 7px; border-radius: 999px; background: var(--green-soft); color: #12573f; font-size: 8px; font-style: normal; font-weight: 800; text-transform: capitalize; }
2189
+ .prototype-review-notice { padding: 9px 16px; border-block: 1px solid #d9c99f; background: var(--amber-soft); color: #6f4b19; font-size: 9px; }
2190
+ .prototype-review-notice.error { border-color: #e3b6b6; background: var(--red-soft); color: #762828; }
2191
+ .prototype-review-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 17px; border-bottom: 1px solid var(--line); }
2192
+ .prototype-review-heading h3, .prototype-review-layout h4, .prototype-review-availability h4 { margin: 3px 0 0; }
2193
+ .prototype-review-heading p { max-width: 76ch; margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
2194
+ .prototype-review-stage { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--canvas); }
2195
+ .prototype-review-stage button { min-height: 32px; padding: 0 10px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); cursor: pointer; font-size: 9px; font-weight: 750; }
2196
+ .prototype-review-stage button[aria-pressed="true"] { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgb(20 35 30 / 12%); }
2197
+ .prototype-review-availability { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 17px; border-bottom: 1px solid var(--line); }
2198
+ .prototype-review-availability > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
2199
+ .prototype-review-availability > div:last-child span { display: grid; gap: 2px; min-width: 90px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); }
2200
+ .prototype-review-availability span[data-available="true"] { border-color: #9ec7b5; background: var(--green-soft); }
2201
+ .prototype-review-availability b { font-size: 8px; text-transform: capitalize; }
2202
+ .prototype-review-availability small { color: var(--muted); font-size: 8px; }
2203
+ .prototype-review-layout { display: grid; grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr); gap: 14px; padding: 17px; }
2204
+ .prototype-review-layout > section { min-width: 0; }
2205
+ .prototype-review-personas, .prototype-review-findings { display: grid; gap: 8px; margin-top: 10px; }
2206
+ .prototype-review-persona { padding: 10px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 5px; background: var(--surface-2); }
2207
+ .prototype-review-persona[data-tier="project"] { border-left-color: var(--green); }
2208
+ .prototype-review-persona[data-tier="premium"] { border-color: #d2b76d; border-left-width: 4px; background: #fffaf0; }
2209
+ .prototype-review-persona header, .prototype-review-findings article > header { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
2210
+ .prototype-review-persona header strong, .prototype-review-findings article > header strong { font-size: 9px; }
2211
+ .prototype-review-persona header span, .prototype-review-findings article > header span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2212
+ .prototype-review-persona p, .prototype-review-persona small { display: block; margin: 5px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
2213
+ .prototype-review-findings article { padding: 10px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 5px; }
2214
+ .prototype-review-findings article[data-severity="material"], .prototype-review-findings article[data-severity="critical"] { border-left-color: var(--amber); }
2215
+ .prototype-review-findings article > p { margin: 6px 0; font-size: 9px; line-height: 1.5; }
2216
+ .prototype-review-findings article > small { color: var(--muted); font-size: 8px; }
2217
+ .prototype-review-findings article > footer { display: grid; grid-template-columns: auto 1fr; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
2218
+ .prototype-review-findings article > footer b { color: var(--green); font-size: 8px; text-transform: uppercase; }
2219
+ .prototype-review-findings article > footer span { color: var(--muted); font-size: 8px; line-height: 1.4; }
2220
+ .prototype-review-empty { padding: 15px; border: 1px dashed var(--line-strong); color: var(--muted); text-align: center; }
2221
+ .prototype-review-empty strong { color: var(--ink); font-size: 9px; }
2222
+ .prototype-review-empty p { margin: 5px 0 0; font-size: 8px; line-height: 1.45; }
2223
+ .prototype-review-form { border-top: 1px solid var(--line); }
2224
+ .prototype-review-form > label { display: grid; gap: 6px; padding: 14px 17px; }
2225
+ .prototype-review-form > label > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
2226
+ .prototype-review-form textarea { width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 5px; background: #f8faf9; color: var(--ink); font: 9px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; resize: vertical; }
2227
+ .prototype-review-form textarea:focus { border-color: var(--green); outline: 2px solid rgb(23 107 77 / 11%); }
2228
+ .prototype-review-form footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 11px 17px; border-top: 1px solid var(--line); background: var(--surface-2); }
2229
+ .prototype-review-form footer p { margin: 0; color: var(--muted); font-size: 8px; }
2230
+ .prototype-review-form footer div { display: flex; gap: 6px; }
2231
+
2232
+ @media (max-width: 1100px) {
2233
+ .phase-studio-layout { grid-template-columns: 220px minmax(0, 1fr); }
2234
+ .phase-studio-persona-rail { grid-column: 1 / -1; }
2235
+ .phase-studio-persona-rail #phaseStudioPersonas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2236
+ }
2237
+
2238
+ @media (max-width: 760px) {
2239
+ .phase-studio-heading { grid-template-columns: 1fr; align-items: stretch; }
2240
+ .phase-studio-state { max-width: none; }
2241
+ .phase-studio-context-bridge > div { grid-template-columns: 1fr; }
2242
+ .phase-studio-context-bridge > div > span { transform: rotate(90deg); }
2243
+ .phase-studio-layout { grid-template-columns: minmax(0, 1fr); }
2244
+ .phase-studio-spine { overflow-x: auto; }
2245
+ .phase-studio-spine nav { display: flex; min-width: max-content; }
2246
+ .phase-studio-spine nav button { width: 180px; }
2247
+ .phase-studio-persona-rail { grid-column: auto; }
2248
+ .prototype-review-heading, .prototype-review-availability, .prototype-review-form footer { display: grid; }
2249
+ .prototype-review-availability > div:last-child { justify-content: flex-start; }
2250
+ .prototype-review-layout { grid-template-columns: 1fr; }
2251
+ }
2252
+
2253
+ @media (max-width: 520px) {
2254
+ .phase-studio-form-grid, .phase-studio-review-grid { grid-template-columns: minmax(0, 1fr); }
2255
+ .phase-studio-form-grid label.wide { grid-column: auto; }
2256
+ .phase-studio-actions > div { display: grid; grid-template-columns: 1fr; }
2257
+ .phase-studio-actions button { width: 100%; }
2258
+ .phase-studio-persona-rail #phaseStudioPersonas { grid-template-columns: 1fr; }
2259
+ .phase-studio-entry header strong { width: 100%; margin-left: 0; }
2260
+ .prototype-review-stage, .prototype-review-form footer div { display: grid; }
2261
+ .prototype-review-form footer button { width: 100%; }
2262
+ }
2263
+
2264
+ @media (max-width: 390px) {
2265
+ .phase-studio-view { padding: 10px; }
2266
+ .phase-studio-context-bridge, .phase-studio-spine, .phase-studio-content, .phase-studio-persona-rail { padding: 11px; }
2267
+ .phase-studio-spine nav button { width: 155px; }
2268
+ .phase-studio-entry footer { display: grid; }
2269
+ }
2270
+
2271
+ @media (prefers-reduced-motion: reduce) {
2272
+ .phase-studio-context-bridge *, .phase-studio-layout * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
2273
+ }
2274
+
2275
+ /* Context Inspector */
2276
+ .context-inspector-view { overflow-x: hidden; overflow-y: auto; padding: 24px; background: var(--canvas); }
2277
+ .context-inspector-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
2278
+ .context-inspector-heading h2 { margin: 0; font-size: 26px; }
2279
+ .context-inspector-heading p { max-width: 720px; margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
2280
+ .context-inspector-summary { display: flex; gap: 6px; }
2281
+ .context-inspector-summary > span { display: grid; min-width: 92px; gap: 2px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
2282
+ .context-inspector-summary strong { font-size: 13px; font-variant-numeric: tabular-nums; text-transform: capitalize; }
2283
+ .context-inspector-summary small { color: var(--muted); font-size: 8px; }
2284
+ .context-manifest-status.status-ready { border-color: #8db8a6; background: var(--green-soft); color: #12573f; }
2285
+ .context-manifest-status.status-non-ready { border-color: #d99b93; background: var(--red-soft); color: #8c2f26; }
2286
+ .context-inspector-form { display: grid; grid-template-columns: 1fr 1.2fr .8fr .8fr; gap: 9px; margin-top: 14px; padding: 13px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
2287
+ .context-inspector-form label { display: grid; align-content: start; gap: 5px; min-width: 0; }
2288
+ .context-inspector-form label > span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .03em; }
2289
+ .context-inspector-form label > span small { font-weight: 600; }
2290
+ .context-inspector-form input, .context-inspector-form select { width: 100%; min-width: 0; min-height: 38px; padding: 0 9px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface-2); color: var(--ink); }
2291
+ .context-inspector-form label.required > span::after { margin-left: 4px; color: var(--red); content: 'required'; font-size: 7px; text-transform: uppercase; }
2292
+ .context-focus-field, .context-digest-field { grid-column: span 2; }
2293
+ .context-inspector-form button { align-self: end; justify-self: start; }
2294
+ .context-inspector-status, .context-overflow-alert { margin-top: 10px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 10px; line-height: 1.5; }
2295
+ .context-inspector-status.error, .context-overflow-alert { border-color: #d99b93; border-left: 4px solid var(--red); background: var(--red-soft); color: #7f2929; }
2296
+ .context-inspector-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .75fr); gap: 14px; margin-top: 14px; }
2297
+ .context-inspector-side { display: grid; align-content: start; gap: 14px; }
2298
+ .context-inspector-panel { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
2299
+ .context-inspector-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 14px; border-bottom: 1px solid var(--line); }
2300
+ .context-inspector-panel h3 { margin: 0; font-size: 13px; }
2301
+ .context-inspector-panel header p { max-width: 430px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; text-align: right; }
2302
+ .context-budget-runway { display: grid; gap: 7px; padding: 14px; }
2303
+ .context-budget-segment { display: grid; grid-template-columns: 8px minmax(0, 1fr); align-items: stretch; gap: 10px; min-height: 48px; padding: 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
2304
+ .context-budget-segment > span { width: 8px; border-radius: 3px; background: var(--blue); }
2305
+ .context-budget-segment > div { display: grid; align-content: center; gap: 3px; }
2306
+ .context-budget-segment strong { font-size: 10px; }
2307
+ .context-budget-segment small { color: var(--muted); font-size: 8px; text-transform: capitalize; }
2308
+ .context-budget-segment.mandatory { border-left: 3px solid var(--green); }
2309
+ .context-budget-segment.relevant > span { background: var(--blue); }
2310
+ .context-budget-segment.reused { border-color: #8db8a6; background: var(--green-soft); }
2311
+ .context-budget-segment.deferred { border-style: dashed; opacity: .66; }
2312
+ .context-budget-segment.overflow { border-color: #d99b93; background: var(--red-soft); opacity: 1; }
2313
+ .context-budget-segment.overflow > span { background: var(--red); }
2314
+ .context-evidence-ledger { border-top: 1px solid var(--line); }
2315
+ .context-evidence-ledger > header, .context-evidence-ledger > footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 7px; padding: 10px 14px; background: var(--surface-2); font-size: 8px; }
2316
+ .context-evidence-ledger > header span { font-weight: 800; text-transform: uppercase; }
2317
+ .context-evidence-ledger code { overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
2318
+ .context-evidence-ledger > article { display: grid; grid-template-columns: minmax(120px, .7fr) minmax(180px, 1.3fr) minmax(110px, .6fr); gap: 10px; padding: 9px 14px; border-top: 1px solid var(--line); }
2319
+ .context-evidence-ledger article div { min-width: 0; }
2320
+ .context-evidence-ledger article strong, .context-evidence-ledger article small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2321
+ .context-evidence-ledger article strong { font-size: 9px; }
2322
+ .context-evidence-ledger article small, .context-evidence-ledger article > span { color: var(--muted); font-size: 8px; line-height: 1.4; }
2323
+ .context-fidelity-rail { padding: 14px; }
2324
+ .context-fidelity-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px; border-left: 4px solid var(--green); background: var(--green-soft); }
2325
+ .context-fidelity-summary.status-fail { border-left-color: var(--red); background: var(--red-soft); }
2326
+ .context-fidelity-summary strong { font-size: 10px; text-transform: uppercase; }
2327
+ .context-fidelity-summary span { font-size: 8px; }
2328
+ .context-fidelity-rail ul { display: grid; gap: 5px; margin: 10px 0; padding: 0; list-style: none; }
2329
+ .context-fidelity-rail li { display: flex; align-items: center; gap: 7px; padding: 6px 8px; background: var(--surface-2); color: var(--muted); font-size: 8px; }
2330
+ .context-fidelity-rail li b { display: grid; width: 16px; height: 16px; place-items: center; border-radius: 50%; background: var(--green-soft); color: var(--green); }
2331
+ .context-fidelity-rail li.status-fail b { background: var(--red-soft); color: var(--red); }
2332
+ .context-fidelity-rail p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
2333
+ .context-active-personas { display: grid; gap: 7px; padding: 14px; }
2334
+ .context-active-personas article { padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
2335
+ .context-active-personas article[data-tier="premium"] { border-color: #d2b76d; background: #fffaf0; }
2336
+ .context-active-personas article[data-tier="project"] { border-color: #8db8a6; }
2337
+ .context-active-personas header { display: flex; justify-content: space-between; gap: 8px; }
2338
+ .context-active-personas header strong { font-size: 9px; }
2339
+ .context-active-personas header span { padding: 3px 6px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: 7px; font-weight: 800; text-transform: uppercase; }
2340
+ .context-active-personas p { margin: 6px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
2341
+ .context-active-personas small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; }
2342
+ .context-authority p { margin: 0; padding: 14px; border-left: 4px solid var(--amber); background: var(--amber-soft); color: #604514; font-size: 9px; line-height: 1.5; }
2343
+ .context-inspector-empty { padding: 20px; color: var(--muted); text-align: center; }
2344
+ .context-inspector-empty strong { color: var(--ink); font-size: 10px; }
2345
+ .context-inspector-empty p { margin: 5px 0 0; font-size: 8px; line-height: 1.45; }
2346
+
2347
+ @media (max-width: 960px) {
2348
+ .context-inspector-heading { align-items: flex-start; flex-direction: column; }
2349
+ .context-inspector-layout { grid-template-columns: 1fr; }
2350
+ .context-inspector-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2351
+ }
2352
+
2353
+ @media (max-width: 720px) {
2354
+ .context-inspector-view { padding: 12px; }
2355
+ .context-inspector-form { grid-template-columns: 1fr; }
2356
+ .context-focus-field, .context-digest-field { grid-column: auto; }
2357
+ .context-inspector-form button { width: 100%; }
2358
+ .context-inspector-summary { width: 100%; overflow-x: auto; }
2359
+ .context-inspector-summary > span { flex: 1 0 92px; }
2360
+ .context-inspector-panel > header { align-items: flex-start; flex-direction: column; }
2361
+ .context-inspector-panel header p { text-align: left; }
2362
+ .context-evidence-ledger > article { grid-template-columns: 1fr; }
2363
+ }
2364
+
2365
+ @media (prefers-reduced-motion: reduce) {
2366
+ .context-budget-segment, .context-inspector-form button { scroll-behavior: auto; transition: none; }
2367
+ }
2368
+
2369
+ /* Organisation policy design gates */
2370
+ .policy-view { min-width: 0; overflow-x: hidden; overflow-y: auto; padding: 24px; background: var(--canvas); }
2371
+ .policy-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
2372
+ .policy-heading h2 { margin: 0; font-size: 26px; }
2373
+ .policy-heading p { max-width: 700px; margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
2374
+ .policy-view-toggle { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
2375
+ .policy-view-toggle button { min-height: 32px; padding: 0 12px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); font-size: 9px; font-weight: 800; }
2376
+ .policy-view-toggle button.active { background: var(--ink); color: var(--surface); }
2377
+ .policy-authority-notice { margin-top: 14px; padding: 11px 14px; border: 1px solid #d9bd76; border-left: 4px solid var(--amber); border-radius: 6px; background: var(--amber-soft); color: #604514; font-size: 9px; line-height: 1.55; }
2378
+ .policy-intent-form { display: grid; grid-template-columns: minmax(220px, 480px) auto; align-items: end; gap: 9px; margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
2379
+ .policy-intent-form label { display: grid; gap: 5px; min-width: 0; }
2380
+ .policy-intent-form label span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2381
+ .policy-intent-form input { width: 100%; min-width: 0; min-height: 36px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface-2); color: var(--ink); }
2382
+ .policy-error, .policy-status { margin-top: 10px; padding: 9px 12px; border-radius: 5px; font-size: 9px; }
2383
+ .policy-error { border: 1px solid #d99b93; border-left: 4px solid var(--red); background: var(--red-soft); color: #7f2929; }
2384
+ .policy-status:not(:empty) { border: 1px solid var(--line); background: var(--surface); color: var(--muted); }
2385
+ .policy-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 320px); align-items: start; gap: 14px; min-width: 0; margin-top: 14px; }
2386
+ .policy-main { display: grid; gap: 12px; min-width: 0; }
2387
+ .policy-panel { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
2388
+ .policy-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
2389
+ .policy-panel h3 { margin: 0; font-size: 14px; text-transform: capitalize; }
2390
+ .policy-panel > header > span { color: var(--muted); font-size: 9px; font-weight: 800; }
2391
+ .policy-panel > p, .policy-panel > footer { margin: 7px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
2392
+ .policy-outcome-panel { border-left: 4px solid var(--green); }
2393
+ .policy-outcome-panel:has(.status-deny), .policy-outcome-panel:has(.status-review-required) { border-left-color: var(--red); }
2394
+ .policy-outcome { padding: 5px 8px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: 8px; font-weight: 800; white-space: nowrap; }
2395
+ .policy-outcome.status-deny, .policy-outcome.status-review-required { background: var(--red-soft); color: var(--red); }
2396
+ .policy-digests dl { display: grid; gap: 7px; margin: 0; }
2397
+ .policy-digests dl div { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 9px; padding: 8px; background: var(--surface-2); }
2398
+ .policy-digests dt { color: var(--muted); font-size: 8px; font-weight: 800; }
2399
+ .policy-digests dd { min-width: 0; margin: 0; }
2400
+ .policy-digests code { display: block; overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
2401
+ .policy-facts, .policy-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
2402
+ .policy-facts article, .policy-rules article { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
2403
+ .policy-facts strong, .policy-rules strong { font-size: 9px; }
2404
+ .policy-facts p { margin: 5px 0; font-size: 9px; }
2405
+ .policy-facts small, .policy-rules small { display: block; margin-top: 5px; color: var(--muted); font-size: 7px; }
2406
+ .policy-rules article > header { display: flex; justify-content: space-between; gap: 8px; }
2407
+ .policy-rules article > header span { color: var(--blue); font-size: 7px; font-weight: 800; text-transform: uppercase; }
2408
+ .policy-rules code { display: block; overflow: hidden; margin-top: 6px; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
2409
+ .policy-rules ul, .policy-outcome-panel ul { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 8px; line-height: 1.5; }
2410
+ .policy-panel > .primary-action { margin-top: 11px; }
2411
+ .policy-personas { display: grid; gap: 8px; }
2412
+ .policy-personas > p { margin: -3px 0 3px; }
2413
+ .policy-personas article { padding: 9px; border-left: 3px solid var(--blue); background: var(--surface-2); }
2414
+ .policy-personas article[data-tier="premium"] { border-left-color: #b9862b; background: #fffaf0; }
2415
+ .policy-personas article[data-tier="project"] { border-left-color: var(--green); }
2416
+ .policy-personas article header { display: flex; justify-content: space-between; gap: 8px; }
2417
+ .policy-personas article header strong { font-size: 9px; }
2418
+ .policy-personas article header span { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; }
2419
+ .policy-personas article p { margin: 5px 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
2420
+ .policy-personas article small { color: var(--blue); font-size: 7px; }
2421
+ .policy-reviews form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 11px 0; border-top: 1px solid var(--line); }
2422
+ .policy-reviews form > strong, .policy-reviews form > small, .policy-reviews form > button { grid-column: 1 / -1; }
2423
+ .policy-reviews form > small { color: var(--muted); font-size: 8px; }
2424
+ .policy-reviews label { display: grid; gap: 4px; min-width: 0; }
2425
+ .policy-reviews label.wide { grid-column: 1 / -1; }
2426
+ .policy-reviews label span { color: var(--muted); font-size: 8px; font-weight: 800; }
2427
+ .policy-reviews input, .policy-reviews select, .policy-reviews textarea { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface-2); color: var(--ink); }
2428
+ .policy-reviews textarea { min-height: 76px; resize: vertical; }
2429
+ .policy-empty { grid-column: 1 / -1; padding: 22px; border: 1px dashed var(--line-strong); border-radius: 7px; background: var(--surface); text-align: center; }
2430
+ .policy-empty strong { font-size: 10px; }
2431
+ .policy-empty p { margin: 6px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
2432
+
2433
+ @media (max-width: 720px) {
2434
+ .policy-view { padding: 12px; }
2435
+ .policy-heading { align-items: stretch; flex-direction: column; }
2436
+ .policy-view-toggle { align-self: stretch; }
2437
+ .policy-view-toggle button { flex: 1; }
2438
+ .policy-intent-form, .policy-workspace { grid-template-columns: minmax(0, 1fr); }
2439
+ .policy-intent-form button { width: 100%; }
2440
+ .policy-facts, .policy-rules, .policy-reviews form { grid-template-columns: minmax(0, 1fr); }
2441
+ .policy-reviews form > strong, .policy-reviews form > small, .policy-reviews form > button, .policy-reviews label.wide { grid-column: auto; }
2442
+ .policy-panel > header { flex-wrap: wrap; }
2443
+ .policy-outcome { white-space: normal; }
2444
+ .policy-digests dl div { grid-template-columns: minmax(0, 1fr); }
2445
+ }
2446
+
2447
+ @media (max-width: 390px) {
2448
+ .policy-view, .policy-panel { padding: 10px; }
2449
+ .policy-authority-notice, .policy-intent-form { padding: 10px; }
2450
+ }
2451
+
2452
+ /* Local Error Reporting */
2453
+ .error-reporting-view { min-width: 0; overflow: auto; padding: 24px; background: var(--canvas); }
2454
+ .error-reporting-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
2455
+ .error-reporting-heading h2 { margin: 0; font-size: 26px; }
2456
+ .error-reporting-heading p { max-width: 720px; margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
2457
+ .error-report-status { margin-top: 10px; padding: 10px 13px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 6px; background: var(--surface); font-size: 9px; }
2458
+ .error-report-local-notice { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 14px; padding: 11px 14px; border: 1px solid #9dc9b8; border-left: 4px solid var(--green); border-radius: 7px; background: var(--green-soft); color: #154f3d; }
2459
+ .error-report-local-notice strong { font-size: 10px; }
2460
+ .error-report-local-notice > span { font-size: 9px; line-height: 1.5; }
2461
+ .error-report-local-notice label { display: flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 800; white-space: nowrap; }
2462
+ .error-report-create-form { margin-top: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
2463
+ .error-report-create-form > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
2464
+ .error-report-create-form h3 { margin: 0; font-size: 14px; }
2465
+ .error-report-create-form header p { max-width: 420px; margin: 0; color: var(--muted); font-size: 9px; }
2466
+ .error-report-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 13px; }
2467
+ .error-report-form-grid label { display: grid; gap: 4px; min-width: 0; }
2468
+ .error-report-form-grid label.wide { grid-column: 1 / -1; }
2469
+ .error-report-form-grid span, .error-report-provider-select span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2470
+ .error-report-form-grid input, .error-report-form-grid textarea, .error-report-provider-select select, #errorReportFilter { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface-2); color: var(--ink); }
2471
+ .error-report-form-grid textarea { min-height: 68px; resize: vertical; }
2472
+ .error-report-create-form footer { display: flex; gap: 8px; margin-top: 11px; }
2473
+ .error-reporting-layout { display: grid; grid-template-columns: minmax(240px, 320px) minmax(0, 1fr); min-height: 560px; margin-top: 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
2474
+ .error-report-ledger { min-width: 0; border-right: 1px solid var(--line); background: var(--surface-2); }
2475
+ .error-report-ledger > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 14px; border-bottom: 1px solid var(--line); }
2476
+ .error-report-ledger h3 { margin: 0; font-size: 13px; }
2477
+ #errorReportFilter { width: auto; max-width: 120px; font-size: 9px; }
2478
+ #errorReportList { display: grid; align-content: start; gap: 6px; max-height: 720px; overflow-y: auto; padding: 9px; }
2479
+ .error-report-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 8px; width: 100%; padding: 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); cursor: pointer; text-align: left; }
2480
+ .error-report-row:hover, .error-report-row.active { border-color: var(--green); box-shadow: 0 0 0 2px rgb(23 107 77 / 8%); }
2481
+ .error-report-row span, .error-report-row strong, .error-report-row small, .error-report-row code { min-width: 0; }
2482
+ .error-report-row strong, .error-report-row small, .error-report-row code { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2483
+ .error-report-row strong { font-size: 10px; }
2484
+ .error-report-row small, .error-report-row code { margin-top: 3px; color: var(--muted); font-size: 7px; }
2485
+ .error-report-row code { grid-column: 1 / -1; }
2486
+ .error-report-row b, .error-report-viewer-heading > b { align-self: start; padding: 4px 7px; border-radius: 999px; background: var(--amber-soft); color: #74520f; font-size: 7px; text-transform: uppercase; }
2487
+ .error-report-row b[data-state="finalised"], .error-report-viewer-heading > b[data-state="finalised"] { background: var(--green-soft); color: var(--green); }
2488
+ .error-report-viewer { min-width: 0; overflow-y: auto; padding: 20px; }
2489
+ .error-report-viewer-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
2490
+ .error-report-viewer-heading h3 { margin: 0; font-size: 20px; }
2491
+ .error-report-viewer-heading p { margin: 5px 0 0; color: var(--muted); font: 8px/1.4 "SFMono-Regular", Consolas, monospace; }
2492
+ .error-report-custody { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 16px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--line); }
2493
+ .error-report-custody span { display: flex; align-items: center; gap: 7px; min-height: 42px; padding: 9px; background: var(--surface-2); }
2494
+ .error-report-custody i { width: 9px; height: 9px; border: 2px solid var(--line-strong); border-radius: 50%; }
2495
+ .error-report-custody span[data-state="complete"] i, .error-report-custody span[data-state="current"] i { border-color: var(--green); background: var(--green); }
2496
+ .error-report-custody span[data-state="current"] { background: var(--green-soft); }
2497
+ .error-report-custody b { font-size: 8px; }
2498
+ .error-report-email-state { margin-top: 12px; padding: 11px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
2499
+ .error-report-email-state strong { font-size: 10px; }
2500
+ .error-report-email-state p, .error-report-email-state code { display: block; margin: 4px 0 0; color: var(--muted); font-size: 8px; overflow-wrap: anywhere; }
2501
+ .error-report-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
2502
+ .error-report-detail-grid > section { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); }
2503
+ .error-report-detail-grid h4 { margin: 0; font-size: 13px; }
2504
+ .error-report-detail-grid p, .error-report-detail-grid li, .error-report-detail-grid dd { color: var(--muted); font-size: 8px; line-height: 1.5; }
2505
+ .error-report-detail-grid dl { margin: 9px 0; }
2506
+ .error-report-detail-grid dl div { margin-top: 8px; }
2507
+ .error-report-detail-grid dt { font-size: 8px; font-weight: 800; }
2508
+ .error-report-detail-grid dd { margin: 3px 0 0; }
2509
+ .error-report-detail-grid ol, .error-report-detail-grid ul { margin: 8px 0 0; padding-left: 18px; }
2510
+ .error-report-members { display: grid; gap: 4px; padding: 0 !important; list-style: none; }
2511
+ .error-report-members li { padding: 6px 8px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
2512
+ .error-report-members code, .error-report-digests code, .error-report-attempt code, .error-report-receipt code { font-size: 7px; overflow-wrap: anywhere; }
2513
+ .error-report-attempt, .error-report-receipt { display: grid; gap: 4px; margin-top: 7px; padding: 9px; border-left: 3px solid var(--red); background: var(--surface); }
2514
+ .error-report-receipt, .error-report-attempt[data-state="accepted"] { border-left-color: var(--green); }
2515
+ .error-report-attempt strong, .error-report-receipt strong { font-size: 9px; }
2516
+ .error-report-attempt span, .error-report-receipt span { color: var(--muted); font-size: 8px; }
2517
+ .error-report-actions { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--line); }
2518
+ .error-report-provider-select { display: grid; gap: 4px; min-width: 170px; }
2519
+ .error-report-provider-empty { flex-basis: 100%; margin: 0; color: var(--muted); font-size: 8px; }
2520
+ .error-report-actions .danger-action { margin-left: auto; min-height: 34px; padding: 0 11px; border: 1px solid #d49a94; border-radius: 5px; background: var(--red-soft); color: #7f2929; cursor: pointer; font-size: 9px; font-weight: 800; }
2521
+ .error-report-empty { padding: 24px; color: var(--muted); text-align: center; }
2522
+ .error-report-empty strong { color: var(--ink); font-size: 11px; }
2523
+ .error-report-empty p { margin: 5px 0 10px; font-size: 8px; line-height: 1.5; }
2524
+
2525
+ .team-hub-view { min-width: 0; overflow: auto; padding: 24px; background: var(--canvas); }
2526
+ .team-hub-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
2527
+ .team-hub-heading h2 { margin: 0; font-size: 26px; }
2528
+ .team-hub-heading p { max-width: 720px; margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
2529
+ .team-hub-mode { padding: 6px 10px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--surface); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2530
+ .team-hub-mode[data-mode="connected"] { border-color: var(--green); background: var(--green-soft); color: var(--green); }
2531
+ .team-hub-status { margin-top: 12px; padding: 10px 13px; border-left: 4px solid var(--blue); background: var(--blue-soft); font-size: 9px; }
2532
+ .team-hub-status[data-state="error"] { border-left-color: var(--red); background: var(--red-soft); }
2533
+ .team-hub-disclosure { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; margin-top: 14px; padding: 12px 14px; border: 1px solid #9dc9b8; border-left: 4px solid var(--green); border-radius: 7px; background: var(--green-soft); color: #154f3d; }
2534
+ .team-hub-disclosure strong { font-size: 10px; }
2535
+ .team-hub-disclosure span { font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
2536
+ .team-hub-grid { display: grid; grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr); gap: 12px; margin-top: 12px; }
2537
+ .team-hub-panel, .team-hub-contract { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
2538
+ .team-hub-panel > header h3, .team-hub-contract > header h3 { margin: 0; font-size: 15px; }
2539
+ #teamHubConnection p, #teamHubAuthority { color: var(--muted); font-size: 9px; line-height: 1.55; }
2540
+ #teamHubConnection dl { display: grid; gap: 7px; margin: 12px 0; }
2541
+ #teamHubConnection dl div { display: grid; gap: 3px; padding: 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface-2); }
2542
+ #teamHubConnection dt, .team-hub-connect-form span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
2543
+ #teamHubConnection dd { margin: 0; font: 8px/1.5 "SFMono-Regular", Consolas, monospace; overflow-wrap: anywhere; }
2544
+ .team-hub-connect-form { display: grid; gap: 9px; margin-top: 12px; }
2545
+ .team-hub-connect-form label { display: grid; gap: 4px; }
2546
+ .team-hub-connect-form input { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface-2); color: var(--ink); }
2547
+ .team-hub-connect-form .team-hub-acknowledgement { display: flex; align-items: flex-start; gap: 7px; }
2548
+ .team-hub-connect-form .team-hub-acknowledgement input { width: auto; margin-top: 2px; }
2549
+ .team-hub-connect-form .team-hub-acknowledgement span { text-transform: none; }
2550
+ .team-hub-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
2551
+ .team-hub-actions .danger-action { min-height: 34px; padding: 0 11px; border: 1px solid #d49a94; border-radius: 5px; background: var(--red-soft); color: #7f2929; cursor: pointer; font-size: 9px; font-weight: 800; }
2552
+ .team-hub-evidence { display: grid; gap: 9px; margin-top: 12px; }
2553
+ .team-hub-evidence article { min-width: 0; padding: 12px; border-left: 4px solid var(--blue); background: var(--surface-2); }
2554
+ .team-hub-evidence strong { font-size: 10px; text-transform: capitalize; }
2555
+ .team-hub-evidence p, .team-hub-evidence small { display: block; margin: 5px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
2556
+ .team-hub-contract { margin-top: 12px; }
2557
+ .team-hub-resource-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
2558
+ .team-hub-resource-boundary { margin: 10px 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
2559
+ .team-hub-release-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; padding: 10px 12px; border-left: 4px solid var(--green); background: var(--green-soft); color: #154f3d; font-size: 8px; }
2560
+ .team-hub-release-chain span { color: var(--muted); }
2561
+ .team-hub-resource-grid { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr); gap: 1px; margin-top: 12px; background: var(--line); border: 1px solid var(--line); }
2562
+ .team-hub-resource-list, .team-hub-resource-detail { min-width: 0; background: var(--surface); }
2563
+ .team-hub-resource-list > p, .team-hub-resource-detail > p { margin: 0; padding: 16px; color: var(--muted); font-size: 9px; }
2564
+ .team-hub-resource-list button { display: grid; width: 100%; gap: 7px; padding: 12px; border: 0; border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); text-align: left; white-space: normal; }
2565
+ .team-hub-resource-list button:hover { background: var(--surface-2); }
2566
+ .team-hub-resource-list button span, .team-hub-resource-list button small { display: block; }
2567
+ .team-hub-resource-list button small, .team-hub-resource-list button code { color: var(--muted); font-size: 8px; overflow-wrap: anywhere; }
2568
+ .team-hub-resource-detail { padding: 15px; }
2569
+ .team-hub-resource-detail h4 { margin: 3px 0; font-size: 16px; }
2570
+ .team-hub-resource-detail > header > code { display: block; color: var(--muted); font-size: 8px; overflow-wrap: anywhere; }
2571
+ .team-hub-resource-detail dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 12px 0; border: 1px solid var(--line); }
2572
+ .team-hub-resource-detail dl div { min-width: 0; padding: 9px; border-bottom: 1px solid var(--line); }
2573
+ .team-hub-resource-detail dd { overflow-wrap: anywhere; }
2574
+ .team-hub-resource-detail details ul { padding-left: 18px; }
2575
+ .team-hub-resource-detail details li span { display: block; color: var(--muted); font-size: 7px; overflow-wrap: anywhere; }
2576
+ .team-hub-resource-install-form { display: grid; gap: 9px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--line); }
2577
+ .team-hub-resource-install-form label { display: grid; gap: 4px; }
2578
+ .team-hub-resource-install-form input { min-width: 0; padding: 8px; border: 1px solid var(--line-strong); }
2579
+ .team-hub-resource-install-form .team-hub-acknowledgement { display: flex; align-items: flex-start; gap: 7px; }
2580
+ .team-hub-resource-install-form .team-hub-acknowledgement input { width: auto; }
2581
+ #teamHubContractFields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
2582
+ #teamHubContractFields > div { padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-2); }
2583
+ #teamHubContractFields h4 { margin: 0; font-size: 11px; }
2584
+ #teamHubContractFields ul { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
2585
+ #teamHubContractFields li { padding: 5px 7px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); font-size: 7px; }
2586
+
2587
+ @media (max-width: 960px) {
2588
+ .error-reporting-layout { grid-template-columns: minmax(0, 1fr); }
2589
+ .error-report-ledger { border-right: 0; border-bottom: 1px solid var(--line); }
2590
+ #errorReportList { grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: 300px; }
2591
+ .error-report-local-notice { grid-template-columns: auto minmax(0, 1fr); }
2592
+ .error-report-local-notice label { grid-column: 1 / -1; }
2593
+ }
2594
+
2595
+ @media (max-width: 600px) {
2596
+ .team-hub-view { padding: 12px; }
2597
+ .team-hub-heading, .team-hub-disclosure, .team-hub-grid, #teamHubContractFields { grid-template-columns: minmax(0, 1fr); }
2598
+ .team-hub-resource-grid, .team-hub-resource-detail dl { grid-template-columns: minmax(0, 1fr); }
2599
+ .team-hub-resource-heading { align-items: flex-start; flex-direction: column; }
2600
+ .team-hub-heading { align-items: flex-start; flex-direction: column; }
2601
+ .team-hub-actions { align-items: stretch; flex-direction: column; }
2602
+ .team-hub-actions button { width: 100%; }
2603
+ .error-reporting-view { padding: 12px; }
2604
+ .error-reporting-heading, .error-report-create-form > header { align-items: stretch; flex-direction: column; }
2605
+ .error-reporting-heading > button { width: 100%; }
2606
+ .error-report-local-notice, .error-report-form-grid, .error-report-detail-grid, .error-report-custody { grid-template-columns: minmax(0, 1fr); }
2607
+ .error-report-local-notice label, .error-report-form-grid label.wide { grid-column: auto; }
2608
+ #errorReportList { grid-template-columns: minmax(0, 1fr); }
2609
+ .error-report-actions { align-items: stretch; flex-direction: column; }
2610
+ .error-report-actions > button, .error-report-provider-select { width: 100%; }
2611
+ .error-report-actions .danger-action { margin-left: 0; }
2612
+ .error-report-create-form footer { flex-direction: column; }
2613
+ }
2614
+
2615
+ @media (prefers-reduced-motion: reduce) {
2616
+ .error-report-row, .error-report-actions button { scroll-behavior: auto; transition: none; animation: none; }
2617
+ }
2618
+
2619
+ .app-shell { grid-template-columns: 232px minmax(0, 1fr); grid-template-rows: 64px minmax(0, 1fr); }
2620
+ .app-shell > .app-bar { grid-column: 2; grid-row: 1; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: minmax(0, 1fr); padding-bottom: 0; }
2621
+ .app-shell > .app-bar .brand-block { grid-row: 1; grid-column: 1; }
2622
+ .app-shell > .app-bar .app-actions { grid-row: 1; grid-column: 2; width: auto; }
2623
+ .app-shell > .dashboard-view { grid-column: 2; grid-row: 2; min-width: 0; min-height: 0; }
2624
+ .dashboard-sidebar { grid-column: 1; grid-row: 1 / span 2; min-width: 0; display: flex; flex-direction: column; overflow-y: auto; padding: 22px 12px 16px; background: var(--surface); border-right: 1px solid var(--line); z-index: 20; }
2625
+ .sidebar-brand { display: flex; align-items: center; gap: 10px; padding: 4px 10px 26px; }
2626
+ .sidebar-brand strong { font-size: 16px; line-height: 1.3; }
2627
+ .sidebar-brand small { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.4; }
2628
+ .dashboard-sidebar .view-switcher { display: grid; gap: 4px; padding: 0; overflow: visible; background: transparent; border-radius: 0; }
2629
+ .dashboard-sidebar .view-switcher button, .sidebar-bottom button { width: 100%; min-height: 43px; padding: 10px 12px; gap: 12px; display: flex; align-items: center; text-align: left; white-space: normal; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 13px; font-weight: 500; cursor: pointer; }
2630
+ .dashboard-sidebar .view-switcher button:hover, .sidebar-bottom button:hover { background: var(--surface-2); color: var(--ink); }
2631
+ .dashboard-sidebar button.active { background: var(--green-soft); color: var(--green); font-weight: 650; box-shadow: none; }
2632
+ .sidebar-icon { width: 18px; flex-shrink: 0; text-align: center; font-size: 18px; }
2633
+ .sidebar-icon svg { display: block; width: 18px; height: 18px; }
2634
+ .sidebar-icon.live-dot { width: 7px; margin: 0 5px; }
2635
+ .sidebar-group-label { margin: 24px 12px 6px; color: var(--muted); font-size: 12px; }
2636
+ #optionalViewLinks { display: grid; gap: 4px; }
2637
+ .sidebar-bottom { margin-top: auto; padding-top: 22px; }
2638
+ .sidebar-premium { display: grid; gap: 12px; margin: 20px 10px 8px; }
2639
+ .sidebar-premium a { color: var(--green); font-size: 13px; line-height: 1.5; }
2640
+ .sidebar-premium .quiet-button { height: auto; min-height: 38px; }
2641
+ .sidebar-open, .sidebar-close { display: none; }
2642
+ .sidebar-backdrop { position: fixed; inset: 0; z-index: 40; border: 0; background: rgb(23 33 28 / 35%); }
2643
+ .sidebar-collapsed { grid-template-columns: 68px minmax(0, 1fr); }
2644
+ .sidebar-collapsed .dashboard-sidebar { padding-left: 8px; padding-right: 8px; }
2645
+ .sidebar-collapsed .sidebar-label, .sidebar-collapsed .sidebar-brand div, .sidebar-collapsed .sidebar-group-label, .sidebar-collapsed .sidebar-premium, .sidebar-collapsed .nav-count { display: none; }
2646
+ .sidebar-collapsed .sidebar-brand { padding-left: 8px; padding-right: 8px; }
2647
+ .sidebar-collapsed .view-switcher button, .sidebar-collapsed .sidebar-bottom button { justify-content: center; padding: 12px 8px; }
2648
+ .app-shell .summary-strip { top: 70px; left: 248px; }
2649
+ .sidebar-collapsed .summary-strip { left: 84px; }
2650
+ .dashboard-configuration { overflow: auto; padding: 38px; }
2651
+ .dashboard-configuration > * { max-width: 980px; }
2652
+ .configuration-heading { margin-bottom: 32px; }
2653
+ .configuration-heading h2 { margin: 0 0 12px; font-size: 28px; letter-spacing: -.03em; }
2654
+ .configuration-heading p, .configuration-group p, .configuration-assurance { color: var(--muted); line-height: 1.6; }
2655
+ .configuration-group { margin-bottom: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
2656
+ .configuration-group header { padding: 24px; border-bottom: 1px solid var(--line); }
2657
+ .configuration-group h3 { margin: 0 0 8px; font-size: 17px; }
2658
+ .configuration-group p { margin: 0; }
2659
+ .configuration-setting { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; padding: 20px 24px; cursor: pointer; }
2660
+ .configuration-setting + .configuration-setting { border-top: 1px solid var(--line); }
2661
+ .configuration-setting strong { display: block; margin-bottom: 7px; }
2662
+ .configuration-setting span span { display: block; color: var(--muted); line-height: 1.5; max-width: 75ch; }
2663
+ .configuration-setting input { appearance: none; flex-shrink: 0; width: 38px; height: 22px; margin: 0; border-radius: 20px; background: var(--line-strong); position: relative; cursor: pointer; }
2664
+ .configuration-setting input::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: white; }
2665
+ .configuration-setting input:checked { background: var(--green); }
2666
+ .configuration-setting input:checked::after { left: 19px; }
2667
+ .configuration-save { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding: 8px 0 20px; }
2668
+ .configuration-save output { flex-basis: 100%; line-height: 1.6; }
2669
+ .configuration-assurance { font-size: 13px; max-width: 85ch; margin-bottom: 26px; }
2670
+ .configuration-licence, .configuration-shortcuts { padding: 24px; }
2671
+ .configuration-licence p { margin: 10px 0 20px; }
2672
+ .configuration-shortcuts { display: flex; flex-wrap: wrap; gap: 14px; }
2673
+ .dashboard-sidebar button:focus-visible, .dashboard-sidebar a:focus-visible, .dashboard-configuration button:focus-visible, .dashboard-configuration input:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
2674
+ @media (max-width: 720px) {
2675
+ .app-shell, .app-shell.sidebar-collapsed { grid-template-columns: minmax(0, 1fr); }
2676
+ .app-shell > .app-bar, .app-shell > .dashboard-view { grid-column: 1; }
2677
+ .app-shell > .app-bar { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px; padding: 0 14px; }
2678
+ .app-shell > .app-bar .brand-block { grid-column: 2; }
2679
+ .app-shell > .app-bar .app-actions { grid-column: 3; }
2680
+ .dashboard-sidebar { display: none; position: fixed; left: 0; top: 0; width: 260px; height: 100dvh; z-index: 50; box-shadow: var(--shadow); }
2681
+ .sidebar-drawer-open .dashboard-sidebar { display: flex; }
2682
+ .sidebar-open, .sidebar-close { display: inline-flex; justify-content: center; align-items: center; min-width: 40px; min-height: 40px; }
2683
+ .sidebar-close { position: absolute; right: 12px; top: 12px; }
2684
+ .sidebar-brand, .sidebar-collapsed .sidebar-brand { padding: 6px 48px 26px 10px; }
2685
+ .sidebar-collapsed .sidebar-brand div, .sidebar-collapsed .sidebar-label, .sidebar-collapsed .sidebar-group-label, .sidebar-collapsed .sidebar-premium, .sidebar-collapsed .nav-count { display: revert; }
2686
+ .sidebar-collapsed .view-switcher button, .sidebar-collapsed .sidebar-bottom button { justify-content: flex-start; padding: 10px 12px; }
2687
+ #sidebarCollapse { display: none; }
2688
+ .app-shell .summary-strip, .sidebar-collapsed .summary-strip { left: 14px; }
2689
+ .app-bar .global-search { display: none; }
2690
+ .dashboard-configuration { padding: 28px 18px; }
2691
+ .configuration-heading h2 { font-size: 25px; }
2692
+ .configuration-group header, .configuration-setting, .configuration-licence, .configuration-shortcuts { padding: 19px; }
2693
+ }