#template-studio {position:fixed;inset:0;z-index:100;background:#f3f4f1;color:#202820;overflow:auto;font:15px/1.55 var(--ui-font,Arial,sans-serif)}
#template-studio[hidden],#template-studio [hidden]{display:none!important}
.studio-top {position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#18211c;color:#fff;padding:18px 28px}
.studio-top strong {font-size:23px;letter-spacing:-.5px;margin-right:22px}.studio-top span{color:#cdd6cf}
.studio-layout {display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100vh - 80px)}
.studio-library {background:#e8ece5;padding:25px 18px;border-right:1px solid #ccd3c8}
.studio-library h2{font-size:19px;margin:0}.studio-library p{color:#4e594e;font-size:13px}
#st-templates{display:grid;gap:8px;margin:20px 0}#st-templates button{text-align:left;background:transparent;border-color:transparent;padding:12px}
#st-templates button[aria-current=true]{background:#fff;border-color:#86977c;font-weight:700}
.studio-main{padding:30px 36px 70px;max-width:1600px;width:100%;box-sizing:border-box}
.studio-title{display:flex;justify-content:space-between;align-items:end;gap:20px}.studio-title>div:first-child{flex:1}.studio-title input{font-size:24px!important;font-weight:600;background:transparent!important;border-color:transparent!important;padding-left:0!important}
.studio-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.studio-tabs{display:flex;gap:18px;border-bottom:1px solid #bdc5b8;margin:24px 0 30px;padding-bottom:12px}
#template-studio .studio-tabs button{background:transparent;border:0;border-radius:0;padding:8px 2px}.studio-tabs [aria-pressed=true]{box-shadow:0 3px #44652c;font-weight:700}
.studio-columns{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:36px}.studio-columns>section{min-width:0}
#template-studio h1{font-size:25px;margin:0 0 8px}#template-studio h2{font-size:19px;margin:12px 0}#template-studio p{max-width:72ch}
#template-studio button{font:inherit;font-size:13px;border:1px solid #acb6a6;border-radius:5px;background:#fff;color:#263024;padding:9px 13px;cursor:pointer}
#template-studio button:hover{background:#e9efdf}#template-studio button:disabled{opacity:.45;cursor:not-allowed}#template-studio .st-primary{background:#d7f49b;border-color:#8dbe4e;color:#223312;font-weight:600}
#template-studio input,#template-studio textarea,#template-studio select{box-sizing:border-box;width:100%;max-width:100%;font:inherit;background:#fff;color:#202820;border:1px solid #b5bfb0;border-radius:4px;padding:10px}
#template-studio label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}#template-studio label span{font-weight:400}
#template-studio textarea{min-height:190px;resize:vertical;line-height:1.65}#st-note{min-height:90px!important}
#template-studio :focus-visible{outline:3px solid #426db6;outline-offset:3px}
.studio-section-row{display:flex;align-items:center;gap:6px;padding:12px 0;border-bottom:1px solid #d1d8cc;flex-wrap:wrap}.studio-section-row input{flex:1 1 190px}
.studio-paper{background:#fff;padding:25px;border:1px solid #d1d8cc;align-self:start}.studio-paper h3{margin:28px 0 8px;font-size:16px}.studio-paper p{font-size:13px;color:#53604e}
.studio-example-bar{display:flex;gap:15px;align-items:end;flex-wrap:wrap;margin-bottom:25px}.studio-example-bar label{min-width:180px;flex:1}
.studio-palette{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
#template-studio [data-mark=include],#st-source-view [data-kind=include]{background:#d3edbb;color:#1b3d0c}
#template-studio [data-mark=elsewhere],#st-source-view [data-kind=elsewhere]{background:#ffedaa;color:#523f00}
#template-studio [data-mark=exclude],#st-source-view [data-kind=exclude]{background:#f8cdca;color:#661410}
#st-source-view{background:#fff;border:1px solid #acb6a6;padding:24px;white-space:pre-wrap;overflow-wrap:anywhere;min-height:230px;line-height:1.9;font-size:16px;user-select:text}
#st-source-view mark{padding:2px 0;box-decoration-break:clone}
.studio-footnote{font-size:12px!important;color:#53604e;margin-top:22px}
#st-status{margin-top:24px;padding:12px 0;font-weight:600;color:#365026}
#st-file-dialog{width:min(470px,90vw);border:1px solid #77816e;background:#f7f9f3;color:#263024;padding:28px;border-radius:8px}#st-file-dialog::backdrop{background:#18211c99}
@media(max-width:1050px){.studio-columns{grid-template-columns:1fr}.studio-layout{grid-template-columns:205px minmax(0,1fr)}.studio-main{padding:24px}.studio-title{align-items:start;flex-direction:column}}
@media(max-width:650px){.studio-layout{display:block}.studio-library{border-right:0;border-bottom:1px solid #ccd3c8}.studio-library .studio-footnote{display:none}#st-templates{display:flex;overflow-x:auto}#st-templates button{min-width:150px}.studio-top{position:static;flex-direction:column;align-items:start;padding:16px}.studio-main{padding:20px 16px}.studio-top .studio-actions{gap:5px}#st-save-state{flex-basis:100%}.studio-section-row input{flex-basis:100%}}
@media print{#template-studio{display:none!important}}
/* Guided example editing: keep the lesson and its next action together. */
#template-studio[data-mode=examples] .studio-layout{grid-template-columns:1fr}
#template-studio[data-mode=examples] .studio-library{display:none}
#template-studio[data-mode=examples] .studio-main{max-width:1500px;margin:auto}
.studio-title>div:first-child{min-width:0;width:100%}
.studio-training-intro p{margin:6px 0}
.studio-connection{font-size:13px;color:#514521;background:#f4eedc;padding:10px 14px}
.studio-lesson-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:28px}
.studio-lessons{border-right:1px solid #ccd3c8;padding-right:18px}
#st-lesson-list{display:grid;gap:8px}
#st-lesson-list button{text-align:left;overflow-wrap:anywhere;width:100%}
#st-lesson-list button[aria-current=true]{border-color:#526a3e;background:#eaf1df}
#st-lesson-list small{display:block;font-size:12px;color:#4e594e;margin-top:5px;font-weight:400}
.studio-steps{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid #c6cebf;padding-bottom:12px}
#template-studio .studio-steps button{border:0;background:transparent;padding:8px}
#template-studio .studio-steps [aria-current=step]{background:#e3eccf;font-weight:700}
#st-guidance{margin:18px 0 22px;min-height:3em}
.studio-next{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #c6cebf;margin-top:24px;padding:18px 0}
#st-progress{font-size:13px;color:#4e594e}
#template-studio[data-mode=examples] .studio-columns{gap:24px}
#template-studio button{min-height:40px}
@media(max-width:1050px){.studio-lesson-layout{grid-template-columns:180px minmax(0,1fr);gap:20px}}
@media(max-width:650px){.studio-lesson-layout{display:block}.studio-lessons{border:0;padding:0;margin-bottom:20px}#st-lesson-list{display:flex;overflow-x:auto}#st-lesson-list button{flex:0 0 180px}.studio-example-bar label{min-width:0;flex-basis:100%}.studio-next{align-items:stretch;flex-direction:column}.studio-title>div:first-child{width:100%}#template-studio .studio-title input{font-size:20px!important}}
#template-studio[data-mode=examples] .studio-title{display:none}
#template-studio[data-mode=examples] .studio-main{padding-top:14px}
#template-studio[data-mode=examples] .studio-tabs{margin:8px 0 18px;padding-bottom:8px}
#template-studio[data-mode=examples] #st-specialty{margin:0;font-weight:600}
#template-studio[data-mode=examples] .studio-example-bar{margin-bottom:14px}
#template-studio[data-has-example=false] .studio-lesson-layout .studio-columns,
#template-studio[data-has-example=false] .studio-next{display:none}
#template-studio[data-step="1"] #st-teaching .studio-columns{grid-template-columns:1fr}
#template-studio[data-step="1"] #st-teaching .studio-columns>section:last-child{display:none}
#st-label-source{display:none}
.studio-history{margin-top:22px}.studio-history summary{cursor:pointer;font-size:14px;padding:8px 0}
.studio-test{margin-top:32px;padding-top:20px;border-top:1px solid #aab6a3}.studio-test h2{margin-top:0}#st-test-status{font-weight:600}#st-test-result{min-height:110px!important}#template-studio[data-step="1"] .studio-test{display:none}
#template-studio #st-training-template{max-width:640px;margin-bottom:14px}
#st-training-overview{margin-top:28px}
#st-training-overview>.studio-actions{justify-content:space-between}
#st-training-overview h2{margin-right:auto}
.studio-training-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}
.studio-training-row>div{min-width:0}
.studio-training-row h3{font-size:16px;margin:0 0 6px;overflow-wrap:anywhere}
.studio-training-row p{font-size:13px;margin:0;color:var(--ink-soft)}
.studio-training-row button{flex-shrink:0}
#st-training-heading{overflow-wrap:anywhere;min-width:0}
#st-training-editor>.studio-actions{margin:24px 0 8px}
@media(max-width:650px){.studio-training-row{align-items:start;flex-direction:column;gap:12px}.studio-training-row button{width:100%}#st-training-overview>.studio-actions{align-items:stretch;flex-direction:column}#st-training-overview h2{margin-right:0}}

#st-training-heading,#st-training-template{scroll-margin-top:110px}

/* Each teaching step has a single work surface. */
#st-training-editor .studio-columns{grid-template-columns:minmax(0,1fr)}
#template-studio[data-step="1"] #st-training-editor .studio-columns>section:last-child,
#template-studio[data-step="2"] #st-training-editor .studio-columns>section:last-child,
#template-studio[data-step="3"] #st-training-editor .studio-columns>section:first-child,
#template-studio[data-step="4"] #st-training-editor .studio-columns{display:none}
#template-studio:not([data-step="4"]) .studio-test{display:none}
#template-studio[data-step="4"] .studio-test{display:block;margin-top:0;border-top:0}
#template-studio[data-step="2"] #st-example-name,
#template-studio[data-step="2"] label[for="st-example-name"],
#template-studio[data-step="1"] #st-edit-source,
#template-studio[data-step="1"] #st-training-editor .studio-columns>section:first-child>p,
#st-commit{display:none}
.studio-next{position:sticky;bottom:0;background:var(--surface);z-index:1;padding:16px 0}
#st-guidance{font-size:18px;font-weight:600;min-height:0}
#st-save-state{max-width:42ch;white-space:normal}
#template-studio[data-mode=examples] .studio-training-intro .studio-connection{display:none}
#template-studio[data-mode=examples] .studio-main{min-width:0}

.studio-top>div:first-child{min-width:0}#st-context{overflow-wrap:anywhere}#template-studio .studio-top{position:sticky;top:0}#st-output,#st-source-view,#st-test-source{scroll-margin-top:140px}

.studio-outline-section{padding:12px 0 22px;border-bottom:1px solid var(--line,#aab6a3)}
#template-studio .studio-outline-heading{font-weight:700;font-size:16px;margin:8px 0}
.studio-outline-paragraph{margin:14px 0}.studio-outline-paragraph .studio-actions{gap:4px;margin-bottom:8px}
#template-studio .studio-outline-paragraph button{padding:5px 8px;min-height:32px}
#template-studio .studio-outline-paragraph button[aria-pressed=true]{background:#d7f49b;color:#223312;border-color:#8dbe4e}
.studio-outline-line{display:flex;align-items:baseline;gap:6px}.studio-outline-line>span{min-width:1.3em}
#template-studio .studio-outline-line textarea{min-height:90px;line-height:1.6;resize:vertical}

/* Template composition: one ribbon above one continuous document. */
#st-structure{display:block}#st-structure>section:first-child{display:none}
#st-structure>.studio-paper{padding:0;background:transparent;border:0;width:100%}
#template-studio[data-mode=sections] .studio-main{max-width:none;padding:24px 30px 60px}
#template-studio[data-mode=sections] .studio-layout{grid-template-columns:210px minmax(0,1fr)}
.studio-word{background:#dedfdc;border:1px solid #a9afa7}
.studio-ribbon{display:flex;flex-wrap:wrap;gap:10px;padding:12px;background:var(--surface,#f4f4f1);position:sticky;top:78px;z-index:2;border-bottom:1px solid var(--line,#aaa)}
.studio-ribbon-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding-right:10px;border-right:1px solid var(--line,#bbb)}
#template-studio .studio-ribbon button{min-height:34px;padding:5px 9px;font-size:13px}
#template-studio .studio-ribbon select{width:auto;max-width:160px;min-height:34px;padding:4px;font-size:13px}
#template-studio .studio-editor-hint{margin:0;padding:10px 20px;font-size:13px;color:#364034;max-width:none}
.studio-document-page{background:#fff;color:#202020;max-width:850px;margin:0 auto 32px;min-height:700px;padding:36px 40px;box-sizing:border-box;font:16px/1.65 Arial,sans-serif}
.studio-document-section{padding:14px 18px;margin:0;border-left:4px solid transparent;--tint:#eaf1e4;--marker:#597340;background:var(--tint)}
.studio-document-section[data-tint=blue]{--tint:#edf3fb;--marker:#37658e}.studio-document-section[data-tint=rose]{--tint:#faeeee;--marker:#9b5151}.studio-document-section[data-tint=gold]{--tint:#faf5e4;--marker:#8c711d}.studio-document-section[data-tint=violet]{--tint:#f3effa;--marker:#735395}.studio-document-section[data-tint=teal]{--tint:#eaf5f2;--marker:#357b6b}
.studio-document-section[data-selected=true]{border-left-color:var(--marker)}
#template-studio .studio-document-section h2{font:bold 18px/1.5 Arial,sans-serif;margin:0 0 8px;min-height:27px;color:#202020}
.studio-rich-body{min-height:70px;color:#202020;overflow-wrap:anywhere;outline:none}
#template-studio .studio-rich-body p{font:inherit;color:inherit;max-width:none;margin:0 0 8px}
.studio-rich-body ul,.studio-rich-body ol{padding-left:28px;margin:6px 0}
.studio-rich-body blockquote{margin:0 0 0 32px}
.studio-rich-body:focus-visible,.studio-document-section h2:focus-visible{outline:1px solid var(--marker)!important;outline-offset:4px!important}
@media(max-width:900px){#template-studio[data-mode=sections] .studio-layout{display:block}#template-studio[data-mode=sections] .studio-library{padding:10px 16px}#template-studio[data-mode=sections] .studio-library h2,#template-studio[data-mode=sections] .studio-library p{display:none}#template-studio[data-mode=sections] #st-templates{display:flex;overflow:auto;margin:8px 0}#st-templates button{min-width:140px}#template-studio[data-mode=sections] .studio-main{padding:16px}.studio-ribbon{position:static}.studio-document-page{padding:18px 12px}.studio-document-section{padding:12px}.studio-ribbon-group{border-right:0}.studio-top{position:static!important}}

/* Approved Templates library menu. */
#template-studio .studio-library-refined { display:flex;flex-direction:column;gap:12px;padding:24px 14px;background:var(--surface);min-width:0; }
#template-studio .studio-library-refined h2 { font:600 18px/1.3 var(--ui-font);margin:0; }
#template-studio .studio-library-refined>p { margin:0;font-size:11px;line-height:1.5;color:var(--ink-soft); }
#template-studio .studio-library-filters { display:grid;gap:6px; }
#template-studio .studio-library-filters label { font-size:10px;color:var(--ink-soft); }
#template-studio .studio-library-filters input,#template-studio .studio-library-filters select { width:100%;min-width:0;padding:9px 10px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink);font:12px var(--ui-font); }
#template-studio #st-new-template { padding:11px 12px;border:0;border-radius:5px;background:#3b5232;color:white;text-align:left;font:600 12px var(--ui-font); }
#template-studio #st-templates { display:grid;gap:8px; }
#template-studio #st-templates .studio-template-card { display:flex;flex-direction:column;gap:5px;width:100%;padding:12px 10px;text-align:left;border:1px solid transparent;border-radius:5px;background:var(--surface-soft);color:var(--ink);overflow-wrap:anywhere; }
#template-studio .studio-template-card strong { font:600 12px/1.4 var(--ui-font); }
#template-studio .studio-template-card span { font:10px/1.4 var(--ui-font);color:var(--ink-soft); }
#template-studio #st-templates .studio-template-card[aria-current=true] { background:var(--teal-wash);border-color:var(--focus); }
#template-studio #st-library-count { text-transform:uppercase;letter-spacing:.04em;font-size:10px; }
#template-studio #st-library-empty { font-size:12px; }
#template-studio .studio-library-refined .studio-footnote { margin-top:auto;padding-top:26px;font-size:11px;line-height:1.5; }
#template-studio .studio-library-refined .studio-footnote strong { display:block;font-size:12px;color:var(--ink);margin-bottom:6px; }
#st-create-dialog { width:min(460px,calc(100vw - 32px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:24px;background:var(--surface);color:var(--ink); }
#st-create-dialog::backdrop { background:#14201870; }
#st-create-form { display:grid;gap:12px; }
#st-create-form h2 { margin:0;font-size:22px; }
#st-create-form p { margin:0;font-size:12px;line-height:1.5; }
#st-create-form label { font-size:12px;font-weight:600; }
#st-create-form input,#st-create-form select { width:100%;min-width:0;box-sizing:border-box; }
#st-create-form .studio-actions { justify-content:flex-end;margin-top:10px; }
#template-studio .studio-library-refined :focus-visible,#st-create-dialog :focus-visible { outline:2px solid var(--focus);outline-offset:2px; }
@media(max-width:650px) { #template-studio .studio-layout { grid-template-columns:1fr; } #template-studio .studio-library-refined { max-height:none; } #template-studio #st-templates { grid-template-columns:repeat(2,minmax(0,1fr)); } #template-studio .studio-library-refined .studio-footnote { padding-top:8px; } }
#template-studio #st-name { background:var(--surface);border:1px solid var(--line-strong);border-radius:5px;padding:10px 12px; }

/* Independent section training and template selection. */
#template-studio[data-mode=examples] #st-manage-specialties{display:none}
#st-create-shared{max-width:640px;margin:20px 0}
#st-create-shared input{flex:1;min-width:120px}
#st-section-picker{width:min(720px,90vw);max-height:85vh;overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:24px}
#st-picker-list{display:grid;gap:8px;max-height:50vh;overflow:auto;margin:16px 0}
#st-picker-list label{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:4px}
#st-picker-list input{width:18px;min-height:18px;flex-shrink:0}
.studio-training-row small{display:block;color:var(--ink-soft);overflow-wrap:anywhere}
@media(max-width:700px){.studio-training-row{flex-wrap:wrap}.studio-training-row>div{flex-basis:100%}}
