.prolog-labor {
  --prolog-line: rgba(138, 173, 226, 0.28);
  --prolog-panel: rgba(7, 17, 33, 0.72);
}

.prolog-lab-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.prolog-lab-header > div { min-width: 0; }
.prolog-scope-note { max-width: 370px; margin: 0; padding: 10px 12px; border: 1px solid rgba(255, 208, 127, 0.38); border-radius: 10px; color: #ffe4a9; font-size: 0.9rem; }

.prolog-guided-starts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.prolog-start-card { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; padding: 14px; border: 1px solid var(--prolog-line); border-radius: 12px; background: rgba(11, 25, 47, 0.56); }
.prolog-start-card h5 { margin: 0 0 6px; font-size: 0.96rem; }
.prolog-start-card p { margin: 0; color: rgba(221, 233, 255, 0.86); font-size: 0.86rem; line-height: 1.45; }
.prolog-start-card .ui-button { align-self: flex-start; }

.prolog-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 18px 0; }
.prolog-action-button { min-height: 48px; padding: 10px; color: #dbe9ff; background: rgba(11, 26, 49, 0.64); border: 1px solid var(--prolog-line); border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer; }
.prolog-action-button:hover, .prolog-action-button:focus-visible, .prolog-action-button.is-active { color: #fff; background: rgba(69, 108, 172, 0.66); border-color: rgba(178, 207, 255, 0.84); outline: none; }

.prolog-lab-grid { display: grid; grid-template-columns: minmax(230px, 0.78fr) minmax(420px, 1.55fr) minmax(280px, 0.95fr); gap: 14px; align-items: start; }
.prolog-panel { min-width: 0; padding: 16px; border: 1px solid var(--prolog-line); border-radius: 13px; background: var(--prolog-panel); }
.prolog-panel > h2 { margin: 0 0 14px; font-size: 1.08rem; }
.prolog-panel--interaction { box-shadow: 0 16px 34px rgba(1, 7, 19, 0.26); }
.prolog-context-note { min-height: 5.1em; margin: 0 0 12px; padding: 10px; border-left: 3px solid #76b8fa; background: rgba(38, 75, 124, 0.22); color: #d8e7ff; font-size: 0.87rem; line-height: 1.45; }
.prolog-small-actions { margin-bottom: 14px; }
.prolog-task-module { border-color: var(--prolog-line); }
.prolog-task-prompt { margin-top: 12px; }
.prolog-task-prompt p { margin-bottom: 0; }
.prolog-hints { margin: 12px 0; color: #dce9ff; }
.prolog-hints summary { cursor: pointer; font-weight: 700; }
.prolog-hints ol { padding-left: 20px; }
.prolog-editor-head { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 8px; }
.prolog-editor-head label { font-weight: 700; }
#prologEditorHint { color: rgba(206, 222, 246, 0.78); font-size: 0.79rem; text-align: right; }
.prolog-code-actions { margin: 12px 0 16px; }
.prolog-query-card { padding-top: 15px; border-top: 1px solid var(--prolog-line); }
.prolog-query-card .ui-form-group { margin-bottom: 8px; }
.prolog-query-actions { gap: 8px; }
.prolog-examples { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 12px; }
.prolog-example-button { padding: 5px 7px; color: #dceaff; background: rgba(49, 83, 128, 0.34); border: 1px solid rgba(128, 164, 218, 0.36); border-radius: 7px; font: 0.77rem var(--font-mono); cursor: pointer; }
.prolog-example-button:hover, .prolog-example-button:focus-visible { background: rgba(74, 118, 179, 0.66); outline: none; }

.prolog-observation-card { margin: 0 0 12px; padding: 12px; border: 1px solid var(--prolog-line); border-radius: 10px; background: rgba(5, 15, 30, 0.58); }
.prolog-observation-card h3 { margin: 0 0 8px; font-size: 0.98rem; }
.prolog-observation-card summary { cursor: pointer; }
.prolog-observation-card summary h3 { display: inline; }
.prolog-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; margin: 0 0 10px; }
.prolog-stats div { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid rgba(141, 171, 217, 0.15); }
.prolog-stats dt { color: rgba(213, 228, 250, 0.78); font-size: 0.82rem; }
.prolog-stats dd { margin: 0; color: #fff; font-weight: 800; }
.prolog-inventory-list, .prolog-world-list { display: flex; flex-wrap: wrap; gap: 6px; }
.prolog-chip { display: inline-flex; padding: 4px 7px; color: #dceaff; border: 1px solid rgba(130, 165, 220, 0.34); border-radius: 999px; background: rgba(58, 89, 134, 0.27); font: 0.78rem var(--font-mono); }
.prolog-result p { margin: 0; }
.prolog-result .prolog-solution { margin: 7px 0 0; padding: 8px; border-left: 3px solid #73d39e; background: rgba(57, 132, 89, 0.17); color: #effff3; font-family: var(--font-mono); }
.prolog-result .prolog-false { border-left-color: #efa4a4; background: rgba(151, 61, 61, 0.19); }
.prolog-result .prolog-limit { border-left-color: #ffc987; background: rgba(153, 106, 41, 0.19); }
.prolog-world section + section { margin-top: 12px; }
.prolog-world h4 { margin: 0 0 6px; font-size: 0.86rem; color: #dce9ff; }
.prolog-relation-list { margin: 0; padding-left: 18px; color: #dfeaff; font-family: var(--font-mono); font-size: 0.82rem; }
.prolog-trace-actions { gap: 6px; margin: 8px 0; }
.prolog-trace-state { min-height: 2.7em; padding: 7px; color: #dbeaff; border-left: 3px solid #82baff; background: rgba(50, 91, 150, 0.2); font-size: 0.86rem; }
.prolog-trace-list { max-height: 355px; margin: 10px 0; padding-left: 25px; overflow: auto; }
.prolog-trace-list li { margin: 5px 0; padding-left: 2px; }
.prolog-trace-list button { width: 100%; padding: 6px 7px; color: #dceaff; text-align: left; background: transparent; border: 1px solid transparent; border-radius: 6px; font: 0.79rem/1.4 var(--font-sans); cursor: pointer; }
.prolog-trace-list li.is-active button { color: #fff; border-color: rgba(138, 182, 246, 0.8); background: rgba(63, 112, 178, 0.46); }
.prolog-trace-list li.trace-fail button { color: #ffcbc9; }
.prolog-tree { max-height: 280px; overflow: auto; padding: 8px; border: 1px solid rgba(135, 164, 211, 0.2); border-radius: 8px; }
.prolog-tree ul { margin: 5px 0 5px 15px; padding-left: 14px; border-left: 1px solid rgba(136, 171, 225, 0.32); }
.prolog-tree li { margin: 4px 0; font-size: 0.81rem; }
.prolog-tree summary { cursor: pointer; }
.prolog-tree-node { color: #dbeaff; }
.prolog-tree-node.is-success { color: #a8efc1; }
.prolog-tree-node.is-fail { color: #f1b9b6; }
.prolog-tree-node.is-active { color: #ffe19c; }

.prolog-concept-hints { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.prolog-concept-hints article { padding: 12px; border: 1px solid rgba(134, 169, 221, 0.27); border-radius: 10px; background: rgba(11, 25, 48, 0.44); }
.prolog-concept-hints h5 { margin: 0 0 5px; color: #eff6ff; }
.prolog-concept-hints p { margin: 0; color: rgba(218, 231, 251, 0.9); font-size: 0.84rem; line-height: 1.45; }

.code-editor[data-language="prolog"] .code-editor__token--atom { color: #9bd0ff; }
.code-editor[data-language="prolog"] .code-editor__token--variable { color: #ffde98; font-weight: 600; }
.code-editor[data-language="prolog"] .code-editor__token--operator { color: #f2b4ff; font-weight: 700; }
.code-editor[data-language="prolog"] .code-editor__token--punctuation { color: #b7d6cf; }

@media (max-width: 1180px) {
  .prolog-lab-grid { grid-template-columns: minmax(260px, 0.85fr) minmax(0, 1.45fr); }
  .prolog-panel--observation { grid-column: 1 / -1; }
  .prolog-observation-card { display: inline-block; vertical-align: top; width: calc(50% - 9px); margin-right: 10px; }
  .prolog-trace-card { width: 100%; }
  .prolog-guided-starts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .prolog-lab-header { display: block; }
  .prolog-scope-note { max-width: none; margin-top: 12px; }
  .prolog-guided-starts, .prolog-actions, .prolog-lab-grid, .prolog-concept-hints { grid-template-columns: minmax(0, 1fr); }
  .prolog-panel--observation { grid-column: auto; }
  .prolog-observation-card { display: block; width: auto; margin-right: 0; }
  .prolog-editor-head { display: block; }
  #prologEditorHint { display: block; margin-top: 5px; text-align: left; }
  .prolog-trace-list { max-height: 280px; }
}
