/* Reuse the established study design tokens and components, scoped to SOA-C03. */
.container:has(#soa-study){max-width:1200px}
.soa-study{min-width:0}
.soa-optional{margin:18px 0;border-block:1px solid var(--line);padding:12px 0}
.soa-optional>summary,.soa-lab>summary,.soa-scenario-detail>summary{cursor:pointer;font-size:14px;font-weight:600;line-height:1.6}
.soa-study .soa-lab{margin:18px 0;padding:12px 0}
.soa-lab-body{padding-top:12px}
.soa-scenario-detail{padding:12px 20px;border-top:1px solid var(--line)}
.soa-scenario-detail:not(:has(#soa-scope-scenario-notes:not([hidden]))){display:none}
.soa-scenario-detail .dva-scope-scenario-notes{padding:10px 0 0;border:0}
.soa-exam-alert{border:1px solid #fca5a5;border-left:4px solid #b91c1c;border-radius:8px;background:#fef2f2;color:#7f1d1d;padding:14px 16px;margin:16px 0}
.soa-exam-alert>strong{display:block;font-size:15px}
.soa-exam-alert p{margin:8px 0;font-size:13px}
.soa-exam-alert :is(th,td){font-size:13px}
.soa-exam-alert a{color:inherit;text-decoration:underline}
.soa-exam-alert .soa-alert-note{font-size:12px;line-height:1.5}
[data-theme="dark"] .soa-exam-alert{background:#32191e;border-color:#99474e;border-left-color:#f87171;color:#fecaca}
.soa-study .soa-zone .aws-map__tiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.soa-study .soa-zone .aws-map__tile{font-size:13px;min-height:104px}
.soa-study .soa-zone .aws-map__groups{display:block}
.soa-service-reference{border-bottom:1px solid var(--line);padding:10px 0}
.soa-service-reference>summary{font-weight:600;cursor:pointer;padding:8px 0}
.soa-card-content{font-size:14px;line-height:1.7;min-width:0}
.soa-card-content li{margin:9px 0}
.soa-card-content pre{font-size:12px;line-height:1.7;padding:14px;border-radius:8px;overflow-x:auto;white-space:pre}
.soa-learning-note{border-block:1px solid var(--line);padding:12px 0;margin:16px 0}
.soa-learning-note>summary{cursor:pointer;font-weight:600}
.soa-study .dva-dialog{width:min(940px,calc(100vw - 32px));box-sizing:border-box;max-height:88dvh}
.soa-study .dva-dialog::backdrop{background:rgba(15,23,42,.6)}
.soa-lab-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:18px 0}
.soa-lab-inputs label{display:flex;flex-direction:column;gap:7px;font-size:13px;min-width:0}
.soa-lab-inputs label:has(input[type="checkbox"]){flex-direction:row;align-items:center;align-self:center}
.soa-lab-inputs input:not([type="checkbox"]),.soa-lab-inputs select,.soa-practice-controls select{width:100%;min-width:0;box-sizing:border-box;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:10px;min-height:44px;font:inherit}
.soa-lab-inputs input[type="checkbox"]{width:18px;height:18px;flex:none;accent-color:var(--dva-blue)}
.soa-lab-inputs button{align-self:end}
.soa-lab-result{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--card)}
.soa-lab-state{display:block;color:var(--dva-blue);font-size:16px}
.soa-lab-flow{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0!important;margin:16px 0}
.soa-lab-flow li{flex:1 1 140px;border:1px solid var(--line);border-top:3px solid var(--muted);border-radius:6px;padding:12px;font-size:13px}
.soa-lab-flow li[data-soa-state="pass"]{border-top-color:var(--dva-green)}
.soa-lab-flow li[data-soa-state="fail"]{border-top-color:var(--dva-orange);border-top-style:dashed}
.soa-practice-controls{display:grid;gap:8px}
.soa-question-library{margin:20px 0}
.soa-question-library details{padding:12px 0;border-bottom:1px solid var(--line)}
.soa-question-library summary{cursor:pointer}
.soa-theory-map{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden;margin:24px 0}
.soa-theory-head,.soa-theory-panel{padding:20px}
.soa-theory-head>span{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--dva-orange);display:block}
.soa-theory-head>strong{display:block;font-size:24px;margin-top:8px;line-height:1.4}
.soa-theory-head p,.soa-theory-panel p{font-size:14px;line-height:1.7}
.soa-theory-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:0 20px 14px}
.soa-theory-controls label{font-size:13px}
.soa-theory-viewport{overflow-x:auto;overscroll-behavior-x:contain;border-block:1px solid var(--line)}
#soa-theory-canvas{display:block;min-width:1040px;width:100%;height:auto}
#soa-theory-canvas .soa-map-frame{fill:var(--bg);stroke:var(--line);stroke-width:1.5}
#soa-theory-canvas text{fill:var(--ink);font-size:17px}
#soa-theory-canvas .soa-lane-label{font-size:13px;letter-spacing:1px;fill:var(--muted)}
#soa-theory-canvas [data-soa-concept]{cursor:pointer}
#soa-theory-canvas [data-soa-concept] rect{fill:var(--card);stroke:var(--dva-blue);stroke-width:1.5}
#soa-theory-canvas [aria-pressed="true"] rect,#soa-theory-canvas [data-soa-concept]:focus rect{stroke:var(--dva-orange);stroke-width:4}
#soa-theory-canvas .soa-map-sub{font-size:14px;fill:var(--muted)}
#soa-theory-canvas .soa-map-edge{fill:none;stroke:var(--dva-blue);stroke-width:2;marker-end:url(#soa-map-arrow)}
#soa-theory-canvas .soa-map-edge[data-flow="traffic"]{stroke:var(--dva-green);marker-end:url(#soa-traffic-arrow)}
#soa-theory-canvas .soa-map-edge[data-flow="change"]{stroke:var(--dva-purple);stroke-dasharray:6 5;marker-end:url(#soa-change-arrow)}
#soa-theory-canvas .soa-map-edge[data-flow="evidence"]{stroke-dasharray:2 5}
.soa-map-legend{display:flex;flex-wrap:wrap;gap:14px;padding:12px 20px;font-size:12px;color:var(--muted)}
.soa-map-legend span::before{content:"";display:inline-block;width:24px;border-top:2px solid var(--dva-blue);margin-right:6px;vertical-align:middle}
.soa-map-legend [data-flow="traffic"]::before{border-color:var(--dva-green)}
.soa-map-legend [data-flow="change"]::before{border-color:var(--dva-purple);border-top-style:dashed}
.soa-map-legend [data-flow="evidence"]::before{border-top-style:dotted}
.soa-theory-static{padding:0 20px 20px}.soa-theory-static details{padding:8px 0}
.soa-study .soa-theory-static summary{cursor:pointer}
#soa-concept-panel{min-height:240px}
#soa-scope-canvas{display:block;width:100%;height:clamp(1000px,78vw,1360px);touch-action:none;cursor:grab;background-image:radial-gradient(var(--line) .7px,transparent .7px);background-size:16px 16px;user-select:none}
#soa-scope-step-detail{font-size:14px;line-height:1.7;margin-top:14px;min-height:112px}
#soa-scope-step-detail p{max-width:100ch}
#soa-scope-legend{display:flex;gap:8px 14px;flex-wrap:wrap;padding-top:10px}
#soa-scope-legend label{border-bottom:2px solid var(--edge-color);padding:4px}
#soa-scope-match{color:var(--muted)}
.soa-study .dva-scope-player button#soa-scope-run{background:#1d4ed8;border-color:#1d4ed8;color:#fff;font-weight:700;min-height:44px;padding:10px 18px}
.soa-study .dva-scope-player button#soa-scope-run:hover:not(:disabled){background:#1e40af;border-color:#1e40af}
.soa-study .dva-scope-explorer:fullscreen #soa-scope-canvas{height:clamp(420px,68dvh,1000px)}
@media(max-width:760px){.soa-lab-inputs{grid-template-columns:1fr}.soa-study .soa-zone .aws-map__tiles{grid-template-columns:repeat(2,minmax(0,1fr))}#soa-scope-canvas{height:660px}#soa-scope-step-detail{min-height:0}.soa-theory-head>strong{font-size:21px}.soa-theory-controls{align-items:stretch;flex-direction:column}.soa-theory-panel{padding:16px}}
@media print{#soa-scope-canvas{height:700px}#soa-theory-canvas{min-width:0}.soa-lab-inputs{display:none}}
