:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253348;background:#f6f7f9;font-synthesis:none;font-weight:400;--primary:#5951df;--muted:#7b8798;--border:#e4e8ef;--navy:#17263a;--teal:#218778;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,summary,select{cursor:pointer}button{white-space:nowrap}button:disabled{cursor:not-allowed;opacity:.45}button,select,input,textarea,summary{outline-offset:4px}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid #8178ff}button svg,summary svg,.panel-heading svg,.search-box svg,.oracle-note svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip-link{position:fixed;top:-80px;left:16px;z-index:5;padding:12px;background:white;color:var(--primary)}.skip-link:focus{top:12px}.app-header{height:80px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 32px;gap:26px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:740;letter-spacing:-.75px;text-decoration:none;color:#263046}.brand-mark{display:flex;align-items:center;justify-content:center;width:37px;height:37px;background:var(--primary);border-radius:11px;color:white;font-size:27px;font-weight:600;letter-spacing:-3px;padding-right:4px;box-shadow:0 3px 8px #5951df21}.brand-mark span{font-size:30px;align-self:flex-end;margin-bottom:0}.brand-light{font-weight:430}.header-divider{height:24px;width:1px;background:var(--border)}.header-section{font-size:13px;font-weight:540;color:#708097}.header-end{margin-left:auto;display:flex;gap:22px;align-items:center}.engine-badge{font-size:12px;color:#5b697c;display:flex;align-items:center;gap:7px}.status-dot{width:6px;height:6px;background:#43998d;display:inline-block;border-radius:100%;box-shadow:0 0 0 3px #43998d0c}.local-badge{font-size:9px;letter-spacing:1px;border:1px solid #e3e7ed;border-radius:5px;padding:6px 8px;font-weight:650;color:#75849b}.app-shell{display:grid;grid-template-columns:251px minmax(0,1fr);min-height:calc(100vh - 80px)}.sidebar{display:flex;flex-direction:column;padding:30px 18px 0;background:#fcfcfd;border-right:1px solid var(--border);min-height:calc(100vh - 80px);position:relative}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding:0 10px;margin-bottom:22px}.sidebar-heading h2{font-size:14px;margin:0;font-weight:650}.count-badge{min-width:25px;text-align:center;background:#eceef5;border-radius:6px;font-size:10px;color:#788299;padding:4px 6px}.search-box{display:flex;align-items:center;gap:8px;background:white;border:1px solid var(--border);border-radius:7px;padding:10px;color:#99a2b0}.search-box svg{width:15px;height:15px}.search-box input{width:100%;border:0;background:none;font-size:11px;color:#35435a;padding:0;min-width:0}.search-box input::placeholder{color:#8b95a5}.filter-label{font-size:9px;letter-spacing:1.1px;color:#8490a2;font-weight:650;margin:24px 10px 9px}.sidebar select{font-size:11px;border:1px solid var(--border);background:#fff;color:#637188;border-radius:7px;padding:9px 11px;width:100%}.exercise-list{padding-top:22px;overflow:auto;max-height:62vh;min-height:180px}.exercise-group-label{margin:10px 10px 8px;font-size:9px;text-transform:uppercase;letter-spacing:1.15px;font-weight:650;color:#8b94a6}.exercise-item{width:100%;display:flex;gap:11px;align-items:center;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;padding:12px 10px;color:#607088;white-space:normal;margin-bottom:4px}.exercise-item:hover{background:#f2f3f8}.exercise-item.active{color:#5149d1;background:#eeedfb;border-color:#e2dff7}.exercise-item-number{width:25px;height:25px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid #e2e6ed;border-radius:7px;font-size:10px;font-weight:500;background:white}.exercise-item.active .exercise-item-number{background:#dedafc;color:#6656d9;border-color:#dedafc}.exercise-item-text{display:flex;flex-direction:column;gap:4px;min-width:0}.exercise-item-title{font-size:11px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.exercise-item-predicate{font-size:9px;color:#9099aa;font-family:var(--mono);overflow:hidden;text-overflow:ellipsis}.exercise-item.active .exercise-item-predicate{color:#938bc3}.exercise-item-arrow{margin-left:auto;color:#8b7de3}.sidebar-note{display:flex;gap:10px;margin:30px 10px 22px;padding-top:20px;border-top:1px solid var(--border)}.note-symbol{font-size:22px;color:#b4aecf}.sidebar-note strong{font-size:10px;font-weight:600;color:#69768b}.sidebar-note p{font-size:10px;line-height:1.8;color:#97a0ad;margin:5px 0}.sidebar-footer{border-top:1px solid var(--border);margin:auto -18px 0;padding:19px 22px;display:flex;align-items:center;gap:8px;font-size:9px;color:#8a96a5}.sidebar-message{font-size:12px;line-height:1.7;padding:0 10px;color:#8190a3}.main-content{padding:31px 36px 0;max-width:1700px;width:100%;margin:0 auto}.breadcrumbs{display:flex;gap:11px;font-size:10px;color:#99a2af;margin-bottom:29px}.breadcrumbs span:last-child{color:#738199}.eyebrow{font-size:9px;letter-spacing:1.65px;color:#938fae;font-weight:620;margin-bottom:8px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:18px}h1{margin:0;font-size:29px;line-height:1.3;font-weight:620;letter-spacing:-1px;color:#273247}.exercise-description{font-size:12px;line-height:1.8;color:#7d899b;margin:12px 0 27px;max-width:850px;white-space:pre-line}.button{border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:11px;font-weight:560;min-height:37px;padding:9px 13px;transition:background .15s,border .15s}.button.secondary{border:1px solid #dde2eb;color:#647187;background:#fff;box-shadow:0 1px 2px #26334c03}.button.secondary:hover{background:#f1f3fa}.button.secondary svg{width:15px;height:15px}.button.primary{border:1px solid var(--primary);color:white;background:var(--primary);box-shadow:0 3px 8px #584fc424}.button.primary:hover{background:#4d43cb}.button.primary svg{width:12px;height:12px;fill:currentColor;stroke-width:0}.button.text-button{border:0;background:none;color:#8a94a7;font-weight:450}.button.text-button:hover{color:#5c50d5;background:#f0eef9}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:23px;align-items:start}.editing-column,.feedback-column{min-width:0;display:flex;flex-direction:column;gap:20px}.editor-card{border-radius:11px;overflow:hidden;background:var(--navy);box-shadow:0 5px 18px #20283b0a}.editor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:#1c2b40;border-bottom:1px solid #ffffff09}.panel-heading{display:flex;align-items:center;gap:9px}.panel-heading h2,.history-heading h2{font-size:12px;font-weight:560;margin:0}.editor-toolbar .panel-heading{color:#d3ddeb}.code-icon{color:#8798ae;font-family:var(--mono);font-size:12px;font-weight:bold}.draft-status{font-size:9px;color:#8095ae}.file-tab{padding:13px 20px;border-bottom:1px solid #ffffff08;display:flex;align-items:center;gap:7px;color:#9db0c9;font-family:var(--mono);font-size:10px}.file-dot{height:6px;width:6px;background:#9082ea;border-radius:2px}.language-tag{margin-left:auto;font-family:inherit;font-size:8px;letter-spacing:1px;color:#647b96}.predicate-signature{padding:24px 23px 11px 58px;font-family:var(--mono);font-size:12px;color:#ada8f5;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.code-area{position:relative;display:flex;min-height:229px;max-height:600px}.line-numbers{flex-shrink:0;color:#516780;text-align:right;user-select:none;width:47px;padding:0 12px 0 0;margin:0;line-height:23px;font-size:12px;font-family:var(--mono);overflow:hidden;max-height:350px}.code-area textarea{tab-size:2;resize:vertical;min-height:229px;height:280px;max-height:570px;width:calc(100% - 47px);background:transparent;color:#e4edf7;font-size:12px;line-height:23px;font-family:var(--mono);padding:0 18px 0 11px;border:0;white-space:pre;overflow:auto;caret-color:#c1bafa}.code-area textarea:focus-visible{outline:none;box-shadow:inset 2px 0 #9b8eed77}.code-area textarea::placeholder{color:#637a95}.closing-brace{padding:0 23px 20px 58px;font-family:var(--mono);font-size:12px;color:#ada8f5}.editor-status{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#6e829d;padding:11px 20px;border-top:1px solid #ffffff08;background:#162337}.small-divider{margin:0 9px;color:#415770}.editor-actions{padding:17px 19px;background:white;border:1px solid var(--border);border-top:0;border-radius:0 0 11px 11px;display:flex;justify-content:space-between;gap:6px;align-items:center}.live-label{display:flex;gap:8px;align-items:center;font-size:10px;color:#798699;cursor:pointer;position:relative;white-space:nowrap}.live-label input{position:absolute;opacity:0;width:28px;height:18px;left:0;margin:0;cursor:pointer}.switch{width:27px;height:16px;border-radius:12px;background:#d7dce5;transition:background .15s;position:relative;pointer-events:none}.switch:before{content:"";position:absolute;top:3px;left:3px;width:10px;height:10px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}.live-label input:checked+.switch{background:var(--teal)}.live-label input:checked+.switch:before{transform:translateX(11px)}.live-label input:focus-visible+.switch{outline:2px solid #8178ff;outline-offset:4px}.editor-action-end{display:flex;align-items:center;gap:6px}.keyboard-hint{color:#c2bef5;background:#ffffff13;font-size:9px;letter-spacing:2px;padding:3px 4px;border-radius:3px;margin-left:3px}.environment-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.environment-card summary{display:flex;justify-content:space-between;align-items:center;list-style:none;padding:18px 20px;gap:12px}.environment-card summary::-webkit-details-marker{display:none}.environment-card .panel-heading{font-size:12px;font-weight:550;color:#53627b}.environment-card .panel-heading svg{width:16px;height:16px;color:#8895a8}.summary-meta{display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:.8px;color:#97a1ae}.chevron{font-size:18px;line-height:10px;transition:transform .2s}.environment-card:not([open]) .chevron{transform:rotate(-90deg)}.environment-description{font-size:10px;color:#929aaa;line-height:1.8;padding:0 20px 14px}.environment-tabs{display:flex;padding:0 20px;border-bottom:1px solid #edf0f5;gap:18px}.environment-tab{background:none;border:0;border-bottom:2px solid transparent;color:#909bad;padding:8px 0;font-size:10px}.environment-tab.active{color:#7569d7;border-bottom-color:#8d7bea}.environment-code{font-family:var(--mono);font-size:10px;line-height:1.8;color:#677993;background:#fbfcfe;margin:0;padding:18px 20px;max-height:270px;overflow:auto;tab-size:2;min-height:115px;white-space:pre}.source-info{font-size:9px;color:#a3abba;overflow-wrap:anywhere;border-top:1px solid #eff1f6;padding:11px 20px;background:#fff;line-height:1.6}.feedback-card{background:#fff;border:1px solid var(--border);border-radius:11px;overflow:hidden;box-shadow:0 3px 8px #24334902}.light-panel-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #edf0f5;gap:10px}.light-panel-toolbar .panel-heading{color:#4e5d73}.light-panel-toolbar svg{color:#8f83d7;width:17px;height:17px}.feedback-state{font-size:9px;border-radius:4px;background:#f3f4f8;color:#8c98ab;padding:4px 6px;white-space:nowrap}.feedback-state[data-state=ok]{color:#218575;background:#eaf6f2}.feedback-state[data-state=invalid],.feedback-state[data-state=error],.feedback-state[data-state=timeout]{color:#a76a35;background:#fff3e7}.feedback-state[data-state=pending]{color:#7b6cc5;background:#f3f0fc}.feedback-empty{text-align:center;padding:36px 26px 39px;color:#8390a4}.empty-illustration{margin:0 auto 21px;display:flex;align-items:center;justify-content:center;gap:12px;font-family:var(--mono);font-size:47px;color:#d6d1eb;height:65px}.empty-orbit{font-family:inherit;font-size:26px;border:1px solid #e5e1f4;border-radius:50%;width:47px;height:47px;display:flex;align-items:center;justify-content:center;background:#f8f6ff;color:#a89dcc}.feedback-empty h3{font-size:12px;color:#75829a;font-weight:550;margin:0 0 10px}.feedback-empty p{font-size:11px;line-height:1.9;max-width:260px;margin:0 auto}.oracle-note{border-top:1px solid #eff1f6;padding:14px 20px;display:flex;align-items:flex-start;gap:9px;background:#fdfdff;font-size:9px;color:#929cac;line-height:1.75}.oracle-note svg{width:12px;height:12px;color:#a1a9bb;margin-top:2px}.distance-result{padding:22px 22px 19px}.distance-caption{font-size:10px;color:#7d889d;display:flex;align-items:center;justify-content:space-between;gap:10px}.distance-caption .match-badge{color:#258576;background:#eff8f5;border-radius:4px;font-size:9px;padding:4px 6px}.distance-value-row{display:flex;align-items:baseline;gap:9px;margin:7px 0 9px}.distance-value{font-size:54px;line-height:1.2;letter-spacing:-3px;color:#354664;font-weight:510}.distance-value.zero{color:#248773}.distance-unit{font-size:11px;color:#96a0b0}.distance-description{font-size:10px;line-height:1.75;color:#8994a6;margin:0}.component-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:21px}.component{border:1px solid #e8ebf2;border-radius:7px;background:#fbfcfe;padding:11px 8px;text-align:center}.component-value{font-size:18px;color:#586c88;font-weight:540;display:block;line-height:1.3}.component-name{font-size:8px;color:#969faf;display:block;margin-top:5px}.operations-section{border-top:1px solid #edf0f5;padding:18px 22px}.section-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px;font-size:10px;font-weight:560;color:#63738c}.section-count{font-size:9px;font-weight:400;color:#a0aaba}.operation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;max-height:320px;overflow:auto}.operation-item{display:flex;align-items:flex-start;gap:9px;padding:10px;background:#fafbfd;border:1px solid #edf0f5;border-radius:6px}.operation-icon{display:flex;align-items:center;justify-content:center;width:21px;height:21px;flex-shrink:0;border-radius:5px;background:#eeecfb;color:#8377c8;font-family:var(--mono);font-size:14px}.operation-item[data-kind=delete] .operation-icon{background:#fcefed;color:#d9968c}.operation-item[data-kind=insert] .operation-icon{background:#e8f5ef;color:#75a693}.operation-detail{min-width:0;flex:1}.operation-title{font-size:10px;color:#66758b;font-weight:550;line-height:1.5;overflow-wrap:anywhere}.operation-path{font-family:var(--mono);font-size:8px;color:#9aa5b6;line-height:1.8;margin-top:3px;overflow-wrap:anywhere}.operation-cost{font-size:9px;color:#9ba4b4;white-space:nowrap;padding-top:3px}.no-operations{font-size:10px;color:#529286;line-height:1.8;margin:0}.trace-note{font-size:9px;color:#9da6b5;line-height:1.7;margin:12px 0 0}.canonical-details{border-top:1px solid #edf0f5}.canonical-details summary{padding:16px 22px;font-size:10px;color:#7c88a0;list-style:none;display:flex;justify-content:space-between;gap:8px}.canonical-details summary::-webkit-details-marker{display:none}.canonical-details pre{padding:14px 18px;background:#f7f8fc;border-radius:6px;max-height:230px;overflow:auto;font-size:10px;font-family:var(--mono);line-height:1.8;color:#6f7f96;margin:0 18px 18px;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-problem{padding:25px 22px;min-height:185px}.feedback-problem h3{font-size:13px;color:#a7784a;font-weight:570;margin:0 0 12px}.feedback-problem p,.diagnostic{font-size:11px;line-height:1.8;color:#8894a7;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostic{background:#fffaf4;padding:10px;border:1px solid #f6e8d6;border-radius:6px;margin:10px 0}.diagnostic-location{font-size:9px;display:block;color:#b29475;margin-bottom:4px}.pending-message{padding:33px 22px;min-height:185px;display:flex;align-items:center;justify-content:center;gap:10px;color:#9288b4;font-size:11px}.spinner{height:15px;width:15px;border:2px solid #ded9ef;border-top-color:#9485d3;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.history-card{padding:18px 20px;border:1px solid var(--border);border-radius:10px;background:#fff}.history-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px}.history-heading h2{font-size:11px;color:#65748b}.history-heading>span{font-size:9px;color:#9fa9b8}.history-empty{font-size:10px;color:#a0aaba;line-height:1.8;margin:0}.history-chart{display:flex;align-items:flex-end;gap:7px;height:57px;border-bottom:1px solid #edeef6;margin-bottom:11px;padding:0 2px}.history-bar{flex:1;background:#ddd9f7;border-radius:3px 3px 0 0;min-height:4px;position:relative;max-width:37px;transition:height .2s}.history-bar:last-child{background:#8c80d9}.history-bar[data-zero=true]{background:#6dae9e;height:4px!important}.history-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px;color:#a0aabb}.history-summary strong{font-weight:550;color:#9385c8}.method-note{display:flex;gap:10px;padding:0 3px;color:#a0a9b8}.method-symbol{flex-shrink:0;font-size:9px;border:1px solid #c6ccda;border-radius:50%;width:13px;height:13px;display:flex;align-items:center;justify-content:center;margin-top:2px}.method-note p{font-size:9px;line-height:1.85;margin:0}.workspace-footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:20px;margin-top:32px;padding:18px 0;font-size:9px;color:#a3acb9}.workspace-footer span:last-child{color:#a0a8b6}.startup-error{background:#fff4ed;border:1px solid #f3dccd;color:#a16c45;font-size:12px;line-height:1.8;padding:14px 18px;border-radius:8px;margin-bottom:20px}.startup-error button{margin-left:10px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#28374d;color:#eef2f8;font-size:12px;border-radius:8px;box-shadow:0 5px 30px #0002;z-index:10}.toast[hidden],[hidden]{display:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#bcc4d455;border-radius:4px}::-webkit-scrollbar-track{background:transparent}@media(min-width:1600px){.main-content{padding:38px 48px 0}.workspace-grid{gap:30px}.code-area textarea{height:330px}.exercise-description{font-size:13px}}@media(max-width:1200px){.app-shell{grid-template-columns:220px minmax(0,1fr)}.main-content{padding:27px 25px 0}.workspace-grid{gap:17px;grid-template-columns:minmax(0,1.15fr) minmax(290px,1fr)}.sidebar{padding-left:14px;padding-right:14px}.sidebar-footer{margin-left:-14px;margin-right:-14px}.editor-actions{padding:15px 13px}.keyboard-hint{display:none}.editor-toolbar,.light-panel-toolbar{padding:17px 16px}.live-label{font-size:9px;gap:6px}.button{font-size:10px;padding:8px 10px}.editor-action-end{gap:2px}.header-end{gap:14px}}@media(max-width:980px){.workspace-grid{grid-template-columns:minmax(0,1fr)}.feedback-column{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);align-items:start}.feedback-card{grid-row:span 2}.method-note{grid-column:2}.main-content{padding:25px 25px 0}.title-row{align-items:flex-start}h1{font-size:25px}.code-area textarea{height:240px}.header-section{display:none}.local-badge{display:none}.app-header{padding:0 24px}.sidebar{min-height:calc(100vh - 80px)}.exercise-list{max-height:75vh}}@media(max-width:730px){.app-header{height:67px;padding:0 18px;gap:14px}.brand{font-size:18px}.brand-mark{width:32px;height:32px;font-size:24px}.header-divider{display:none}.engine-badge{font-size:10px;gap:5px}.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{padding:20px 18px 16px;min-height:0;border-right:0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.6fr);gap:12px}.sidebar-heading{grid-column:1/-1;padding:0;margin:0 0 4px}.sidebar-heading h2{font-size:12px}.search-box{padding:10px}.filter-label{display:none}.sidebar select{height:36px}.exercise-list{padding:0;display:flex;gap:7px;grid-column:1/-1;min-height:0;max-height:130px;overflow:auto;align-items:stretch;padding-bottom:2px}.exercise-group-label{display:none}.exercise-item{min-width:155px;width:155px;margin:0;padding:8px;gap:7px;align-items:flex-start}.exercise-item-arrow{display:none}.exercise-item-title{font-size:10px;line-height:1.4}.exercise-item-predicate{max-width:102px}.exercise-item-number{width:22px;height:22px;font-size:8px}.sidebar-note,.sidebar-footer{display:none}.main-content{padding:22px 18px 0}.breadcrumbs{margin-bottom:23px;font-size:9px}.title-row{gap:12px}h1{font-size:24px}.eyebrow{font-size:8px}.title-row .button{font-size:9px;padding:8px;min-height:32px;margin-top:14px}.title-row .button svg{width:13px;height:13px}.exercise-description{font-size:11px;margin-bottom:22px}.feedback-column{display:flex}.workspace-grid{gap:20px}.feedback-card,.history-card{width:100%}.feedback-empty{padding:30px 20px}.editor-actions{padding:14px 15px}.live-label{font-size:10px}.button{font-size:10px}.distance-result{padding-top:20px}.distance-value{font-size:46px}.workspace-footer{margin-top:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.explanation-section{padding:18px 22px;border-top:1px solid #edf0f5;background:#fcfbff}.explanation-section .section-label{margin-bottom:7px;color:#7666ab}.ai-badge{font-size:8px;border:1px solid #e7e0f5;padding:3px 5px;border-radius:4px;color:#a194bc}.explanation-caption{font-size:9px;color:#aaa1ba;margin:0 0 13px}.explanation-text,.explanation-unavailable,.explanation-pending{font-size:10px;line-height:1.9;color:#828198;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.explanation-pending{color:#a49bb6}.explanation-unavailable{color:#9a8992}.explanation-retry{padding:7px 0;min-height:0;margin-top:7px;font-size:9px!important;color:#9785b8!important}

