/* Framed-sheet direction. The user's purple shell, gradient and strong row rules take precedence. */
:root{
 --shell:#2c103d;--surface:#fff;--surface-raised:#faf8fc;
 --ink:#292430;--secondary:#615767;--edge:#e4dee9;--gold:#f2d8a4;
 --sheet-radius:12px;--control-radius:6px;--workspace-gap:20px;
 --muted:var(--secondary);--line:var(--edge);
}
.workspace{padding:16px 20px 24px}
.topbar{padding:12px 20px;gap:12px;min-height:64px;background:var(--shell);border-bottom:0;box-shadow:none}
.brandmark{border:0;background:none;border-radius:0;width:32px;height:32px;color:var(--gold)}
.nav{padding:0 20px;min-height:48px;background:var(--shell)}
.nav .nav-tabs button{padding:12px 0 13px;min-height:48px}
.nav .nav-tabs button.active:after{height:2px}
.heading{padding:8px 0 20px;margin-bottom:0;border:0;border-radius:0;box-shadow:none;background:none;gap:20px}
.lesson-context{font-size:13px;font-weight:400;letter-spacing:0;margin-bottom:5px;text-transform:none;color:#ded0e6}
.heading .lesson-title h1{font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.4px}
.heading p{margin-top:8px;font-size:14px;gap:8px 14px}
.heading p span+span{padding-left:14px}
.workspace-jump{color:var(--gold);text-decoration:none;font-weight:600;white-space:nowrap}
.workspace-jump:hover{text-decoration:underline}
.heading .actions button{min-height:44px;border-radius:var(--control-radius);font-size:15px}
.heading .actions button.primary{background:none;border-color:var(--gold);color:var(--gold)}
.heading .actions button.primary:hover{background:#ffffff0d}
.paper,.editor{border:1px solid var(--edge);border-radius:var(--sheet-radius);background:var(--surface);box-shadow:none}
.setup-overview{padding:18px 20px;gap:20px}
.setup-metric dt,.section-label{color:var(--secondary);font-size:13px}
.setup-metric dd{font-size:20px;color:var(--ink)}
.setup-metric dd small{color:var(--secondary)}
.setup-metrics{gap:20px}
.session-route strong{font-size:20px}
.profile>summary .muted,.profile-source-review>summary span,.profile-provenance,#result-count,.quick-setup-footer{color:var(--secondary)}
.profile-source-review{background:var(--surface-raised);color:var(--secondary)}
.tools{background:var(--surface);scroll-margin-top:16px}
.tools:focus{outline:none}
.lesson-table{font-variant-numeric:tabular-nums}
.lesson-table thead{background:var(--surface);font-size:13px;letter-spacing:0;color:var(--secondary)}
.lesson-table thead th{font-weight:600;padding-top:12px;padding-bottom:12px}
.lesson-table .time,.lesson-table th:first-child,.lesson-table .ref{text-align:right}
.lesson-table .ref,.lesson-table .com,.lesson-table .parameterline{color:var(--secondary)}
.lesson-table td{padding-top:18px;padding-bottom:18px}
.lesson-table .lesson-title{color:var(--ink)}
.lesson-table .scenario{color:#37333c}
.lesson-table tr.selected .lesson-title{color:#fff}
.detail-switch button{color:var(--secondary);min-height:36px}
.detail-switch button[aria-pressed=true]{background:#ece8ef;color:var(--ink)}
.editor{display:flex;flex-direction:column;overflow:hidden}
.editor-head,.edit-nav,.editor-actions{flex-shrink:0}
.edit-body{overflow:auto;min-height:0;overscroll-behavior:contain}
.editor-head{padding:18px;background:var(--surface-raised)}
.editor .eyebrow{font-size:13px;letter-spacing:0;text-transform:none;color:var(--secondary)}
.edit-nav{padding:8px 12px;background:var(--surface);gap:4px}
.edit-nav button{min-height:40px;font-size:14px;color:var(--secondary);padding:8px}
.field>span{color:var(--secondary)}
button:disabled{opacity:1;color:#706778;background:#f2eff5;border-color:#ddd5e4;cursor:default}
button,.field input,.field textarea,.field select{border-radius:var(--control-radius)}
button:active:not(:disabled){filter:brightness(.94)}
.foot{background:none;border:0;border-radius:0;padding:16px 0 0;color:#ddcce8;line-height:1.5}
.foot a{color:var(--gold)}
@media(max-width:1150px){.setup-metrics{gap:16px;padding-top:14px}}
@media(max-width:850px){
 .workspace{padding:16px}.topbar{padding:12px 16px}.nav{padding:0 16px}
 .heading{flex-wrap:wrap;gap:14px}.heading .actions{margin-left:auto}
 .editor{border-radius:12px 12px 0 0;box-shadow:0 12px 40px #17082133}
}
@media(max-width:500px){
 .topbar{min-height:60px;gap:8px;flex-wrap:nowrap}.topbar .title strong{font-size:17px}
 .topbar .title p{display:none}.topbar .save{font-size:12px}.topbar .pdf-preview{font-size:13px;min-height:40px;padding:8px}
 .nav{min-height:46px}.nav .nav-tabs button{font-size:14px;min-height:46px;padding:12px 0}
 .workspace{padding:14px 12px}.heading{padding:2px 4px 18px;gap:12px}
 .heading .lesson-title h1{font-size:26px}.heading .lesson-context{font-size:13px}
 .heading p{font-size:13px;gap:6px 10px}.heading p span+span{padding-left:10px}
 .heading .actions{width:100%;gap:10px}.heading .actions button{font-size:14px;padding:9px;min-height:44px}
 .setup-overview{padding:16px;gap:12px}.session-route strong{font-size:20px}.setup-toggle{font-size:13px;min-height:44px}
 .setup-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;padding-top:12px}
 .setup-metric:first-child{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between}
 .setup-metric:first-child dt{margin:0}.setup-metric dt{font-size:13px;margin-bottom:4px}
 .profile>summary{font-size:17px}.profile>summary .muted{font-size:12px;max-width:145px}
 .lesson-table .time{text-align:left}.lesson-table .ref{text-align:left}
 .lesson-table td{padding:0}.lesson-table tbody tr{padding:18px 14px}
 .lesson-table td.mode{min-height:32px;display:flex;align-items:center;gap:6px;padding:6px}
 .lesson-table td.mode:before{margin-right:0}
 .editor-head h2{font-size:22px}.editor-head{padding:16px}.editor-head button{min-width:44px;min-height:44px}
 .edit-nav button{min-height:44px}
}
@media(max-width:500px){.foot{padding-inline:4px}}
.condition-group{border-bottom:1px solid var(--edge);padding:10px 0}
.condition-group>summary{min-height:44px;flex-wrap:wrap;color:var(--ink);font-size:16px}
.condition-summary{display:block;font-size:13px;font-weight:400;color:var(--secondary);margin-left:auto}
/* Five essential writing fields; specialist controls remain available on demand. */
.exercise-core .field{margin-bottom:18px}
.exercise-atc .field>span{color:#235d83}
.exercise-atc textarea{background:#f8fbff;border-color:#cbdceb}
.exercise-more{border-top:1px solid var(--edge);padding-top:8px;margin-top:6px}
.exercise-more>summary{min-height:48px;font-size:16px;color:var(--ink)}
.exercise-more h3{font-size:16px;margin:20px 0 12px;color:var(--ink)}
.more-details-intro{font-size:13px;line-height:1.5;color:var(--secondary);margin:4px 0 16px}

/* Deeper purple frame, with the existing white reading surfaces. */
:root{--shell:#1b0828;background:#14051e}
body{background:radial-gradient(ellipse at 100% 0%,#3b174b55,transparent 58%),linear-gradient(145deg,#240d32 0%,#16071f 60%,#100417 100%)} /* taste-skill-ignore: user-requested darker purple gradient background */
/* Match the active exercise to the deeper purple frame. */
.lesson-table tr.selected,.lesson-table tbody tr.selected:hover{background:#261035}
@media(max-width:500px){.lesson-table tr.selected td.mode{background:#3b204b}}
/* Continuity is automatic; authors enter only what changes. */
.guided-profile{padding:14px;margin:0 0 20px;border:1px solid #d8cce1;border-radius:8px;background:#faf8fc}
.continuity-summary{display:grid;gap:5px;padding-bottom:14px;border-bottom:1px solid var(--edge);margin-bottom:14px}
.continuity-summary>span{font-size:13px;color:var(--secondary)}
.continuity-summary strong{font-size:18px;color:var(--ink)}
.flow-modes,.suggestion-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}
.flow-modes button,.suggestion-chips button{font-size:14px;min-height:40px;padding:8px 10px;border:1px solid #cdbed7;background:#fff;color:#382049;border-radius:6px}
.flow-modes button[aria-pressed=true],.suggestion-chips button[aria-pressed=true]{background:#261035;color:#fff;border-color:#261035}
.flow-modes{flex-wrap:nowrap}.flow-modes button{flex:1}
.guided-profile .field{margin-bottom:10px}.guided-profile .grid2{gap:10px}
.guided-hint,.inherited-end{font-size:13px;line-height:1.5;color:var(--secondary);margin:8px 0 0}
.template-suggestions{margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--edge)}
.template-suggestions>span{font-size:13px;font-weight:700;color:var(--secondary)}
.template-suggestions summary{min-height:40px;font-size:14px}
.template-list{display:grid;gap:5px;max-height:240px;overflow:auto}
.template-list button{text-align:left;background:#faf8fc;color:var(--ink);border:1px solid var(--edge);padding:10px;font-size:14px}
.template-list small{display:block;margin-top:4px;color:var(--secondary)}
.field.needs-value>input,.field.needs-value>textarea,.field.needs-value>select{border:2px solid #9b6700;background:#fffbef}
.field-issue{color:#805100;font-size:13px;line-height:1.4;margin-top:5px}
.field-issue[hidden]{display:none}
.profile-required,.editor-profile-status{padding:12px 14px;background:#fff8e5;border:1px solid #ddbf73;border-radius:6px;color:#624300;font-size:14px;line-height:1.5;margin:12px 20px}
.profile-required{display:flex;align-items:center;justify-content:space-between;gap:12px}
.profile-required button{white-space:nowrap;min-height:40px;border:1px solid #b78b2a;color:#624300;background:white;padding:7px 12px}
.editor-profile-status{margin:0 0 16px}.editor-profile-status[hidden]{display:none}
.needs-badge{display:inline-block;font-size:12px;font-weight:600;line-height:1.4;background:#fff0c4;color:#654300;border:1px solid #e3c77e;border-radius:4px;padding:3px 6px;margin:5px 0 5px 8px;vertical-align:middle}
.enable-guidance{width:100%;margin-bottom:16px;padding:10px;border:1px solid #cdbed7;background:#f4eef8;color:#382049;border-radius:6px;min-height:44px}
/* Match controls to author intent: choose, switch, adjust, or write. */
.field select{min-height:44px;padding:9px 30px 9px 10px;width:100%;max-width:100%;text-overflow:ellipsis;background-color:#fff;border:1px solid #cdbed7;border-radius:6px;color:var(--ink);font:inherit}
.field .custom-value{margin-top:8px}
.range-row{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:12px;align-items:center}
.range-row input[type=number]{width:100%;font-variant-numeric:tabular-nums;text-align:right;min-height:44px;padding-inline:8px}
.field input[type=range]{width:100%;height:44px;min-width:0;margin:0;padding:0;border:0;background:transparent;box-shadow:none;accent-color:#4b2463;cursor:pointer;touch-action:pan-y}
.field input[type=range].unset{opacity:.45}
.range-caption{display:block;font-size:12px;line-height:1.4;color:var(--secondary);margin-top:4px}
.switch-field{display:flex;align-items:center;gap:12px;min-height:44px}
.field.switch-field input[role=switch]{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 42px;width:42px;height:26px;min-height:26px;padding:0;margin:0;border:1px solid #a795b2;border-radius:20px;background:#d9d2df;cursor:pointer;transition:background .12s}
.field.switch-field input[role=switch]:before{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:white;box-shadow:0 1px 2px #0002;transition:transform .12s}
.field.switch-field input[role=switch]:checked{background:#4b2463;border-color:#4b2463}
.field.switch-field input[role=switch]:checked:before{transform:translateX(16px)}
.field.switch-field>span{margin:0;font-size:15px}
.field input:focus-visible,.field select:focus-visible{outline:2px solid #845c9c;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.field.switch-field input[role=switch],.field.switch-field input[role=switch]:before{transition:none}}
/* One title chooser supplies repeatable source presets and custom titles. */
.title-picker{position:relative}
.title-input{display:flex;align-items:stretch;border:1px solid #cdbed7;border-radius:6px;background:#fff;min-width:0}
.title-input input{flex:1;min-width:0;border:0!important;background:transparent!important;margin:0}
.title-input>button{flex:0 0 44px;width:44px;min-height:44px;padding:0;border:0;border-left:1px solid #d8cce1;border-radius:0 6px 6px 0;background:#f7f3fa;color:#382049;font-size:22px}
.title-picker.needs-value .title-input{border:2px solid #9b6700;background:#fffbef}
.preset-options{position:absolute;top:72px;left:0;right:0;z-index:20;max-height:406px;overflow:auto;overscroll-behavior:contain;padding:5px;background:white;border:1px solid #b6a3c4;border-radius:6px;box-shadow:0 6px 18px #16071f24}
.preset-options[hidden]{display:none}
.preset-options>button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px;min-height:44px;text-align:left;background:white;color:#30243a;border:0;border-radius:4px;font-size:15px}
.preset-options>button:hover,.preset-options>button:focus-visible{background:#eee5f5;outline:2px solid #845c9c;outline-offset:-2px}
.preset-options small{flex-shrink:0;color:#6b5977;font-size:12px}
.preset-empty{font-size:14px;line-height:1.5;color:var(--secondary);padding:10px;margin:0}
.preset-context{display:block;font-size:13px;line-height:1.5;color:#57356c;margin-top:6px}
/* FCL codes are independent selections; composite exercises retain every item. */
.fcl-picker{margin:14px 0 20px;padding:12px;border:1px solid #d8cce1;border-radius:6px;background:#fcfbfd}
.fcl-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:15px}
.fcl-heading>span{font-size:12px;color:var(--secondary)}
.fcl-picker .field{margin:10px 0}.fcl-picker .field>span{font-size:13px}
.fcl-option{display:flex;align-items:flex-start;gap:8px;min-height:44px;padding:8px 0;border-bottom:1px solid #e8e1ed;cursor:pointer;color:var(--ink);font-size:13px;line-height:1.4}
.fcl-option input{flex-shrink:0;width:18px;height:18px;margin:1px 0 0;accent-color:#4b2463}
.fcl-code{flex:0 0 58px;font-weight:700;font-variant-numeric:tabular-nums}
.fcl-label{min-width:0}.fcl-label small{display:block;font-size:11px;color:var(--secondary);margin-top:3px}
.fcl-picker summary{font-size:13px;min-height:40px}
.fcl-review{background:#fff7df;border-left:3px solid #af7b0e;padding:8px 10px;margin:10px 0;font-size:13px;color:#654300;line-height:1.45}
.fcl-review p{margin:5px 0}
.fcl-options{max-height:270px;overflow:auto;overscroll-behavior:contain}
.fcl-options [hidden]{display:none}
.fcl-catalog input[type=search]{width:100%;min-height:44px;margin:4px 0 8px;font:inherit}
.fcl-catalog>a{font-size:13px}.fcl-empty{font-size:13px;color:var(--secondary)}
