/* Content-led course routes: one short activity at a time. */
.ri-adaptive-flow .ri-progress { grid-template-columns:repeat(var(--ri-stage-count,4),minmax(0,1fr)); }
.ri-adaptive-flow .ri-step-track { grid-template-columns:repeat(var(--ri-step-count,2),minmax(0,1fr)); }
.ri-adaptive-flow .ri-main > .ri-entry { max-width:1060px; }
.ri-entry-canvas { padding:20px 24px; border:1px solid var(--ri-border); border-radius:18px; background:var(--ri-paper); box-shadow:0 4px 0 var(--ri-panel); }
.ri-entry-caption { display:flex; justify-content:space-between; gap:12px; color:var(--ri-muted); font-size:10px; letter-spacing:.06em; margin-bottom:17px; }
.ri-entry-caption small { letter-spacing:0; }
.ri-entry-pieces { display:flex; flex-wrap:wrap; gap:5px; align-items:baseline; }
.ri-entry-pieces button { padding:7px 9px; border:1px solid transparent; border-bottom:2px solid var(--ri-border); border-radius:8px; background:var(--ri-panel); color:var(--ri-ink); font-size:18px; line-height:1.55; text-align:left; transition:background .15s,border-color .15s; }
.ri-entry-pieces button:hover { border-color:var(--ri-accent); }
.ri-entry-pieces button.is-marked { color:var(--ri-accent); border-color:var(--ri-accent); background:var(--ri-accent-soft); }
.ri-entry-target { display:flex; align-items:center; gap:15px; padding-top:18px; margin-top:20px; border-top:1px dashed var(--ri-border); }
.ri-entry-target span,.ri-entry-target small { color:var(--ri-muted); font-size:11px; }
.ri-entry-target b { color:var(--ri-accent); font-size:21px; }
.ri-entry-writing .ri-entry-canvas { border-left:5px solid var(--ri-warm); }
.ri-entry-writing .ri-entry-pieces,.ri-entry-material .ri-entry-pieces,.ri-entry-case .ri-entry-pieces { display:grid; gap:8px; }
.ri-entry-writing .ri-entry-pieces button,.ri-entry-material .ri-entry-pieces button,.ri-entry-case .ri-entry-pieces button { font-size:15px; padding:10px 14px; line-height:1.8; }
.ri-entry-material .ri-entry-caption { color:var(--ri-accent); }
.ri-observation-label { display:flex; justify-content:space-between; gap:10px; margin:18px 0 6px; color:var(--ri-muted); font-size:11px; }
.ri-observation-label span { font-size:10px; }
.ri-observation { display:block; width:100%; box-sizing:border-box; min-height:60px; height:66px; max-height:150px; resize:vertical; border:1px solid var(--ri-border); border-radius:12px; padding:10px 13px; color:var(--ri-ink); background:var(--ri-paper); font-size:13px!important; }
.ri-entry-status { color:var(--ri-muted); font-size:10px; margin:8px 0 0; }
.ri-operation-task,.ri-saved-observation { margin-top:15px; padding:13px 17px; border-radius:12px; background:var(--ri-accent-soft); }
.ri-operation-task>span,.ri-saved-observation>span { font-size:10px; font-weight:600; color:var(--ri-accent); }
.ri-operation-task p,.ri-saved-observation p { margin:6px 0; font-size:13px; line-height:1.6; }
.ri-operation-task small { display:block; margin-top:6px; color:var(--ri-muted); font-size:10px; }
.ri-step-aside { margin-top:16px; padding-top:14px; border-top:1px dashed var(--ri-border); }
.ri-step-aside>span { font-size:10px; color:var(--ri-accent); font-weight:600; }
.ri-boundary { padding:12px 15px; margin:12px 0; border:1px solid var(--ri-border); border-radius:12px; background:var(--ri-paper); }
.ri-boundary summary { cursor:pointer; font-size:11px; color:var(--ri-muted); }
.ri-boundary p { font-size:13px; line-height:1.7; margin:10px 0 0; }
.ri-adaptive-flow .ri-visual-layout:not(:has(.ri-visual-tabs)) { grid-template-columns:minmax(300px,1.3fr) minmax(210px,.7fr); }
@media (max-width:700px) {
 .ri-entry-canvas { padding:13px 12px; border-radius:13px; }
 .ri-entry-caption { font-size:8px; gap:6px; margin-bottom:12px; }
 .ri-entry-caption small { font-size:8px; }
 .ri-entry-pieces { gap:4px; }
 .ri-entry-pieces button { font-size:14px; padding:5px 6px; }
 .ri-entry-writing .ri-entry-pieces button,.ri-entry-material .ri-entry-pieces button,.ri-entry-case .ri-entry-pieces button { font-size:12px; padding:8px 10px; }
 .ri-entry-target { padding-top:10px; margin-top:12px; gap:10px; }
 .ri-entry-target b { font-size:18px; }
 .ri-observation-label { margin-top:12px; font-size:10px; }
 .ri-observation-label span { font-size:8px; }
 .ri-observation { height:55px; min-height:55px; }
 .ri-adaptive-flow .ri-visual-note { display:flex; padding:10px 12px; }
 .ri-adaptive-flow .ri-visual-tabs { grid-template-columns:repeat(auto-fit,minmax(75px,1fr)); }
 .ri-adaptive-flow .ri-visual-layout:not(:has(.ri-visual-tabs)) { display:flex; }
}