.behavior-card{margin-top:24px;border:1px solid var(--border);border-radius:11px;background:#fff;overflow:hidden;min-width:0}
.education-slot{border:1px solid #e7e0f3;border-left:3px solid #baaad9;border-radius:5px;background:#faf8ff;padding:10px 12px;min-width:0}.operation-explanation{margin-top:12px}.instance-explanation{margin-bottom:17px}.education-label{display:block;font-size:10px;font-weight:550;color:#86739f;margin-bottom:5px}.education-description,.education-pending,.education-unavailable{font-size:11px;line-height:1.85;color:#6f6b86;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.instance-explanation .education-description{font-size:12px}.education-pending,.education-unavailable{font-size:10px;color:#9991a9}
.behavior-message{margin:0;padding:25px 22px;font-size:12px;line-height:1.8;color:#7e899e}.behavior-message .spinner{display:inline-block;vertical-align:middle;margin-right:10px}
.behavior-summary{display:flex;align-items:center;gap:28px;padding:24px 24px 15px}.behavior-score-block{display:flex;align-items:baseline;gap:10px;flex-shrink:0}.behavior-score{font-size:46px;line-height:1.2;color:#346f75;font-weight:560;letter-spacing:-1.5px;font-variant-numeric:tabular-nums}.behavior-score.unavailable{font-size:22px;letter-spacing:-.3px;color:#98703c}.behavior-score-range{font-size:11px;color:#929dad}.behavior-score-description{max-width:650px;font-size:11px;line-height:1.8;color:#7f8b9e}.behavior-score-description p{margin:0 0 7px}.behavior-facts{display:inline-block;font-size:10px;background:#edf7f2;color:#438b79;padding:3px 7px;border-radius:4px}.behavior-score-description .behavior-score-reason{color:#98784d;margin:7px 0 0}
.behavior-scope,.behavior-sampling,.behavior-bound-note{margin:0 24px 8px;font-size:11px;color:#8a94a7;line-height:1.8}.behavior-bound-note{color:#7a7f94;margin-bottom:21px}.behavior-category-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 24px 20px}.behavior-category-choice{text-align:left;border:1px solid #e2e7ed;border-radius:7px;background:#fbfcfe;padding:13px 12px;white-space:normal;min-width:0;color:#6a7890}.behavior-category-choice strong{display:block;font-size:12px;font-weight:570;line-height:1.6}.behavior-category-choice span{display:block;font-size:10px;line-height:1.8}.behavior-category-choice .behavior-truth{margin-top:5px;color:#7e899b}.behavior-category-count{color:#97a0ad;margin-top:4px}.behavior-category-choice[aria-pressed=true]{border-color:#70a99d;background:#eef8f4;box-shadow:inset 0 2px #70a99d}.behavior-category-choice:hover{border-color:#8ca99f}
.behavior-category-content{border-top:1px solid #e8ecef;background:#fcfdfd;padding:20px 24px 24px;min-width:0}.behavior-category-content h3{font-size:14px;color:#586c79;margin:0 0 7px}.behavior-category-description,.behavior-enumeration,.behavior-empty,.behavior-truncated,.behavior-string-note{font-size:11px;line-height:1.8;color:#82919e;margin:0 0 13px}.behavior-category-description{color:#6c7b8d}.behavior-truncated{color:#98733e;background:#fff8e9;padding:9px 12px;border:1px solid #f0dfbd;border-radius:5px}.behavior-string-note{color:#788596}.behavior-empty{padding:10px 0}.behavior-example-choices{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.behavior-example-choice{border:1px solid #dce6e2;background:#fff;color:#719187}.behavior-example-choice[aria-pressed=true]{background:#e5f2ec;border-color:#9ab8ac;color:#467e6c}.behavior-instance,.behavior-state-content,.behavior-relations,.behavior-signatures{min-width:0}.behavior-state-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;font-size:11px;color:#7c8c9b}.behavior-state-controls label{font-weight:550;color:#607589}.behavior-state-select{padding:7px 11px;border:1px solid #dae1e7;border-radius:5px;background:white;color:#607588;font-size:11px}.behavior-relations h4{font-size:12px;margin:20px 0 10px;color:#657b8a;font-weight:550}
.behavior-table-scroll{overflow:auto;max-width:100%;border:1px solid #e3e8ed;border-radius:6px;background:white}.behavior-table{border-collapse:collapse;width:100%;text-align:left;font-size:11px;color:#657786}.behavior-table caption{padding:10px 13px;text-align:left;font-size:11px;font-weight:550;color:#738697;background:#f7fafb}.behavior-table th{padding:9px 13px;font-weight:550;background:#fbfcfd;color:#7d8b9a;white-space:nowrap}.behavior-table td{padding:9px 13px;border-top:1px solid #edf0f2;font-family:var(--mono);line-height:1.7;overflow-wrap:anywhere;max-width:500px}.behavior-relation{margin-bottom:10px;background:#fff;border:1px solid #e4e9ed;border-radius:6px;overflow:hidden}.behavior-relation summary{font-size:11px;line-height:1.8;padding:10px 12px;color:#718491;overflow-wrap:anywhere}.behavior-relation .behavior-table-scroll{border-width:1px 0 0;border-radius:0}.behavior-relation .behavior-empty{padding:0 12px 10px;margin:0}
@media(max-width:730px){.behavior-summary{align-items:flex-start;flex-direction:column;gap:12px;padding:20px 17px 13px}.behavior-score{font-size:39px}.behavior-scope,.behavior-sampling,.behavior-bound-note{margin-left:17px;margin-right:17px}.behavior-category-choices{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:17px;margin-right:17px;gap:8px}.behavior-category-choice{padding:10px}.behavior-category-choice strong{font-size:11px}.behavior-category-choice .behavior-truth{font-size:9px}.behavior-category-content{padding:18px 17px}.behavior-table td,.behavior-table th{padding:8px 10px}}

.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.canonical-editor{background:white;border:1px solid var(--border);border-radius:10px;overflow:hidden}.canonical-caption,.canonical-empty,.canonical-location-status{margin:0 20px 14px;font-size:10px;line-height:1.8;color:#8a91a5;overflow-wrap:anywhere}.canonical-location-status{color:#8a642f;background:#fff8e9;border:1px solid #eddbb9;border-radius:5px;padding:8px 10px}.canonical-editor .canonical-form{margin:0 18px 12px;font-size:12px;line-height:1.8}.canonical-range{color:inherit;background:#eaba5738;box-shadow:inset 0 -2px #f4c56d;border-radius:2px}.operation-select{border:0;background:transparent;min-height:32px;padding:0;text-align:left;white-space:normal;text-decoration:underline;text-decoration-color:#b6adce;text-underline-offset:3px}.operation-select:hover{color:#6a559b!important}.operation-item.active-operation{border-color:#d3ab60;background:#fffbf0;box-shadow:inset 3px 0 #f4c56d}.operation-item.active-operation .operation-icon{background:#f6e6c5;color:#997136}
.editor-input{position:relative;flex:1;min-width:0}.code-area .editor-input textarea{position:relative;z-index:1;display:block;width:100%;font-variant-ligatures:none;letter-spacing:normal}.code-area .line-numbers{max-height:none}.source-highlight{position:absolute;top:0;left:0;margin:0;padding:0 18px 0 11px;border:0;overflow:hidden;white-space:pre;font-family:var(--mono);font-size:12px;line-height:23px;font-weight:400;font-variant-ligatures:none;letter-spacing:normal;tab-size:2;color:transparent;pointer-events:none;user-select:none}.source-range{color:transparent;background:#eaba5738;box-shadow:inset 0 -2px #f4c56d;border-radius:2px}.code-area textarea::selection{background:#8f88e74d}.code-area textarea.has-source-highlight::selection{background:#eaba5740}.source-location-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;color:#edcc8f;background:#273346;font-size:10px;line-height:1.7}.source-location-bar>span{min-width:0;overflow-wrap:anywhere}.source-location-bar button{flex-shrink:0;min-height:32px;padding:5px 9px;border:1px solid #7e735f;border-radius:5px;background:transparent;color:#edcc8f;font-size:10px}.operation-source-location{margin-top:11px;border-top:1px solid #ebe9f1;padding-top:9px}.operation-location-note,.source-location-unavailable{margin:0;font-size:10px;line-height:1.75;color:#82718f;overflow-wrap:anywhere}.source-location-unavailable{color:#929bad}.source-location-choices{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.button.operation-locate{border:1px solid #d7d1eb;background:#f5f2ff;color:#69559b;font-size:10px;min-height:34px;padding:7px 10px;white-space:normal;text-align:left}.button.operation-locate:hover,.button.operation-locate[aria-pressed=true]{border-color:#ab9bcf;background:#eae3fc;color:#54427b}
.operations-intro{font-size:10px;color:#929cad;line-height:1.8;margin:-3px 0 14px}.operation-list{max-height:660px;gap:12px}.operation-item{padding:13px 11px;gap:9px;background:#fcfcff}.operation-item .operation-icon{margin-top:1px}.operation-heading{display:flex;align-items:flex-start;gap:7px}.operation-heading .operation-title{flex:1;font-size:11px;color:#566781;line-height:1.7}.operation-step{font-size:8px;color:#b0a8c4;padding-top:4px;display:none}.operation-heading .operation-cost{padding-top:4px;font-size:8px}.operation-fragment{margin-top:11px;border-radius:5px;border:1px solid #e8e8f1;background:#f4f5fa;overflow:hidden}.operation-fragment-label{display:block;font-size:8px;color:#9a9db0;text-transform:uppercase;letter-spacing:.6px;padding:8px 9px 0}.operation-fragment code{font-family:var(--mono);font-size:11px;line-height:1.8;color:#65738b;display:block;padding:7px 9px 9px;white-space:pre-wrap;overflow-wrap:anywhere}.operation-operators{display:flex;align-items:center;gap:7px;margin-top:10px;flex-wrap:wrap}.operator-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid #e9e7ef;border-radius:5px;background:#fff;max-width:100%;flex-wrap:wrap}.operator-chip>span{font-size:8px;color:#a0a3b4}.operator-chip code{font-family:var(--mono);font-size:10px;color:#817295;overflow-wrap:anywhere}.replacement-operator{background:#f1f8f6;border-color:#e1efea}.replacement-operator code{color:#4b9584}.replacement-operator>span{color:#92afa5}.operator-arrow{font-size:12px;color:#b6aec8}.operation-reason,.operation-next-step{font-size:10px;line-height:1.85;color:#8e98aa;margin:10px 0 0}.operation-next-step{color:#7a879f}.operation-next-step strong{font-weight:550;color:#8a7fba}.operation-aggregate{font-size:9px;line-height:1.75;color:#a29174;background:#fcf7ee;border:1px solid #f3eadb;border-radius:4px;padding:7px 8px;margin:10px 0 0}.operation-structure{margin-top:10px}.operation-structure summary{display:flex;align-items:center;gap:6px;width:max-content;font-size:8px;color:#a6a6ba;list-style:none;padding:3px 0}.operation-structure summary::-webkit-details-marker{display:none}.operation-structure summary .chevron{font-size:13px;margin-top:-3px}.operation-structure:not([open]) .chevron{transform:rotate(-90deg)}.operation-structure .operation-path{padding-top:4px;font-size:8px;line-height:1.8}.operation-highlight{margin-top:7px;font-size:9px!important;min-height:24px;padding:5px 0;color:#8b7eb6!important}@media(max-width:730px){.operation-heading .operation-title{font-size:11px}.operation-list{max-height:none}.operation-fragment code{font-size:11px}.operation-reason,.operation-next-step{font-size:10px}}
.metric-control{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px 12px;align-items:center;padding:15px 20px;border-bottom:1px solid var(--border);background:#fafaff}.metric-control label{font-size:11px;color:#607088;font-weight:550}.metric-control select{width:100%;min-width:0;min-height:37px;padding:8px 10px;border:1px solid #d9dce9;border-radius:6px;background:#fff;color:#4d5279;font-size:12px}.metric-control p{grid-column:1/-1;margin:0;color:#7b8798;font-size:11px;line-height:1.65}.component-grid.ast-components{grid-template-columns:minmax(0,1fr)}@media(max-width:730px){.metric-control{padding:13px 17px;grid-template-columns:minmax(0,1fr);gap:7px}.metric-control select{font-size:12px}}
.dashboard-link{font-size:12px;font-weight:550;color:#635bb7;text-underline-offset:3px;white-space:nowrap}@media(max-width:730px){.app-header .engine-badge{display:none}.dashboard-link{font-size:11px}}
.exercise-pagination{display:flex;align-items:center;gap:14px;margin:0 0 24px}.exercise-pagination .button{min-height:40px;gap:8px}.exercise-position{font-size:11px;color:#718098;line-height:1.5;text-align:center;min-width:0}.exercise-pagination .button:disabled{opacity:.55}@media(max-width:730px){.exercise-pagination{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;margin-bottom:20px}.exercise-pagination .button{min-height:44px;padding:9px 11px}.exercise-position{font-size:10px;overflow-wrap:anywhere}}
.exercise-item-solved{margin-left:auto;color:#218778;background:#e9f6ef;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:14px;font-weight:750}.exercise-item[data-solved=true] .exercise-item-arrow{margin-left:0}
.candidate-retention-note{margin:0;padding:13px 22px;border-top:1px solid #edf0f5;color:#75899a;font-size:11px;line-height:1.7}
.behavior-exact-data{margin-top:16px;border:1px solid #dfe7ed;border-radius:9px;background:#fff;overflow:hidden}
.behavior-exact-data>summary{padding:14px 16px;font-size:12px;font-weight:600;color:#506a7c;line-height:1.7}
.behavior-exact-data[open]>summary{border-bottom:1px solid #e7edf1}
.behavior-exact-data>.behavior-data-intro{margin:14px 16px;font-size:12px;line-height:1.75;color:#65798b}
.behavior-exact-data>.behavior-signatures,.behavior-exact-data>.behavior-relations{margin:14px 16px}
.instance-graph{border:1px solid #dce6ec;border-radius:10px;background:#fff;min-width:0;overflow:hidden;color:#3b5368}
.instance-graph h4{margin:0;padding:15px 18px 0;font-size:14px;font-weight:650;color:#2c475b;line-height:1.6}
.instance-graph-intro{margin:0;padding:15px 18px 8px;font-size:12px;line-height:1.7;color:#617689;overflow-wrap:anywhere}
.instance-graph-intro h4{padding:0 0 5px}
.instance-graph-intro p{margin:5px 0 0}
.instance-graph-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:9px 12px;padding:8px 18px 12px;font-size:12px;color:#4f677a}
.instance-graph-toolbar label{font-weight:600}
.instance-graph-toolbar select{flex:1;min-width:0;max-width:340px;padding:9px 12px;min-height:40px;border:1px solid #d8e1eb;border-radius:6px;background:#fff;color:#405d75;font-size:12px;text-overflow:ellipsis}
.instance-graph-scroll{overflow:auto;max-width:100%;max-height:540px;background:#fafcfd;border-top:1px solid #e8eef3;border-bottom:1px solid #e8eef3;overscroll-behavior:contain;scrollbar-gutter:stable}
.instance-graph-canvas{display:block;width:auto;min-width:0;max-width:none;height:auto;margin-inline:auto;font-family:var(--mono)}
.instance-graph-node-label{font-size:14px;font-weight:600;fill:#253f55;pointer-events:none}
.instance-graph-node-membership{font-size:11px;font-weight:400;fill:#607586;pointer-events:none}
.instance-graph-edge-label,.instance-graph-junction-label{font-size:11px;font-weight:600;pointer-events:none}
.instance-graph-column-label{font-size:11px;font-weight:500;pointer-events:none}
.instance-graph-label-background{cursor:pointer}
.instance-graph-edge{stroke-linejoin:round;stroke-linecap:round}
.instance-graph-node,.instance-graph-edge,.instance-graph-junction{cursor:pointer;outline:none}
.instance-graph [role=button]:focus-visible{outline:2px solid #5951df;outline-offset:4px}
.instance-graph [role=button]:hover{filter:brightness(.9)}
.instance-graph [aria-pressed=true]{filter:drop-shadow(0 0 3px #5951df70)}
.instance-graph-context-muted{opacity:.18}
.instance-graph-context-related{opacity:1}
.instance-graph-context-related>.instance-graph-edge{stroke-width:2.5}
.instance-graph-controls{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:0 18px 12px}
.instance-graph-controls button,.instance-graph-reset-context{border:1px solid #dbe4eb;border-radius:5px;background:#fff;color:#496276;padding:6px 9px;min-height:34px;font-size:11px;line-height:1.5;cursor:pointer}
.instance-graph-controls button:hover,.instance-graph-reset-context:hover{border-color:#a2b8c7;background:#f4f8fb}
.instance-graph-controls button:disabled{opacity:.45;cursor:default}
.instance-graph-zoom-value{min-width:40px;text-align:center;font-size:11px;font-variant-numeric:tabular-nums;color:#698091}
.instance-graph-relation-key{display:flex;flex-wrap:wrap;gap:5px 12px;list-style:none;margin:0;padding:0 18px 12px;font-size:11px;line-height:1.7;color:#647b8d}
.instance-graph-relation-key li{display:flex;align-items:baseline;gap:6px;min-width:0;max-width:100%;overflow-wrap:anywhere}
.instance-graph-relation-swatch{width:9px;height:9px;flex-shrink:0;border-radius:50%;align-self:center}
.instance-graph-relation-selected{color:#2c475b;font-weight:600}
.instance-graph-help{border-top:1px solid #e8eef3;background:#fff}
.instance-graph-help>summary{padding:10px 18px;font-size:11px;font-weight:550;color:#60778a;cursor:pointer}
.instance-graph-help[open]>summary{padding-bottom:5px}
.instance-graph-legend{display:grid;gap:5px;list-style:none;padding:5px 18px 9px;margin:0;font-size:11px;line-height:1.7;color:#60778a;overflow-wrap:anywhere}
.instance-graph-legend>span,.instance-graph-legend>li{display:inline-flex;gap:7px;align-items:center;max-width:100%;overflow-wrap:anywhere}
.instance-graph-legend svg{width:20px;height:20px;flex-shrink:0}
.instance-graph-layout-note{margin:0;padding:0 19px 13px;font-size:11px;line-height:1.75;color:#647a8c;overflow-wrap:anywhere}
.instance-graph-scroll-hint{margin:0;padding:8px 13px;background:#f0f5f9;font-size:11px;color:#526b80;line-height:1.7}
.instance-graph-scroll-hint[hidden]{display:none}
.instance-graph-details{margin:0;padding:11px 18px;background:#f4f8fb;border-top:1px solid #e0e9f0;min-height:45px;font-size:12px;line-height:1.7;overflow-wrap:anywhere;color:#405e75}
.instance-graph-details p{margin:3px 0}
.instance-graph-limit{margin:0;padding:11px 19px;background:#fff8e9;border-top:1px solid #eadbc0;font-size:12px;line-height:1.75;color:#805c29;overflow-wrap:anywhere}
.instance-graph-empty{padding:11px 18px;font-size:11px;line-height:1.7;color:#63798b}
@media(max-width:730px){.instance-graph-intro{padding:14px 13px 8px}.instance-graph-toolbar{padding:7px 13px 11px;gap:8px}.instance-graph-toolbar label{width:100%}.instance-graph-toolbar select{max-width:100%;width:100%;flex-basis:100%;min-height:44px}.instance-graph-controls{width:100%;justify-content:flex-start;padding:0 13px 11px}.instance-graph-controls button,.instance-graph-reset-context{min-height:40px;padding:8px 10px}.instance-graph-relation-key{padding:0 13px 11px;font-size:11px;gap:5px 10px}.instance-graph-help>summary{padding:12px 13px;min-height:44px}.instance-graph-legend{padding:5px 13px 10px}.instance-graph-layout-note{padding:0 13px 12px}.instance-graph-details,.instance-graph-limit{padding:11px 13px}.behavior-exact-data>summary{padding:12px 13px;min-height:44px}.behavior-exact-data>.behavior-signatures,.behavior-exact-data>.behavior-relations{margin:12px 10px}}
/* The native textarea owns input/selection; its text mirror owns syntax color. */
.code-area .editor-input textarea{color:transparent;-webkit-text-fill-color:transparent;caret-color:#e9e6ff}
.code-area .editor-input textarea::placeholder{-webkit-text-fill-color:#637a95;color:#637a95}
.source-highlight{color:#e4edf7}
.source-highlight .source-range{color:inherit}
.source-highlight .alloy-keyword{color:#c4b5fd;font-weight:700}
.source-highlight .alloy-operator{color:#9ddbe7}
.source-highlight .alloy-number{color:#fac58a}
.source-highlight .alloy-string{color:#a8dbc2}
.source-highlight .alloy-comment{color:#93a7be}
.alloy-code .alloy-keyword{color:#6454b3;font-weight:700}
.alloy-code .alloy-operator{color:#287b89}
.alloy-code .alloy-number{color:#9a5b22}
.alloy-code .alloy-string{color:#267658}
.alloy-code .alloy-comment{color:#7b8797}
.hint-reveal-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.hint-reveal-count{font-size:10px;color:#7d899b;line-height:1.6}
.instance-graph-relation-button,.instance-graph-object-relation{font:inherit;border:1px solid #d6e3ec;border-radius:5px;background:#fff;color:inherit;padding:4px 8px;max-width:100%;overflow-wrap:anywhere;text-align:left;cursor:pointer}
.instance-graph-relation-button:hover,.instance-graph-object-relation:hover{background:#edf5fa;border-color:#92b4ca}
.instance-graph-relation-focused .instance-graph-relation-button{background:#e9f3fa;border-color:#5d8cb0;color:#254b68}
.instance-graph-object-relations{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:8px}
.instance-graph-relation-button:disabled{opacity:.45;cursor:default}
/* Keep the entire read-only environment visible, including long model lines. */
.environment-code{min-height:300px;max-height:none;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:730px){.environment-code{min-height:220px}}
.behavior-arguments { overflow-wrap: anywhere; }
.progress-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}.progress-actions button{font-size:11px}.progress-actions [role=status]{font-size:11px;color:#657388;line-height:1.6;flex:1 1 240px;overflow-wrap:anywhere}.practice-lock{padding:12px 15px;margin:14px 0;border:1px solid #dccfa6;border-radius:9px;background:#fffbef;color:#655023;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.practice-lock button{margin-left:8px}.exercise-item-lock{color:#86703b;font-size:14px}.exercise-item[data-locked=true]{background:#faf8f2}.dependency-implementations{margin:10px 18px;color:#536c60;font-size:11px;line-height:1.7;overflow-wrap:anywhere}
/* The tutor is optional: no provider requests occur until it is opened. */
.tutor-toggle{position:fixed;right:24px;bottom:22px;z-index:30;display:flex;align-items:center;gap:9px;padding:13px 19px;border:1px solid #6058be;border-radius:30px;background:#5147b5;color:white;font-size:13px;font-weight:600;box-shadow:0 5px 25px #30365326;cursor:pointer}.tutor-toggle>span{font-size:21px;line-height:1}.tutor-toggle:hover{background:#443b9e}.tutor-panel{position:fixed;right:0;top:0;bottom:0;z-index:40;width:390px;max-width:100vw;display:flex;flex-direction:column;min-height:0;background:#fff;border-left:1px solid #dfe3ee;box-shadow:-8px 0 30px #26364b12;color:#38465d}.tutor-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:23px 20px 12px}.tutor-header h2{margin:4px 0 0;font-size:20px;font-weight:650;color:#26374e}.tutor-eyebrow{font-size:9px;letter-spacing:1px;color:#7669a8;font-weight:600}.tutor-icon-button{border:1px solid #e0e4ed;border-radius:8px;background:#fff;color:#64748a;width:36px;height:36px;font-size:24px;cursor:pointer}.tutor-intro{margin:0;padding:0 20px 16px;color:#657388;font-size:12px;line-height:1.65}.tutor-settings{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 12px;padding:0 20px}.tutor-settings label{font-size:11px;font-weight:600;color:#56667c}.tutor-settings select{width:100%;min-width:0;border:1px solid #dbe0eb;border-radius:6px;background:#fff;color:#43526a;padding:8px;font-size:12px;height:35px}.tutor-availability{font-size:10px;line-height:1.6;color:#78849a;padding:0 20px;margin:8px 0 14px;overflow-wrap:anywhere}.tutor-context{margin:0 14px 10px;padding:11px 12px;border:1px solid #e3e6ef;border-radius:8px;background:#fafbfe}.tutor-context>strong{display:block;font-size:12px;color:#4e5b73;overflow-wrap:anywhere}.tutor-context ul{list-style:none;padding:0;margin:8px 0;display:flex;gap:5px;flex-wrap:wrap}.tutor-context li{font-size:9px;color:#7c8799;border:1px solid #e1e5ed;border-radius:4px;padding:4px 5px;background:#fff}.tutor-context li.available{color:#387566;background:#eef7f2;border-color:#d6e9df}.tutor-context p{font-size:10px;line-height:1.6;color:#78849a;margin:7px 0 0}.tutor-messages{flex:1;min-height:120px;overflow:auto;overscroll-behavior:contain;padding:10px 18px;display:flex;flex-direction:column;gap:14px}.tutor-empty{color:#8590a2;font-size:13px;line-height:1.7;margin:18px 4px}.tutor-bubble{border-radius:10px;padding:12px 13px;min-width:0;max-width:100%;border:1px solid #e6e7f0;background:#f8f8fc}.tutor-bubble.tutor-user{background:#edf4fa;border-color:#dee8f1;margin-left:20px}.tutor-speaker{font-size:10px;letter-spacing:.3px;color:#72689a}.tutor-user .tutor-speaker{color:#617e97}.tutor-bubble p{margin:6px 0 0;font-size:13px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.tutor-suggestion-area{padding:10px 18px 0;border-top:1px solid #edf0f5}.tutor-suggestion-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:11px;color:#66758c}.tutor-suggestion-heading button{border:0;background:none;font:inherit;color:#6856ad;padding:4px;cursor:pointer}.tutor-suggestions{display:flex;flex-direction:column;gap:6px}.tutor-suggestion{padding:9px 11px;border:1px solid #ddd7ed;border-radius:7px;background:#fcfaff;font:inherit;font-size:11px;color:#635481;line-height:1.55;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}.tutor-suggestion:hover{background:#f2edf9;border-color:#bcb0d8}.tutor-small{font-size:9px;line-height:1.6;color:#8c94a3;margin:7px 0}.tutor-composer{padding:10px 18px 16px}.tutor-composer textarea{resize:vertical;width:100%;max-height:160px;min-height:74px;border:1px solid #d6dce8;background:#fff;border-radius:8px;padding:10px 11px;color:#394d66;font:inherit;font-size:12px;line-height:1.6}.tutor-composer textarea:focus{outline:2px solid #8c7bc2;outline-offset:1px}.tutor-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px}.tutor-composer-actions>span{font-size:9px;color:#8590a2;line-height:1.4}.tutor-composer .button{font-size:11px;min-height:35px;padding:8px 15px}.tutor-composer [role=status]{margin:7px 0 0;font-size:11px;line-height:1.6;color:#7e5d79;overflow-wrap:anywhere}.tutor-panel button:disabled,.tutor-panel select:disabled{opacity:.55;cursor:default}.tutor-panel button:focus-visible,.tutor-toggle:focus-visible{outline:2px solid #6c57b0;outline-offset:3px}
/* Reserve the drawer's width; opening chat must not cover the repair trace. */
@media(min-width:731px){
  body.tutor-open{--tutor-width:clamp(320px,27vw,390px);padding-right:var(--tutor-width)}
  body.tutor-open .tutor-panel{width:var(--tutor-width)}
  body.tutor-open .app-header{padding-left:20px;padding-right:20px;gap:16px}
  body.tutor-open .header-end{gap:10px}
  body.tutor-open .engine-badge,body.tutor-open .header-section{display:none}
  body.tutor-open .app-shell{grid-template-columns:180px minmax(0,1fr)}
  body.tutor-open .main-content{padding-left:16px;padding-right:16px}
  body.tutor-open .workspace-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:16px}
  body.tutor-open .feedback-column{display:flex}
  body.tutor-open .editor-actions,body.tutor-open .editor-action-end{flex-wrap:wrap}
  body.tutor-open .editor-actions{gap:10px}
  body.tutor-open .editor-action-end{margin-left:auto}
  body.tutor-open .keyboard-hint{display:none}
}
@media(min-width:731px) and (max-width:1199px){
  body.tutor-open .app-shell,body.tutor-open .workspace-grid{grid-template-columns:minmax(0,1fr)}
  body.tutor-open .sidebar{min-height:0;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.6fr);gap:12px;border-right:0;border-bottom:1px solid var(--border)}
  body.tutor-open .sidebar-heading{grid-column:1/-1;padding:0;margin:0}
  body.tutor-open .filter-label,body.tutor-open .sidebar-note,body.tutor-open .sidebar-footer,body.tutor-open .exercise-group-label{display:none}
  body.tutor-open .exercise-list{grid-column:1/-1;display:flex;gap:7px;min-height:0;max-height:110px;padding:0;overflow:auto}
  body.tutor-open .exercise-item{min-width:155px;width:155px;margin:0;padding:8px;align-items:flex-start}
}
@media(min-width:1500px){
  body.tutor-open .app-shell{grid-template-columns:210px minmax(0,1fr)}
  body.tutor-open .main-content{padding-left:24px;padding-right:24px}
}
@media(max-width:730px){.tutor-panel{width:min(100vw,440px);height:100dvh;bottom:auto;box-shadow:-10px 0 45px #25364d30}.tutor-toggle{bottom:15px;right:15px;padding:12px 16px}.tutor-header{padding:15px 16px 8px}.tutor-intro{padding:0 16px 10px;font-size:11px}.tutor-settings{padding:0 16px;gap:6px 10px}.tutor-availability{padding:0 16px;margin:6px 0 10px}.tutor-context{margin-bottom:4px;padding:8px 10px}.tutor-context p{display:none}.tutor-messages{min-height:80px;padding:8px 14px}.tutor-suggestion-area{padding:8px 14px 0}.tutor-composer{padding:8px 14px 12px}.tutor-small{font-size:8px}.tutor-suggestion{padding:7px 9px;font-size:11px}.tutor-composer textarea{min-height:65px}.tutor-bubble p{font-size:12px}}
@media(max-height:760px){.tutor-intro{display:none}.tutor-context p{display:none}.tutor-header{padding-top:12px}.tutor-context{padding-top:7px;padding-bottom:7px}.tutor-availability{margin-bottom:8px}.tutor-messages{min-height:80px}.tutor-suggestion{padding:6px 8px}.tutor-composer textarea{min-height:58px}.tutor-small{display:none}}

.tutor-suggestions{max-height:160px;overflow-y:auto;overscroll-behavior:contain}.tutor-panel{overflow-y:auto}.tutor-header,.tutor-settings,.tutor-composer,.tutor-suggestion-area{flex-shrink:0}

.tutor-header-actions{display:flex;align-items:center;gap:8px}.tutor-new{border:0;background:none;color:#70618f;padding:8px 3px;font-size:10px;cursor:pointer;white-space:nowrap}

.tutor-history-note{margin:0 18px 8px;padding:8px 10px;background:#fff8e9;border:1px solid #eadbb9;border-radius:6px;font-size:10px;line-height:1.6;color:#79613a}.tutor-message-limit{font-size:10px;line-height:1.6;color:#88543d;margin:7px 0 0}

.tutor-draft-label{margin-left:9px;font-size:9px;letter-spacing:0;font-weight:400;color:#7f8794}.tutor-earlier{border-style:dashed}.tutor-earlier .tutor-speaker{color:#7a8091}

.tutor-input-frame{border:1px solid #d6dce8;border-radius:12px;background:#fff;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.tutor-input-frame:focus-within{border-color:#8c7bc2;box-shadow:0 0 0 2px #8c7bc21a}
.tutor-input-frame textarea{display:block;border:0;border-radius:0;background:transparent;padding:12px;resize:vertical}
.tutor-input-frame textarea:focus{outline:none;box-shadow:inset 3px 0 #8c7bc2}
.tutor-input-frame .tutor-settings{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px;padding:9px 11px 0;border-top:1px solid #eef0f5;background:#fafbfe}
.tutor-choice{display:flex;flex-direction:column;gap:3px;min-width:0}
.tutor-input-frame .tutor-settings label{font-size:9px;color:#7a8497;font-weight:500}
.tutor-input-frame .tutor-settings select{height:32px;padding:5px 7px;font-size:11px;border-color:#e3e7ef;background:#fff;text-overflow:ellipsis}
.tutor-input-frame .tutor-composer-actions{margin:0;padding:8px 11px 10px;background:#fafbfe}

/* Keep recovery and persistence cues close to the learner's code. */
.reset-recovery{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #d9e5e0;border-radius:9px;background:#f0f8f4;color:#456b5e;font-size:11px;line-height:1.6}
.editor-toolbar{flex-wrap:wrap;gap:8px}
.tutor-composer .tutor-availability{padding:0;margin:7px 1px 0;font-size:9px;line-height:1.55}
.tutor-header{flex-wrap:wrap;gap:8px}
.tutor-header-actions{margin-left:auto}
.tutor-history-panel{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 16px 14px;gap:8px}
.tutor-history-controls{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.tutor-history-controls button{text-align:left;align-self:flex-start}
.tutor-history-controls label{font-size:11px;color:#617089}
.tutor-history-controls select{width:100%;min-width:0;padding:9px;border:1px solid #dbe0eb;border-radius:7px;background:#fff;color:#43526a;font-size:12px}
.tutor-history-content{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.tutor-viewing-history #tutor-messages,.tutor-viewing-history .tutor-suggestion-area,.tutor-viewing-history .tutor-composer{display:none}
.tutor-history-content p{user-select:text}
.tutor-history-content button{font-size:10px;border:1px solid #dbe0eb;border-radius:5px;padding:5px 9px;background:#fff;color:#635481;margin-top:8px}
