/* Console and CSV viewer follow the tool screenshots in the guide. */
.cdk-browser-lab__app--pstxml { --pst-blue:#246cb6; background:#fff; color:#203c60; }
.cdk-browser-lab__app--pstxml > p { padding-inline:.75rem; font-size:.72rem; }
.pst-case { flex-wrap:wrap; white-space:normal; overflow:visible; gap:.3rem 1rem; font-size:.6rem; }
.pst-stage, .pst-stage > *, [data-pst-app] { min-width:0; }
.md-typeset .pst-task h4 { font-size:.8rem; }
.cdk-browser-lab__app--pstxml button { cursor:pointer; }
.cdk-browser-lab__app--pstxml button:disabled { cursor:default; }
.cdk-browser-lab__app--pstxml :is(button,input,select,summary,[data-pst-row],[tabindex]):focus-visible { outline:3px solid #246cb6; outline-offset:3px; }
.pst-window { font-size:.62rem; }
.pst-window > header { grid-template-columns:1.5rem minmax(0,1fr) auto; min-height:1.7rem; background:#f1f1f1; }
.pst-window > header img { width:1rem; height:1rem; margin:0 .25rem; object-fit:contain; }
.pst-window > header b { font-size:.6rem; }
.pst-window-controls { align-self:stretch; display:flex; padding:.3rem .5rem; align-items:center; color:#333; font-size:.65rem; white-space:nowrap; }
.pst-window--terminal > main { min-height:12rem; padding:.65rem; background:#0c0c0c; color:#ddd; font-size:.65rem; overflow-wrap:anywhere; }
.pst-terminal-result { padding:0; border:0; background:transparent; color:#63e7ef; font-size:.65rem; }
.pst-terminal-result strong { color:#f5e679; font-weight:400; }
.pst-terminal-result > span { color:#ddd; }
.pst-window--timeline { font-family:"Segoe UI",Arial,sans-serif; }
.pst-window--timeline > nav, .pst-file { font-size:.6rem; }
.pst-filter { gap:.4rem; background:#f0f0f0; }
.pst-filter > span { color:#566371; font-family:Consolas,monospace; font-size:.6rem; }
.pst-filter label { grid-template-columns:auto minmax(5rem,9rem) auto; }
.pst-filter input { width:9rem; min-width:0; height:1.7rem; font-size:.62rem; }
.pst-filter button { font-size:.62rem; height:1.7rem; }
.pst-filter-status { color:#203c60; font-size:.6rem; }
.pst-window--timeline > main { min-height:11rem; max-height:18rem; overflow:auto; }
.md-typeset .pst-window--timeline table { width:max-content; min-width:100%; font:400 .62rem/1.45 Consolas,"Courier New",monospace; }
.md-typeset .pst-window--timeline th { position:sticky; top:0; background:#f1f1f1; color:#333; font-weight:400; }
.md-typeset .pst-window--timeline :is(th,td) { max-width:none; padding:.35rem .45rem !important; white-space:nowrap; }
.pst-window--timeline tbody tr:nth-child(odd) { background:#f0f0f0; }
.pst-window--timeline tbody tr.is-match { background:#fff2bd; color:#312900; }
.pst-window--timeline tbody tr.is-selected { background:#cce7f8; color:#102b3e; outline:2px solid #246cb6; outline-offset:-2px; }
.pst-window--timeline > footer { flex-wrap:wrap; font-size:.56rem; overflow-wrap:anywhere; }
.pst-window--timeline > footer > span { min-width:0; }
.pst-window--xml pre { max-height:20rem; margin:0; padding:.7rem; overflow:auto; background:#fff; }
.pst-window--xml pre code { padding:0; background:none; color:#223745; font:400 .65rem/1.5 Consolas,monospace; }
.pst-window--xml .pst-file { overflow-wrap:anywhere; }
.pst-evidence { border:1px solid #a6bdcb; background:#fff; }
.pst-evidence > header { padding:.45rem .6rem; background:#edf2f5; color:#203c60; font-size:.63rem; font-weight:600; }
.pst-events { display:grid; gap:.4rem; padding:.6rem; }
.pst-events :is(strong,span) { display:block; overflow-wrap:anywhere; }
.pst-events span { font-family:Consolas,monospace; font-size:.62rem; }
.pst-recap p { margin:.5rem .65rem !important; font-size:.66rem; overflow-wrap:anywhere; }
.pst-recap code { white-space:normal; font-size:.63rem; }
.pst-report { display:grid; gap:.65rem; }
.pst-report label { display:grid; gap:.25rem; color:#203c60; font-size:.65rem; font-weight:600; }
.pst-report button { justify-self:start; background:#246cb6; color:#fff; }
.pst-feedback { display:block; padding:.55rem .65rem; border-left:3px solid #168bc8; background:#fff; color:#203c60; font-size:.66rem; line-height:1.5; overflow-wrap:anywhere; }
.pst-feedback[data-state="error"] { border-color:#bb3440; background:#fff1f2; color:#8c2530; }
.pst-feedback[data-state="complete"] { border-color:#258951; background:#eef9f2; color:#155f3b; }
.cdk-browser-lab__app--pstxml .is-correct { border-color:#258951; background:#eef9f2; color:#155f3b; }
.cdk-browser-lab__app--pstxml .is-incorrect { border-color:#bb3440; background:#fff1f2; color:#8c2530; }
.cdk-browser-lab__app--pstxml > footer { flex-wrap:wrap; font-size:.65rem; }
.cdk-browser-lab__app--pstxml > footer > div { flex-wrap:wrap; }
.cdk-browser-lab__app--pstxml > footer button { min-height:1.9rem; font-size:.63rem; }
.cdk-browser-lab__app--pstxml [hidden] { display:none !important; }
@media screen and (max-width:48em) {
  .pst-filter label { grid-template-columns:auto minmax(0,1fr) auto; }
  .pst-filter input { width:100%; }
  .pst-window > header b { overflow-wrap:anywhere; }
  .pst-window-controls { padding-inline:.2rem; font-size:.5rem; }
}
.pst-report fieldset { display:grid; margin:0; padding:.6rem; gap:.4rem; border:1px solid #b4cbd8; }
.pst-report legend { padding-inline:.25rem; color:#203c60; font-size:.65rem; font-weight:600; }
.pst-report fieldset label { grid-template-columns:auto minmax(0,1fr); align-items:start; padding:.3rem; font-weight:400; line-height:1.5; }
.pst-report input[type="radio"] { margin:.15rem .25rem 0 0; accent-color:#246cb6; }
/* Keep native application surfaces readable in either site theme. */
.md-typeset .cdk-browser-lab__app--pstxml { color-scheme:light; }
.md-typeset .cdk-browser-lab__app--pstxml h3, .md-typeset .cdk-browser-lab__app--pstxml h4 { color:#203c60; }
.md-typeset .cdk-browser-lab__app--pstxml .pst-recap code { background:#f0f3f5; color:#223745; }
.cdk-browser-lab__app--pstxml > .susa-lab-experience { display:none; }
@media screen and (max-width:48em) {
}

.pst-events button, .md-typeset .pst-choices button { min-width:0; padding:.6rem; border:1px solid #a0bacb; border-radius:.2rem; background:#f7fafc; color:#203c60; font:400 .65rem/1.5 "Segoe UI",Arial,sans-serif; text-align:left; }
.pst-events button:hover, .pst-choices button:hover { border-color:#246cb6; background:#eaf5fb; }
[data-pst-csv], [data-pst-fill] { min-height:1.9rem; padding:.35rem .55rem; border:1px solid #246cb6; border-radius:.15rem; background:#fff; color:#246cb6; font:600 .63rem/1.4 "Segoe UI",Arial,sans-serif; }
body .md-typeset .cdk-browser-lab__app--pstxml > header { display:grid; min-height:0; padding:.7rem .8rem; grid-template-columns:auto minmax(0,1fr) auto; gap:.5rem; }
.cdk-browser-lab__app--pstxml > header > em { display:none; }
.cdk-browser-lab__app--pstxml .cdk-browser-lab__heading-icon { display:grid; grid-column:1; grid-row:1; }
.cdk-browser-lab__app--pstxml .cdk-browser-lab__heading-copy { display:grid; min-width:0; grid-column:2; grid-row:1; gap:.2rem; }
.cdk-browser-lab__app--pstxml .cdk-browser-lab__eyebrow { position:static; grid-column:1; grid-row:auto; color:#246cb6; font-size:.54rem; }
body .md-typeset .cdk-browser-lab__app--pstxml > header h3 { grid-column:1; grid-row:auto; font-size:.9rem !important; }
.cdk-browser-lab__app--pstxml .cdk-browser-lab__view-actions { grid-column:3; grid-row:1; }
.cdk-browser-lab__app--pstxml > .pst-intro { margin:0; padding:.5rem .8rem; color:#203c60; font-size:.66rem; line-height:1.5; }
.pst-case { padding:.4rem .8rem; }
.md-typeset ol.pst-progress { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.3rem; margin:0; padding:.5rem .8rem; list-style:none; background:#fff; }
.md-typeset .pst-progress li { display:flex; align-items:center; justify-content:center; gap:.3rem; margin:0; color:#4a6272; font-size:.61rem; }
.md-typeset .pst-progress li::before { display:none; }
.pst-progress b { display:grid; width:1.2rem; height:1.2rem; place-items:center; border-radius:50%; background:#edf2f6; color:#4a6272; font-size:.58rem; }
.md-typeset .pst-progress li[aria-current="step"] { color:#246cb6; font-weight:700; }
.pst-progress li[aria-current="step"] b, .pst-progress li[data-complete="true"] b { background:#246cb6; color:#fff; }
.pst-stage { padding:.65rem; gap:.65rem; }
.pst-coach { padding:.15rem .2rem; color:#203c60; }
.pst-coach-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:.5rem; }
.pst-coach-title > span { color:#246cb6; font-size:.58rem; font-weight:600; }
.pst-coach-title > strong { font-size:.76rem; }
.pst-coach > p { margin:.3rem 0 !important; color:#203c60; font-size:.68rem; line-height:1.5; }
.pst-coach > .pst-context { color:#4a6272; font-size:.6rem; }
.md-typeset .pst-coach details { margin:.4rem 0; border:1px solid #bed8f3; background:#fff; box-shadow:none; }
.md-typeset .pst-coach summary { padding:.45rem .6rem; background:#edf5ff; color:#153c56; font-size:.64rem; }
.md-typeset .pst-coach summary::before, .md-typeset .pst-coach summary::after { display:none; }
.pst-coach [data-pst-hint] { padding:.4rem .6rem; }
.pst-coach [data-pst-hint] p { margin:.3rem 0; color:#203c60; font-size:.65rem; line-height:1.5; }
.pst-coach pre { padding:.45rem; background:#f0f3f5; }
.pst-coach pre code { padding:0; white-space:pre-wrap; overflow-wrap:anywhere; background:none; color:#203c60; font-size:.63rem; }
.pst-coach [data-pst-actions] { margin-top:.4rem; }
.pst-window--terminal > main { min-height:12rem; font-size:.68rem; line-height:1.5; cursor:text; }
.cdk-browser-lab__app--pstxml .pst-terminal-prompt { display:block; margin:.9rem 0 0; color:#ddd; font:inherit; white-space:pre-wrap; overflow-wrap:anywhere; }
.cdk-browser-lab__app--pstxml .pst-terminal-input { display:inline; margin:0; padding:0; border:0; border-radius:0; outline:0; box-shadow:none; background:transparent; color:#f5e679; font:inherit; white-space:pre-wrap; overflow-wrap:anywhere; caret-color:#ddd; }
.cdk-browser-lab__app--pstxml .pst-terminal-input:empty { display:inline-block; min-width:1ch; min-height:1.2em; vertical-align:text-bottom; }
.cdk-browser-lab__app--pstxml .pst-terminal-input:focus-visible { outline:none; }
.pst-terminal-result { font:inherit; }
.pst-console-error { margin-top:.6rem; color:#ff9c9c; font:inherit; }
.pst-console-cursor { display:inline-block; width:.55em; height:.12em; background:#ddd; animation:pst-caret 1s steps(2,end) infinite; }
@keyframes pst-caret { to { visibility:hidden; } }
@media (prefers-reduced-motion:reduce) { .pst-console-cursor { animation:none; } }
@media screen and (max-width:48em) {
  body .md-typeset .cdk-browser-lab__app--pstxml > header { grid-template-columns:auto minmax(0,1fr); padding:.6rem; }
  .cdk-browser-lab__app--pstxml .cdk-browser-lab__view-actions { grid-column:1/-1; grid-row:2; margin-top:0; }
  .md-typeset ol.pst-progress { padding:.45rem .4rem; gap:.15rem; }
  .md-typeset .pst-progress li { flex-direction:column; gap:.15rem; font-size:.57rem; }
  .pst-stage { padding:.4rem; }
  .pst-choices { grid-template-columns:1fr; }
  .pst-window--terminal > main { padding:.45rem; font-size:.63rem; }
}
.md-typeset .pst-progress li { min-width:0; padding:0; }
.pst-progress li > span { white-space:nowrap; }
.md-typeset .cdk-browser-lab__app--pstxml .pst-window--timeline tbody tr { background:#fff; color:#15242d; }
.md-typeset .cdk-browser-lab__app--pstxml .pst-window--timeline tbody tr:nth-child(odd) { background:#f0f0f0; }
.md-typeset .cdk-browser-lab__app--pstxml .pst-window--timeline tbody tr.is-match { background:#fff2bd; color:#312900; }
.md-typeset .cdk-browser-lab__app--pstxml .pst-window--timeline tbody tr.is-selected { background:#cce7f8; color:#102b3e; }
.md-typeset .cdk-browser-lab__app--pstxml .pst-window--timeline td { background:transparent; color:inherit; }
.pst-report button { min-height:1.9rem; padding:.35rem .55rem; border:1px solid #246cb6; border-radius:.15rem; font:600 .63rem/1.4 "Segoe UI",Arial,sans-serif; }

/* Learning accents use Kansa's blue palette; native console colors stay intact. */
.cdk-browser-lab__app--pstxml .pst-case { background:#173e69; color:#e3effa; }
.cdk-browser-lab__app--pstxml .pst-case strong { color:#9dccff; }
.cdk-browser-lab__app--pstxml .pst-stage { background:#edf5ff; }
.pst-full .kfl-case-prompt { border-color:var(--kfl-border); border-left-color:var(--kfl-blue); background:var(--kfl-surface); color:var(--kfl-ink); }
.pst-full code { overflow-wrap:anywhere; }
.pst-full .kfl-step > .highlight, .pst-full .kfl-help > .highlight { min-width:0; }
/* Give the banner a theme-colored base beneath Kansa's gradient. */
body .md-typeset .cdk-browser-lab__app--pstxml.kfl-interactive > header { background-color:var(--md-default-bg-color); }
/* Full-lab links use the same readable blue as the Kansa activity controls. */
.pst-full a { color:var(--kfl-blue); }
