/* CIPT-specific composition. Shared chrome, identity and explanations stay upstream. */
.cipt-page { --page-title-accent:var(--bt-title-accent-cipt-studio); }
.cipt-page #studio-frame { flex:1; }
.cipt-explanation-bank { display:none; }
.cipt-workspace { min-width:0; }
.cipt-identity { margin:0; }
/* Inline progress help shares the text line instead of enlarging its baseline. */
#studio-frame .cipt-processing > .nutshell-expandable.explanation-inline { font:inherit !important; }
.cipt-emblem { background:var(--bt-icon-cipt-studio); }
.cipt-app { --bg:#F6F0E2; --paper:#FFFCF4; --ink:#15252B; --muted:#4A5860; --line:#b7b3a6; --green:#15252B; --dark:#163F36; --pale:#E7E8DF; --amber:#77543B; --red:#8D4B5A; --radius:12px; --shadow:none; font:400 17px/1.55 Barlow,sans-serif; color:var(--ink); background:transparent; }
.cipt-app :is(h1,h2,h3,h4) { font-family:Barlow,sans-serif; font-weight:700; letter-spacing:0; }
.cipt-app .shell { grid-template-columns:174px minmax(0,1fr); min-height:0; gap:28px; }
/* Native sidebar z=10 must not escape above the shared header's z=3. */
.cipt-app .sidebar { position:sticky; top:20px; height:max-content; padding:0 18px 0 0; background:transparent; border-right:1px solid var(--line); z-index:0; }
.cipt-app .sidebar .brand,.cipt-app .profile,.cipt-app .mobile-header,.cipt-app .topbar { display:none; }
.cipt-app .nav-label { margin:0 0 12px; padding:0 10px; color:var(--muted); font-size:12px; }
.cipt-app .nav { gap:4px; }
.cipt-app .nav-item { min-height:44px; padding:10px; font-size:16px; color:var(--ink); border-radius:6px; }
.cipt-app .nav-item.active { background:#E7E8DF; color:var(--ink); font-weight:700; }
.cipt-app .nav-item:hover { background:#e9e3d5; }
.cipt-app .sidebar-bottom { padding-top:24px; }
.cipt-app .private-note { padding:14px 8px; font-size:13px; color:var(--muted); }
.cipt-app .workspace { padding:0; max-width:none; margin:0; }
.cipt-app main { width:100%; min-height:0; display:block; padding:0; margin:0; }
.cipt-app .page-heading { align-items:flex-start; margin-bottom:20px; }
.cipt-app .page-heading h1 { font-size:30px; font-weight:900; }
.cipt-app #main h1 { scroll-margin-top:16px; }
.cipt-app .page-heading p { font-size:17px; line-height:1.5; color:var(--muted); }
.cipt-app .segmented button { min-height:44px; padding:8px 12px; font-size:15px; color:var(--ink); }
.cipt-app .segmented button.selected { color:var(--ink); font-weight:700; box-shadow:inset 0 -2px 0 var(--ink); }
.cipt-app :is(.tab,.back-button,.confidence button) { color:var(--ink); }
.cipt-app .option-letter { color:var(--ink); font-size:14px; }
.cipt-app .card-ratings button:not(:disabled) { color:var(--ink); font-size:16px; }
.cipt-app .card-ratings button :is(small,span) { color:var(--ink); font-size:13px; }
.cipt-app .card-ratings button strong { color:var(--ink); font-size:16px; }
.cipt-app .hero { background:#ECE7DA; color:var(--ink); border:1px solid var(--line); border-radius:12px; min-height:240px; padding:28px; }
.cipt-app .hero:after { display:none; }
.cipt-app .hero h2 { font-size:36px; font-weight:900; margin-top:0; }
.cipt-app .hero p { font-size:18px; color:var(--ink); }
.cipt-app .hero-visual svg { height:210px; }
.cipt-app .hero-visual { background:#163F36; border-radius:10px; margin-left:20px; }
.cipt-app .hero .button.primary,.cipt-app .button.primary { background:#B54128; border-color:#B54128; color:#FFFCF4; }
.cipt-app .hero .button.ghost { color:var(--ink); }
.cipt-app .button { min-height:44px; font-size:16px; border-radius:8px; padding:10px 14px; font-weight:600; }
.cipt-app .button.small { font-size:15px; padding:8px 12px; }
.cipt-app .button.secondary { background:#E7E8DF; color:var(--ink); }
.cipt-app .button.ghost { color:var(--ink); }
.cipt-app[data-page="cards"] .page-heading { margin-bottom:8px; gap:16px; }
.cipt-app[data-page="cards"] .page-heading .button { font-size:16px; }
.cipt-app[data-page="cards"] .cipt-help { margin:0 0 16px; }
.cipt-app .cards-layout { display:grid; gap:16px; }
.cipt-app .cards-layout .flashcard { min-height:0; margin:0; padding:24px; }
.cipt-app .cards-layout .flashcard .eyebrow { margin-bottom:12px; }
.cipt-app .cards-layout .flashcard h2 { margin:0 0 20px; }
.cipt-app .cards-layout .card-ratings { margin:0; }
.cipt-app .card-actions { margin:0; gap:12px; }
.cipt-app :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid #15252B; outline-offset:2px; }
.cipt-app [tabindex="-1"]:focus:not(:focus-visible) { outline:none; }
.cipt-app .metrics { gap:12px; margin-bottom:24px; }
.cipt-app .metric { border-radius:8px; padding:16px; }
.cipt-app .metric-top { font-size:14px; color:var(--muted); min-height:40px; margin-bottom:10px; }
.cipt-app .metric-value { font-size:32px; font-weight:700; }
.cipt-app .metric-foot { font-size:13px; color:var(--muted); }
.cipt-app .dashboard-grid { grid-template-columns:minmax(0,1.35fr) minmax(240px,1fr); gap:18px; }
.cipt-app :is(.panel,.study-card,.question-card,.lesson-main,.lesson-aside,.flashcard,.recall-box,.reference-shelf) { border-radius:10px; box-shadow:none; }
.cipt-app :is(.panel,.study-card,.question-card,.lesson-main,.flashcard) { padding:24px; }
.cipt-app .focus-panel { background:#E7E8DF; }
.cipt-app .next-copy h3 { font-size:18px; }
.cipt-app :is(.next-copy p,.focus-panel p,.section-heading p,.quiet,.meta-line,.lesson-aside p) { font-size:15px; color:var(--muted); }
.cipt-app .next-copy small { font-size:12px; color:var(--muted); }
.cipt-app .arrow-button { width:44px; height:44px; }
.cipt-app :is(.eyebrow,.domain-num) { font-size:12px; color:var(--muted); }
.cipt-app :is(.section-heading h2,.panel h3) { font-size:24px; }
.cipt-app .domain-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cipt-app .domain-mini { min-height:145px; border-radius:8px; padding:16px; }
.cipt-app .domain-mini strong { font-size:18px; }
.cipt-app .domain-mini small { font-size:13px; color:var(--muted); }
.cipt-app :is(.study-card p,.prose,.callout p,.lesson-summary,.reference-card p,.reference-scope,.question-prompt,.option,.confidence button,.reference-card>summary,.competency>summary,.indicator-copy) { font-size:17px; line-height:1.55; }
.cipt-app :is(.badge,.source-list li,.source-list small,.reference-card .source-list li,.reference-card .source-list small,.tab,.feedback p,.footer,.lab-source) { font-size:14px; }
.cipt-app :is(input,select,textarea) { font-size:16px; border-color:var(--line); border-radius:8px; }
.cipt-app .lesson-layout { grid-template-columns:minmax(0,1fr) 250px; gap:20px; }
.cipt-app .lesson-title { font-size:32px; }
.cipt-app .study-grid { gap:18px; }
.cipt-app .footer { font-size:13px; margin-top:28px; padding-top:16px; color:var(--muted); }
.cipt-app .footer button { font-size:13px; }
.cipt-app .source-list { overflow-wrap:anywhere; }
.cipt-app .reference-card .reference-example { font-size:16px; }
.cipt-app .cipt-help { margin-block:16px; font-size:17px; }
.cipt-app .cipt-help .nutshell-expandable { color:var(--ink); }
.cipt-app .nutshell-bubble h3 { font-size:20px; }
.cipt-app .nutshell-bubble p { font-size:17px; }
/* Only these authored bracket passages should shrink to their text measure. */
.cipt-page .nutshell-bubble [data-cipt-bracket-text] { inline-size:fit-content; max-inline-size:100%; }
.cipt-app .concept-art figcaption p { font-size:16px; }
.cipt-app .concept-art img { object-fit:contain; }
.cipt-app .mobile-nav { position:static; }
.cipt-app .modal-backdrop { z-index:200; }
.cipt-app .modal :is(p,label) { font-size:16px; }
.cipt-app .modal { max-height:90svh; overflow:auto; }
.cipt-app #mock-question,.cipt-app #practice-question,.cipt-app .feedback h3,.cipt-app .break-screen h2,.cipt-app .summary-hero h2,.cipt-app .import-preview h3 { scroll-margin-top:16px; }
/* Light-panel prose and metadata must not inherit the native pale green text. */
.cipt-app :is(.lesson-summary,.modal p,.indicator-code,.indicator-copy small,.competency summary small,.metric-value small,.summary-score small,.evidence-number small,.badge,.session-meta,.selection-help,.confidence-row legend,.exam-phase small,.exam-phase span,.mock-nav-wrap p,.break-screen p,.review-item p,.review-answer,.review-result,.baseline-table th,.brief-text,.rubric,.teachback-layout p,.teachback-record,.teachback-record small,.field label,.field small,.reference-group>summary small,.lab-copy p,.lab-stage p,.dp-visual small,.lab-source,.lab-node span,.stage-number,.threat-result small,.hospital-row small,.diagram-person>span,.diagram-line,.policy-result small) { color:var(--muted); }
.cipt-app .question-nav button { color:var(--ink); }
.cipt-app .timer.urgent { color:var(--red); }
.cipt-app .lab-node.is-active span { color:#FFFCF4; }
.cipt-app .draft-recovery { border-left:3px solid var(--amber); padding:0 0 0 14px; margin-block:18px; }
.cipt-app .mock-freshness { font-size:15px; color:var(--muted); }
.cipt-app .teachback-layout p { font-size:16px; line-height:1.6; }
.cipt-app .brief-text { font-size:14px; }
.cipt-app :is(.focus-panel .eyebrow,.domain-heading .domain-label,.reference-scope,.study-card p,.study-card .meta-line,.update-streams,.timer) { color:var(--muted); }
.cipt-app .reference-card .source-list small { color:var(--muted); }
.cipt-app .callout.amber,.cipt-app .callout.amber h3,.cipt-app .group-count.unique { color:var(--amber); }
/* These live regions sit outside #app, whose native CSS is deliberately scoped. */
.cipt-page #announcer.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.cipt-page #toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%,20px); width:max-content; max-width:min(520px,calc(100% - 32px)); box-sizing:border-box; padding:12px 20px; border-radius:12px; background:#213e30; color:#eef3e5; font:400 16px/1.4 Barlow,sans-serif; box-shadow:0 5px 30px #20351f30; opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; z-index:100; }
.cipt-page #toast.visible { opacity:1; transform:translate(-50%,0); }
@media(prefers-reduced-motion:reduce) { .cipt-page #toast { transition:none; } }
@media(max-width:1250px) {
 .cipt-app .shell { grid-template-columns:1fr; gap:18px; }
 .cipt-app .sidebar { position:static; border:0; padding:0 0 16px; border-bottom:1px solid var(--line); }
 .cipt-app .sidebar .nav-label,.cipt-app .sidebar-bottom { display:none; }
 .cipt-app .nav { display:flex; flex-direction:row; flex-wrap:wrap; gap:4px; }
 .cipt-app .nav-item { padding:8px 10px; font-size:16px; }
 .cipt-app .nav-item .nav-dot { display:none; }
 .cipt-app .lesson-layout { grid-template-columns:minmax(0,1fr) 230px; }
}
@media(max-width:720px) {
 .cipt-app .sidebar { display:none; }
 .cipt-app .mobile-nav { display:none; }
 .cipt-app .shell { display:flex; flex-direction:column; }
 .cipt-app .workspace { padding:0; }
 .cipt-app .studio-mobile-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; border-bottom:1px solid var(--line); padding-bottom:14px; }
 .cipt-app .studio-mobile-nav a { padding:8px 4px; min-height:44px; text-align:center; font-size:14px; line-height:1.3; color:var(--ink); border-radius:6px; text-decoration:none; display:grid; align-items:center; }
 .cipt-app .studio-mobile-nav a[aria-current] { background:#E7E8DF; font-weight:700; }
 .cipt-app .page-heading { flex-direction:column; gap:12px; }
 .cipt-app .page-heading h1 { font-size:27px; }
 .cipt-app .hero { padding:20px; min-height:0; grid-template-columns:1fr; }
 .cipt-app .hero h2 { font-size:30px; }
 .cipt-app .hero-visual { display:none; }
 .cipt-app .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .cipt-app .metric { padding:12px; }
 .cipt-app .metric-top { font-size:13px; min-height:45px; }
 .cipt-app .metric-top svg { display:none; }
 .cipt-app .metric-value { font-size:28px; }
 .cipt-app .metric-foot { font-size:12px; }
 .cipt-app :is(.dashboard-grid,.lesson-layout,.study-grid,.domain-strip,.reference-grid) { grid-template-columns:minmax(0,1fr); }
 .cipt-app :is(.panel,.study-card,.question-card,.lesson-main,.flashcard) { padding:16px; }
 .cipt-app .next-item { gap:10px; }
 .cipt-app .next-item .tile-icon { display:none; }
 .cipt-app .domain-mini { min-height:0; }
 .cipt-app .lesson-title { font-size:28px; }
 .cipt-app .footer { display:flex; flex-direction:column; gap:8px; }
 .cipt-app .lab-controls>label { min-width:0; width:100%; }
 .cipt-app .concept-lab { padding:16px; border-radius:10px; }
 .cipt-app .lab-check-grid { grid-template-columns:1fr; }
 .cipt-app .weather-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .cipt-app .lab-flow { flex-wrap:wrap; }
 .cipt-app .lab-node { min-width:80px; }
 .cipt-app .dp-visual { padding:14px; gap:12px; }
 .cipt-app .lab-stat { font-size:30px; }
 .cipt-app .option { padding:14px 10px; }
 .cipt-app .card-ratings { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .cipt-app .question-card { overflow-wrap:anywhere; }
 .cipt-app .mock-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
 .cipt-page .cipt-workspace { padding:0; border:0; background:transparent; }
 .cipt-app .cards-layout .flashcard { padding:20px 16px; }
}
@media(min-width:721px) { .studio-mobile-nav { display:none; } }
@media print { .cipt-page>.site-header,.cipt-page>.site-footer,.studio-mobile-nav,.cipt-app .sidebar { display:none; } .cipt-workspace{border:0;padding:0;} }
