.concept-lab { padding: 1.35rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--panel); margin: 2rem 0; }
.concept-eyebrow { font: .7rem var(--mono); color: var(--blue); letter-spacing: .1em; }
.concept-lab h3 { margin: .6rem 0; font-size: 1.3rem; line-height: 1.3; }
.concept-lab > p:not(.concept-eyebrow) { color: var(--dim); font-size: .95rem; }
.concept-picks { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
.concept-picks button { border: 1px solid var(--line); border-radius: .4rem; min-height: 48px; padding: .7rem .85rem; font: inherit; font-size: .9rem; color: var(--fg); background: var(--card); cursor: pointer; text-align: left; }
.concept-picks button[aria-pressed="true"] { border-color: var(--blue); background: var(--cyan-soft); }
.concept-stage { padding: 1.2rem; background: var(--bg); border-left: 3px solid var(--blue); border-radius: .4rem; }
.concept-stage strong { display:block; font-size: 1.05rem; }
.concept-stage p { margin: .7rem 0 0; font-size: 1rem; line-height: 1.7; }
.concept-scenario-number { display:block; font: .72rem var(--mono); margin-bottom: .7rem; color: var(--dim); }
.concept-case summary { cursor:pointer; min-height:48px; padding-block:.7rem; }
.concept-case p { margin:0 0 1rem; }
.concept-lab.is-enhanced .concept-cases { display:none; }
.concept-calculator { margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--line); }
.concept-calculator label { display:grid; gap:.5rem; font-size:.9rem; margin-top:1rem; }
.concept-calculator input { width:100%; min-height:44px; accent-color:var(--blue); }
.concept-calculator p { font-size:.85rem; color:var(--dim); }
.concept-calculator output { display:block; padding:1rem; border:1px solid var(--blue); border-radius:.4rem; font-size:.95rem; }
.concept-lab .concept-limit { font-size:.75rem; margin-bottom:0; }
.concept-lab [hidden] { display:none !important; }
.permission-lab select { max-width:100%; width:100%; min-height:48px; padding:.6rem; background:var(--panel); color:var(--fg); border:1px solid var(--dim); border-radius:.35rem; font:inherit; }
.permission-classes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.5rem; margin-block:1.2rem; }
.permission-classes fieldset { min-width:0; margin:0; padding:.7rem; border:1px solid var(--line); border-radius:.4rem; }
.permission-classes legend { font-size:.85rem; padding:0 .2rem; }
.permission-classes [data-selected="true"] { border:2px solid var(--topic-accent,var(--blue)); background:var(--topic-soft,var(--cyan-soft)); }
.permission-classes label,.concept-calculator .permission-toggle { display:flex; align-items:center; gap:.5rem; margin:0; min-height:48px; }
.permission-lab input[type="checkbox"] { width:20px; height:20px; min-height:20px; flex:none; }
.permission-gates { display:grid; gap:.5rem; margin:1rem 0; }
.permission-gates p { margin:0; padding:.75rem; border:1px solid var(--line); border-radius:.4rem; color:var(--fg); font-size:.95rem; }
.permission-gates [data-allowed="true"] { border-left:4px solid var(--green); }
.permission-gates [data-allowed="false"] { border-left:4px solid var(--red); }
.memory-cells { list-style:none; padding:0; display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:.25rem; margin:1rem 0; }
.memory-cells li { min-width:0; text-align:center; padding:.7rem 0; border:1px solid var(--line); border-radius:.3rem; font: .9rem var(--mono); }
.memory-cells [data-selected="true"] { border:2px solid var(--blue); background:var(--cyan-soft); font-weight:700; }
.memory-cells [data-alive="false"] { text-decoration:line-through; border-style:dashed; }
@media(max-width:480px){.permission-classes{grid-template-columns:1fr;}.permission-classes fieldset{display:flex;gap:1rem;}.permission-classes label{flex:1;}}
.lesson-depth .picture { max-width:24rem; margin-inline:auto; }
.lesson-depth .picture svg text { font-size:15px; }
.lesson-depth .picture svg .highlight { fill:var(--hi-soft); stroke:var(--pic-hi); stroke-width:1.4; }
.depth-brief { border-left:3px solid var(--blue); padding:.8rem 1rem; background:var(--cyan-soft); font-size:.9rem; margin:1rem 0; }
.depth-routes { margin:1rem 0 2rem; }
.depth-routes[hidden] { display:none; }
.depth-intro { max-width:65ch; color:var(--dim); font-size:.95rem; }
.depth-routes ul { list-style:none; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.depth-routes li { min-width:0; }
.depth-routes a { display:grid; grid-template-columns:28px minmax(0,1fr); gap:.55rem .8rem; padding:1rem; border:1px solid var(--line); border-radius:.5rem; background:var(--panel); height:100%; box-sizing:border-box; text-decoration:none; color:var(--fg); }
.depth-routes a:hover { border-color:var(--blue); }
.depth-routes svg { width:26px; height:26px; fill:none; stroke:var(--blue); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.depth-routes strong { font-size:1rem; line-height:1.45; }
.depth-routes span,.depth-routes small { grid-column:2; color:var(--dim); font-size:.85rem; line-height:1.5; }
.depth-routes small { font-family:var(--mono); font-size:.7rem; }
.study-path { max-width:var(--prose); margin:1.4rem 0; padding:1rem; border:1px solid var(--line); border-left:3px solid var(--topic-accent,var(--blue)); border-radius:.5rem; background:var(--panel); }
.study-path summary { cursor:pointer; min-height:44px; }
.study-path summary strong { font-size:1rem; line-height:1.5; }
.study-path summary span { display:block; margin:.3rem 0 0 1.2rem; color:var(--dim); font: .75rem var(--mono); }
.study-path p { font-size:.9rem; color:var(--dim); }
.study-path ol { margin:1rem 0; padding-left:1.4rem; }
.study-path li { padding-left:.25rem; }
.study-path li a { display:flex; align-items:center; justify-content:space-between; gap:.75rem; min-height:44px; padding:.45rem .5rem; color:var(--fg); text-decoration:none; border-radius:.3rem; }
.study-path li a:hover { background:var(--cyan-soft); text-decoration:underline; }
.study-path li a[aria-current="step"] { background:var(--topic-soft,var(--cyan-soft)); font-weight:700; }
.study-path li span { min-width:0; overflow-wrap:anywhere; }
.study-path li small { white-space:nowrap; font: .72rem var(--mono); color:var(--dim); }
.study-path .study-explore { display:inline-flex; align-items:center; min-height:44px; font-size:.85rem; }
@media(max-width:560px) { .depth-routes ul { grid-template-columns:1fr; } }
@media (max-width:560px) { .concept-lab{padding:1rem;} .concept-picks{display:grid;} }
@media print { .concept-picks,.concept-stage,.concept-calculator{display:none!important;} .concept-lab.is-enhanced .concept-cases{display:block;} }
