.campaign-shell{padding-bottom:40px}.secondary{border:1px solid var(--border);background:var(--surface);min-height:46px;color:var(--text);border-radius:15px;padding:11px 15px;font-weight:800}.secondary.compact{border-radius:13px;min-height:40px;padding:8px 12px;font-size:12px}.campaign-actions{gap:10px;margin-top:20px;display:grid}.campaign-actions .primary{margin-top:0}.campaign-empty{text-align:left}.campaign-hero h1{max-width:12ch}.today-quest{border:1px solid color-mix(in srgb, var(--accent) 34%, var(--border));background:color-mix(in srgb, var(--accent) 7%, var(--surface));border-radius:20px;gap:16px;padding:18px;display:grid}.today-quest-head,.section-heading,.region-meta{justify-content:space-between;align-items:center;gap:16px;display:flex}.today-quest h2,.campaign-section h2{margin:0;font-size:23px}.today-quest>p{color:var(--muted);margin:0;line-height:1.55}.viz-badge{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border-radius:999px;flex:none;padding:6px 10px;font-size:12px;font-weight:800}.quest-sequence{gap:8px;display:grid}.quest-sequence article{background:var(--surface);border-radius:14px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;padding:11px 12px;display:grid}.quest-sequence article>span{background:color-mix(in srgb, var(--accent) 11%, var(--surface));width:34px;height:34px;color:var(--accent);border-radius:11px;place-items:center;font-size:12px;font-weight:900;display:grid}.quest-sequence article div{gap:3px;display:grid}.quest-sequence small{color:var(--muted)}.session-preview{border-top:1px solid var(--border);justify-content:space-between;gap:16px;padding-top:14px;display:flex}.session-preview span{color:var(--muted);font-size:12px}.session-preview strong{text-align:right;font-size:13px}.campaign-section{gap:16px;display:grid}.section-heading small{color:var(--muted)}.campaign-path{gap:0;display:grid;position:relative}.campaign-path:before{content:"";background:var(--border);width:2px;position:absolute;top:28px;bottom:28px;left:21px}.campaign-region{grid-template-columns:44px minmax(0,1fr);gap:13px;padding:9px 0;display:grid;position:relative}.region-marker{z-index:1;border:2px solid var(--border);background:var(--tg-theme-bg-color,#f7f8fa);width:44px;height:44px;color:var(--muted);border-radius:50%;place-items:center;font-size:12px;font-weight:900;display:grid}.region-body{border:1px solid var(--border);background:var(--surface);border-radius:17px;padding:15px 16px}.region-meta span{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.region-meta small{color:var(--muted)}.region-body h3{margin:8px 0 6px;font-size:17px}.region-body p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.skill-chips{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.skill-chips span{background:color-mix(in srgb, var(--muted) 8%, var(--surface));color:var(--muted);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:700}.campaign-region.complete .region-marker{border-color:color-mix(in srgb, #22c55e 60%, var(--border));background:color-mix(in srgb, #22c55e 14%, var(--surface));color:var(--success)}.campaign-region.active .region-marker{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.campaign-region.active .region-body{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface))}.campaign-region.upcoming .region-body{opacity:.76}@media (width<=420px){.today-quest-head,.section-heading,.session-preview{align-items:flex-start}.session-preview{gap:4px;display:grid}.session-preview strong{text-align:left}}:root{color:var(--tg-theme-text-color,#111827);background:var(--tg-theme-bg-color,#f7f8fa);--surface:var(--tg-theme-secondary-bg-color,#fff);--text:var(--tg-theme-text-color,#111827);--muted:var(--tg-theme-hint-color,#697386);--accent:var(--tg-theme-button-color,#2563eb);--accent-text:var(--tg-theme-button-text-color,#fff);--border:color-mix(in srgb, var(--muted) 24%, transparent);--danger:#b91c1c;--success:#147a43;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--tg-theme-bg-color,#f7f8fa);min-width:320px;min-height:100vh;color:var(--text);margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{width:min(100%,680px);min-height:var(--tg-viewport-stable-height,100vh);padding:max(16px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));flex-direction:column;gap:24px;margin:0 auto;display:flex}.centered{justify-content:center}header{justify-content:space-between;align-items:center;display:flex}.brand-row{align-items:center;gap:11px;display:flex}.brand-row strong,.brand-row span{display:block}.brand-row span,small,.technical{color:var(--muted);font-size:12px}.brand{background:var(--accent);width:58px;height:58px;color:var(--accent-text);border-radius:18px;place-items:center;font-size:28px;font-weight:800;display:grid}.brand.small{border-radius:13px;width:40px;height:40px;font-size:20px}.badge{background:color-mix(in srgb, #22c55e 14%, var(--surface));color:var(--success);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.hero{padding-top:clamp(28px,7vh,72px)}.hero.compact{padding-top:12px}.eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:800}h1{letter-spacing:-.055em;margin:0;font-size:clamp(34px,9vw,58px);line-height:.98}.hero>p:last-child,.step>p:last-child,.state-card>p{color:var(--muted);font-size:17px;line-height:1.55}.promise-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.promise-grid article,.state-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:18px}.promise-grid b{color:var(--accent);font-size:11px}.promise-grid h2{margin:18px 0 6px;font-size:16px}.promise-grid p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}aside{border-left:3px solid var(--accent);background:var(--surface);border-radius:0 16px 16px 0;gap:4px;padding:16px 18px;display:grid}aside span{color:var(--muted);font-size:13px}.primary{background:var(--accent);width:100%;min-height:56px;color:var(--accent-text);border:0;border-radius:18px;justify-content:space-between;align-items:center;margin-top:auto;padding:14px 18px;font-weight:800;display:flex}.primary:disabled{opacity:.48}.technical{text-align:center;overflow-wrap:anywhere;margin-top:-12px}.state-card code{background:color-mix(in srgb, var(--muted) 10%, transparent);overflow-wrap:anywhere;border-radius:12px;margin:16px 0;padding:12px;display:block}.state-icon{width:48px;height:48px;color:var(--danger);background:#fee2e2;border-radius:50%;place-items:center;margin-bottom:20px;font-weight:900;display:grid}.back{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);border-radius:14px}.progress{background:color-mix(in srgb, var(--muted) 14%, transparent);border-radius:999px;height:4px;margin-bottom:28px;overflow:hidden}.progress span{background:var(--accent);height:100%;transition:width .2s;display:block}.step-footer{gap:12px;margin-top:auto;display:grid}.band-grid{border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;display:grid}.band{border:1px solid var(--border);background:var(--surface);border-radius:16px;place-items:center;min-height:66px;display:grid}.band input,.goal-choice input{opacity:0;pointer-events:none;position:absolute}.band span{font-weight:800}.band.selected,.choice.selected,.goal-choice.selected{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.summary{background:var(--surface);border-radius:16px;justify-content:space-between;gap:16px;padding:16px 18px;display:flex}.summary span{color:var(--muted);font-size:13px}.choice-stack,.goal-grid{gap:10px;display:grid}.choice{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);text-align:left;border-radius:17px;justify-content:space-between;align-items:center;gap:16px;padding:17px 18px;display:flex}.choice span,.goal-choice span{gap:5px;display:grid}.choice small,.goal-choice small{line-height:1.4}.input-card{border:1px solid var(--border);background:var(--surface);border-radius:17px;gap:9px;padding:16px 18px;display:grid}.input-card>span{color:var(--muted);font-size:13px;font-weight:700}.text-input{border:1px solid var(--border);width:100%;min-width:0;color:var(--text);background:0 0;border-radius:13px;padding:12px}.goal-grid{border:0;margin:0;padding:0}.goal-choice{border:1px solid var(--border);background:var(--surface);border-radius:17px;padding:16px 18px;position:relative}.validation{border-radius:14px;padding:13px 15px;font-size:13px}.validation.good{color:var(--success);background:color-mix(in srgb, #22c55e 12%, var(--surface))}.validation.bad{color:var(--danger);background:color-mix(in srgb, #ef4444 12%, var(--surface))}.error-banner{background:color-mix(in srgb, #ef4444 10%, var(--surface));color:var(--danger);border:1px solid #ef444461;border-radius:15px;gap:5px;padding:15px 17px;display:grid}.error-banner span{font-size:13px;line-height:1.45}.review-list{border:1px solid var(--border);background:var(--surface);border-radius:18px;margin:0;display:grid;overflow:hidden}.review-list div{border-bottom:1px solid var(--border);justify-content:space-between;gap:18px;padding:15px 17px;display:flex}.review-list div:last-child{border-bottom:0}.review-list dt{color:var(--muted);font-size:13px}.review-list dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:700}.loading-state{text-align:center}.spinner{border:2px solid color-mix(in srgb, currentColor 35%, transparent);border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.spinner.large{width:42px;height:42px;color:var(--accent);border-width:4px;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}.metric-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metric-row>div{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:5px;padding:15px 17px;display:grid}.metric-row span{color:var(--muted);font-size:12px}.diagnostic-grid{gap:10px;display:grid}.diagnostic-card{border:1px solid var(--border);background:var(--surface);border-radius:17px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:13px;padding:15px 17px;display:grid}.skill-mark{background:color-mix(in srgb, var(--accent) 12%, var(--surface));width:42px;height:42px;color:var(--accent);border-radius:13px;place-items:center;font-weight:800;display:grid}.diagnostic-card span{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:800}.diagnostic-card h2{margin:4px 0 3px;font-size:16px;line-height:1.25}.diagnostic-card small{overflow-wrap:anywhere;display:block}.runner-head h1{font-size:clamp(30px,8vw,48px)}.task-instructions{color:var(--muted);margin:0;line-height:1.55}.transcript-panel,.prompt-card,.passage,.answer-field,.statement,.essay-field{border:1px solid var(--border);background:var(--surface);border-radius:17px}.transcript-panel{padding:15px 17px}.transcript-panel summary{cursor:pointer;font-weight:800}.technical-note{color:var(--muted);font-size:12px}.passage{white-space:pre-line;padding:18px;font-size:15px;line-height:1.65}.answer-stack,.statement-list{gap:11px;display:grid}.answer-field{gap:10px;padding:15px 17px;display:grid}.answer-field span,.essay-field>span{font-size:13px;font-weight:700}.answer-field input,.essay-field textarea{border:1px solid var(--border);width:100%;color:var(--text);background:0 0;border-radius:12px;padding:12px}.statement{margin:0;padding:16px}.statement legend{padding:0 4px;font-weight:700;line-height:1.45}.segmented{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px;display:grid}.segmented label{border:1px solid var(--border);text-align:center;border-radius:12px;place-items:center;min-height:44px;font-size:12px;font-weight:700;display:grid;position:relative}.segmented label.selected{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.segmented input{opacity:0;position:absolute}.prompt-card{padding:18px;line-height:1.6}.prompt-card ul{margin-bottom:0;padding-left:20px}.essay-field{gap:10px;padding:16px;display:grid}.essay-field textarea{resize:vertical;min-height:180px;line-height:1.55}.response-meter{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.profile-grid article{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:5px;padding:17px;display:grid}.profile-grid span{color:var(--muted);font-size:12px}.profile-grid strong{font-size:28px}.viz-callout{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border-radius:16px;padding:18px;line-height:1.5}@media (width<=560px){.promise-grid{grid-template-columns:1fr}.band-grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:clamp(34px,11vw,50px)}}@media (width<=380px){.shell{gap:20px;padding-left:14px;padding-right:14px}.metric-row,.profile-grid{grid-template-columns:1fr}.review-list div{gap:5px;display:grid}.review-list dd{text-align:left}.segmented{grid-template-columns:1fr}}.results-shell{padding-bottom:40px}.grading-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0;display:grid}.grading-progress span{background:color-mix(in srgb, #22c55e 12%, var(--surface));color:var(--success);border-radius:12px;padding:10px 12px;font-size:12px;font-weight:800}.grading-progress span.pending{background:color-mix(in srgb, var(--accent) 10%, var(--surface));color:var(--accent)}.result-section{border:1px solid var(--border);background:var(--surface);border-radius:18px;overflow:hidden}.result-section summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:17px 18px;list-style:none;display:flex}.result-section summary::-webkit-details-marker{display:none}.result-section summary span{font-weight:800}.result-section summary strong{color:var(--accent);font-size:13px}.result-section-body{border-top:1px solid var(--border);gap:16px;padding:0 18px 18px;display:grid}.answer-review{gap:10px;padding-top:16px;display:grid}.answer-result{border:1px solid var(--border);border-radius:15px;padding:15px}.answer-result.correct{border-color:color-mix(in srgb, #22c55e 45%, var(--border));background:color-mix(in srgb, #22c55e 8%, var(--surface))}.answer-result.incorrect{border-color:color-mix(in srgb, #ef4444 40%, var(--border));background:color-mix(in srgb, #ef4444 7%, var(--surface))}.answer-result-head{justify-content:space-between;gap:12px;display:flex}.answer-result.correct .answer-result-head strong{color:var(--success)}.answer-result.incorrect .answer-result-head strong{color:var(--danger)}.answer-result-head span{background:color-mix(in srgb, var(--muted) 12%, transparent);border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:grid}.answer-result>p{margin:12px 0;line-height:1.5}.answer-result dl{gap:8px;margin:0;display:grid}.answer-result dl div{border-top:1px solid var(--border);justify-content:space-between;gap:14px;padding-top:8px;display:flex}.answer-result dt{color:var(--muted);font-size:12px}.answer-result dd{text-align:right;margin:0;font-weight:700}.criteria-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.criteria-grid article{border:1px solid var(--border);border-radius:14px;gap:7px;padding:14px;display:grid}.criteria-grid span{color:var(--muted);font-size:12px;line-height:1.3}.criteria-grid strong{font-size:24px}.feedback-stack{gap:12px;display:grid}.feedback-card,.submitted-response,.pending-card,.limitation-card{background:color-mix(in srgb, var(--muted) 7%, var(--surface));border-radius:15px;padding:16px}.feedback-card h3,.submitted-response h3{margin:0 0 8px;font-size:14px}.feedback-card p,.submitted-response p,.limitation-card p{white-space:pre-wrap;margin:0;line-height:1.58}.feedback-card ul{margin:0;padding-left:20px;line-height:1.55}.feedback-card.priority{background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.submitted-response{gap:10px;margin-top:16px;display:grid}.submitted-response h3:not(:first-child){margin-top:8px}.limitation-card{background:color-mix(in srgb, #f59e0b 9%, var(--surface));border-left:3px solid #d97706}.limitation-card strong{color:#a15c05;margin-bottom:6px;display:block}.pending-card{color:var(--muted)}@media (width<=420px){.criteria-grid,.grading-progress{grid-template-columns:1fr}.answer-result dl div{gap:4px;display:grid}.answer-result dd{text-align:left}}
