/* 03 only. Native Plae journey; no Archify viewer/runtime. */
#classroom .classroom-journey{position:relative;isolation:isolate}
#classroom .flow-map{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:32px 1fr 72px 32px 1fr;column-gap:34px;padding:20px 24px 28px;isolation:isolate;background-image:linear-gradient(var(--detail-grid) 1px,transparent 1px),linear-gradient(90deg,var(--detail-grid) 1px,transparent 1px);background-size:24px 24px}
#classroom .flow-band{grid-column:1/-1;border:1px solid var(--plae-line);border-radius:7px;background:color-mix(in srgb,var(--plae-surface) 91%,transparent);margin:-8px -12px -20px;z-index:-1}
#classroom .flow-band-teacher{grid-row:1/3}#classroom .flow-band-learner{grid-row:4/6}
#classroom .flow-lane{display:flex;align-items:baseline;gap:16px;font-size:14px;line-height:1.5;z-index:1;color:var(--plae-ink)}
#classroom .flow-lane>span:first-child:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--plae-blue);margin-right:8px}

#classroom .flow-lane-note{font-size:12px;color:var(--plae-muted)}
#classroom .flow-lane-teacher{grid-column:1/-1;grid-row:1}#classroom .flow-lane-learner{grid-column:1/-1;grid-row:4}
#classroom .flow-node{position:relative;z-index:2;min-width:0;min-height:0;align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:12px 16px;border:1px solid var(--plae-line);border-radius:7px;background:var(--plae-surface);text-align:left;box-shadow:0 7px 18px -14px #20202088;transition:background .2s,border-color .2s,box-shadow .2s}
#classroom .flow-node{--flow-accent:var(--plae-blue)}
#classroom .flow-node:hover{border-color:var(--flow-accent);background:color-mix(in srgb,var(--flow-accent) 7%,var(--plae-surface))}
#classroom .flow-node[aria-selected=true]{--flow-accent:var(--plae-orange);border-color:var(--flow-accent);background:color-mix(in srgb,var(--flow-accent) 14%,var(--plae-surface));box-shadow:0 8px 20px -15px var(--flow-accent)}
#classroom .flow-node:focus-visible,#classroom .flow-detail:focus-visible{outline:2px solid var(--plae-ink);outline-offset:5px}
#classroom .flow-node-top{display:flex;align-items:center;gap:10px;justify-content:space-between;width:100%;color:var(--plae-muted);margin-bottom:6px}
#classroom .flow-node-top>svg{width:17px;height:17px;fill:none;stroke:var(--flow-accent);stroke-width:1.25;stroke-linejoin:round;stroke-linecap:round}
#classroom .flow-node-title{display:block;font-size:17px;line-height:1.4;font-weight:400;letter-spacing:-.02em;word-break:keep-all;overflow-wrap:break-word}
#classroom .flow-node-sub{display:block;font-size:14px;line-height:1.5;color:var(--plae-muted);margin-top:4px;word-break:keep-all;overflow-wrap:break-word}
#classroom .flow-actor{display:none}
#classroom .flow-node-choose{grid-column:1;grid-row:2}#classroom .flow-node-start{grid-column:2;grid-row:2}#classroom .flow-node-join{grid-column:3;grid-row:5}#classroom .flow-node-make{grid-column:4;grid-row:5}#classroom .flow-node-save{grid-column:5;grid-row:5}#classroom .flow-node-discuss{grid-column:4;grid-row:2;border-style:dashed}
#classroom .flow-paths{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible;fill:none;color:var(--plae-muted)}
#classroom .flow-paths>path{stroke:var(--plae-muted);stroke-width:1.3;marker-end:url(#flow-arrow)}
#classroom .flow-paths marker path{stroke:context-stroke;stroke-width:1.3;fill:none}
#classroom .flow-paths .flow-handoff-path{stroke:var(--plae-blue);stroke-width:1.8}
#classroom .flow-paths .flow-discussion-path{stroke:var(--plae-muted);stroke-dasharray:4 4;stroke-width:1}
#classroom .flow-edge-label{position:absolute;z-index:1;font-size:12px;line-height:1.5;color:var(--plae-muted);background:var(--plae-workspace);padding:3px 8px;white-space:nowrap}
#classroom .flow-invite{color:var(--plae-ink)}
#classroom .flow-reading-hint{display:flex;justify-content:space-between;gap:12px;margin-top:18px!important;font-size:13px;line-height:1.8;color:var(--plae-muted)}
#classroom .flow-detail{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--plae-line);margin-top:28px;padding-top:26px;min-height:0}
#classroom .flow-detail-copy>.step-digit{color:var(--plae-muted)}
#classroom .flow-detail h3{font-size:27px;line-height:1.4;letter-spacing:-.025em;font-weight:300;margin-top:12px!important;word-break:keep-all}
#classroom .flow-detail-copy>p,#classroom .flow-lesson-note>p{font-size:15px;line-height:1.85;word-break:keep-all;margin-top:14px!important}
#classroom .flow-lesson-note{border-left:2px solid var(--plae-orange);padding:0 0 0 22px;align-self:start}
#classroom .flow-lesson-note .text-link{margin-top:16px;font-size:14px;gap:16px}
@media(min-width:900px) and (max-width:1199px){#classroom .flow-map{column-gap:24px;padding-left:18px;padding-right:18px;grid-template-rows:32px 1fr 72px 32px 1fr}#classroom .flow-node{padding:10px 12px;min-height:0}#classroom .flow-node-title{font-size:15px}}
@media(max-width:899px){
 #classroom .flow-map{display:flex;flex-direction:column;max-width:680px;margin:0 auto;gap:18px;padding:20px 20px 20px 44px}
 #classroom .flow-band,#classroom .flow-lane{display:none}
 #classroom .flow-node{min-height:0;padding:10px 20px;width:100%}
 #classroom .flow-node-top{justify-content:flex-start;gap:14px;margin-bottom:6px}
 #classroom .flow-node-top>svg{margin-left:auto}
 #classroom .flow-actor{display:inline;font-size:12px;line-height:1.4;color:var(--plae-muted)}
 #classroom .flow-node-title{font-size:21px}
 #classroom .flow-node-sub{margin-top:4px}
 #classroom .flow-node-join{margin-top:22px}
 #classroom .flow-node-discuss{margin-top:24px;min-height:0}
 #classroom .flow-reading-hint{max-width:680px;margin-left:auto;margin-right:auto;flex-direction:column;gap:4px}
 #classroom .flow-detail{grid-template-columns:1fr;gap:24px;min-height:0;margin-top:24px}
 #classroom .flow-detail h3{font-size:27px}
 #classroom .flow-lesson-note{padding-left:18px}
}
@media(max-width:639px){#classroom .flow-map{padding-right:8px;padding-left:30px}#classroom .flow-node{padding:10px 16px}#classroom .flow-node-title{font-size:20px}#classroom .flow-detail h3{font-size:26px}}
@media(prefers-reduced-motion:reduce){#classroom .flow-node{transition:none}}

/* A reserved image, not an unfinished or invented product UI. */
#classroom .flow-detail-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px;align-items:start}
#classroom .flow-detail-media,#classroom .flow-detail-copy{min-width:0}
#classroom .flow-image-slot{position:relative;aspect-ratio:16/9;border:1px solid var(--plae-line);border-radius:7px;background:var(--color-surface-2);overflow:clip;box-shadow:var(--detail-shadow)}
#classroom .flow-image-slot img{display:block;width:100%;height:100%;object-fit:contain;opacity:.32}
#classroom .flow-image-pending{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:12px;line-height:1.6;color:var(--plae-muted);pointer-events:none}
#classroom .flow-detail-media figcaption{font-size:12px;line-height:1.6;color:var(--plae-muted);margin-top:12px}
#classroom .flow-lesson-note{margin-top:24px}
@media(max-width:1199px){#classroom .flow-detail-main{gap:24px}}
@media(max-width:899px){#classroom .flow-detail-main{grid-template-columns:1fr;gap:24px}#classroom .flow-detail-media{width:100%}}

/* Keep all teacher buttons and their internal first lines on the same grid. */
@media(min-width:900px){#classroom .flow-node{margin:0;align-self:stretch}#classroom .flow-node-top{min-height:17px;flex-shrink:0}}
/* Text changes in place; only the image receives an opacity transition. */
#classroom .flow-detail{overflow-anchor:none}
