:root{--bg:#f5f5f7;--card:rgba(255,255,255,0.88);--card-strong:#ffffff;--border:rgba(210,210,218,0.9);--text:#1d1d1f;--muted:#6e6e73;--soft:#86868b;--orange:#ff8c42;--orange-soft:#ffe2cf;--green:#7bc67e;--blue:#6db3f2;--purple:#b39ddb;--shadow:0 18px 42px rgba(131,138,160,0.14);--radius:26px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:Segoe UI,PingFang SC,Noto Sans SC,system-ui,sans-serif;background:radial-gradient(circle at top left,rgba(255,223,201,.8),transparent 28%),radial-gradient(circle at top right,rgba(196,230,255,.72),transparent 24%),linear-gradient(180deg,#fafafb 0,var(--bg) 100%);color:var(--text)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input{font:inherit}a{color:inherit;text-decoration:none}.auth-page-shell,.page-shell{min-height:100vh;padding:24px}.auth-page-shell{display:flex;align-items:center;justify-content:center}.auth-card{width:min(100%,520px);display:flex;flex-direction:column;gap:18px;padding:24px;border:1px solid rgba(255,255,255,.8);border-radius:28px;background:rgba(255,255,255,.88);box-shadow:var(--shadow)}.auth-card__footer{padding-top:6px}.auth-field{display:flex;flex-direction:column;gap:8px}.auth-field input{border:1px solid rgba(210,210,218,.7);border-radius:16px;padding:12px 14px;background:white;outline:none}.auth-message{margin:0;color:#b42318;font-size:.85rem}.session-entry{position:relative;display:inline-flex;align-items:center;padding:6px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow)}.app-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.task-toolbar{display:flex;align-items:center;min-height:28px}.task-hint-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px}.schema-sidebar{display:grid;gap:14px}.schema-sidebar .schema-grid{grid-template-columns:1fr;margin-top:0}.schema-sidebar .schema-card{max-height:430px;overflow-y:auto}.learning-path-card{display:grid;gap:14px}.learning-path-card__recommendation,.learning-path-card__reviews{display:grid;gap:8px;padding:14px;border-radius:18px;background:rgba(255,226,207,.58)}.learning-path-card__recommendation p,.learning-path-card__reviews p{margin:0}.learning-path-card__reviews button{display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;border-radius:12px;padding:9px 10px;background:rgba(255,255,255,.78);color:var(--text);cursor:pointer;font-size:.78rem;text-align:left}.learning-path-card__reviews button span{flex:0 0 auto;color:#a84911;font-weight:800}.ability-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow-y:auto;padding-right:4px}.ability-map__node{display:grid;gap:3px;min-width:0;border:1px solid rgba(210,210,218,.7);border-radius:14px;padding:10px;background:rgba(255,255,255,.78);color:var(--text);cursor:pointer;text-align:left}.ability-map__node>span{overflow:hidden;font-size:.78rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.ability-map__node strong{font-size:.82rem}.ability-map__node small{color:var(--muted);font-size:.68rem}.ability-map__node--review{border-color:rgba(255,140,66,.55);background:rgba(255,226,207,.62)}.ability-map__node--mastered{border-color:rgba(123,198,126,.5);background:rgba(230,246,231,.78)}.ability-map__node--locked{cursor:not-allowed;opacity:.48}.diagnostic-session{position:fixed;top:18px;right:22px;z-index:30}.account-menu{position:relative}.account-menu summary{display:flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;cursor:pointer;list-style:none}.account-menu summary::-webkit-details-marker{display:none}.account-menu__avatar{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:999px;background:var(--orange-soft);color:#a84911;font-size:.8rem;font-weight:800}.account-menu__label{max-width:120px;overflow:hidden;font-size:.82rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.account-menu__panel{position:absolute;top:calc(100% + 10px);right:0;display:grid;min-width:210px;gap:10px;padding:16px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.98);box-shadow:var(--shadow)}.account-menu__panel p{margin:0}.account-menu__name{font-weight:700}.knowledge-briefing{display:grid;gap:14px;margin-top:20px;padding:18px;border:1px solid rgba(255,140,66,.28);border-radius:22px;background:linear-gradient(135deg,rgba(255,226,207,.78),rgba(255,255,255,.9))}.knowledge-briefing__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.knowledge-briefing h3,.knowledge-briefing p{margin:0}.knowledge-briefing h3{margin-top:4px;font-size:1.05rem}.knowledge-briefing__concepts{display:flex;flex-wrap:wrap;gap:8px}.knowledge-briefing__concepts span{padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.75);color:#8a4317;font-size:.76rem;font-weight:700}.knowledge-briefing__example{overflow:hidden;border-radius:16px;background:#29252b;color:#fff4ea}.knowledge-briefing__example>p{padding:10px 14px;background:rgba(255,255,255,.08)}.knowledge-briefing pre{overflow-x:auto;margin:0;padding:14px;font-size:.75rem;line-height:1.65}.knowledge-briefing__takeaway{color:#8a4317;font-size:.84rem;font-weight:700}.app-shell{max-width:1220px;margin:0 auto}.app-header{position:relative;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:16px 20px;border:1px solid rgba(255,255,255,.7);border-radius:28px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:var(--shadow)}.app-header,.brand{display:flex;align-items:center}.brand{gap:12px}.brand__title,.section-title,.strong,h1,h2{font-weight:700}.brand__title,h1,h2{margin:0;letter-spacing:-.03em}h1{font-size:1.35rem}h2{font-size:1.1rem}.app-main{padding:24px 0 40px}.inline-actions,.run-row,.segmented-control,.status-pills,.tabs{display:flex;align-items:center;gap:10px}.tabs{padding:6px;border-radius:999px;background:rgba(245,245,247,.9)}.segmented-control button,.tab-button{border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:.18s ease}.tab-button{padding:10px 16px;font-size:.9rem;font-weight:600}.segmented-control__active,.tab-button--active{background:#ffffff;color:var(--text);box-shadow:0 8px 20px rgba(0,0,0,.08)}.badge,.level-marker,.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 12px;font-size:.74rem;font-weight:700;background:rgba(245,245,247,.95);color:var(--text)}.badge{text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.badge-active{background:rgba(123,198,126,.18);color:#2e7a3f}.level-marker{min-width:72px;background:rgba(255,140,66,.15);color:#b45d1d}.card,.schema-card,.task-card,.welcome-card{border:1px solid rgba(255,255,255,.8);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.card,.welcome-card{padding:22px}.gradient-card{background:linear-gradient(135deg,rgba(255,222,233,.95),rgba(212,240,240,.95)),#ffffff}.texture-card{background:radial-gradient(rgba(232,226,213,.7) .8px,transparent 0),radial-gradient(rgba(232,226,213,.7) .8px,#fffdf9 0);background-position:0 0,8px 8px;background-size:16px 16px}.center-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.two-column{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:22px}.sidebar-stack,.stack-lg,.stack-md,.stack-sm{display:flex;flex-direction:column}.stack-lg{gap:22px}.stack-md{gap:14px}.stack-sm{gap:10px}.between-row,.top-row{display:flex;justify-content:space-between;gap:12px}.top-row{align-items:flex-start}.muted,.tiny{color:var(--muted)}.coach-bubble,.info-callout p,.muted,.question-title,.schema-card__row p,.task-card__body{line-height:1.6}.tiny{font-size:.76rem}.mono{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace}.text-button{border:0;background:transparent;color:var(--muted);cursor:pointer}.text-button:hover{color:var(--text)}.button{border:0;border-radius:18px;cursor:pointer;font-weight:700;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover:enabled{transform:translateY(-1px);box-shadow:0 12px 22px rgba(0,0,0,.08)}.button:disabled{opacity:.45;cursor:default}.button-primary{background:var(--orange);color:white}.button-secondary{background:white;color:var(--text)}.button-ghost{background:rgba(245,245,247,.8);color:var(--muted)}.button-sm{padding:10px 14px;font-size:.78rem}.button-md{padding:12px 18px;font-size:.92rem}.button-lg{padding:14px 18px;font-size:1rem}.button-block{width:100%}.welcome-shell{min-height:100vh;justify-content:center;padding:24px}.welcome-card,.welcome-shell{display:flex;align-items:center}.welcome-card{width:min(100%,520px);flex-direction:column;gap:16px;text-align:center}.welcome-card--question{align-items:stretch;text-align:left}.hint-banner,.info-callout,.level-callout{display:flex;gap:12px;padding:16px;border-radius:20px;background:rgba(255,255,255,.7)}.level-callout{align-items:center;width:100%}.level-callout__dot{width:14px;height:14px;border-radius:999px;flex-shrink:0}.progress-bar{width:100%;height:10px;border-radius:999px;overflow:hidden;background:rgba(210,210,218,.75)}.progress-bar--compact{height:8px}.progress-bar__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--orange),#ffb37a)}.question-title{margin:0;font-size:1rem;font-weight:700}.question-list{display:grid;gap:10px}.question-option{text-align:left;border:0;border-radius:20px;padding:14px 16px;background:rgba(245,245,247,.8);cursor:pointer;transition:.16s ease}.question-option:hover{background:white;transform:translateY(-1px);box-shadow:0 10px 20px rgba(0,0,0,.06)}.task-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:18px}.task-card{padding:16px;text-align:left;border:1px solid rgba(210,210,218,.55);background:rgba(255,255,255,.75);cursor:pointer}.task-card__title{margin:8px 0 6px;font-weight:700}.task-card__body{margin:0;font-size:.82rem;color:var(--muted)}.task-card--completed{outline:2px solid rgba(123,198,126,.45);background:rgba(244,255,244,.88)}.task-card--active{outline:2px solid rgba(109,179,242,.5);background:rgba(240,248,255,.92)}.task-card--locked{opacity:.45;cursor:not-allowed}.schema-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:16px}.schema-card{padding:16px;background:rgba(245,245,247,.75);border:1px solid rgba(210,210,218,.45)}.schema-card__row{padding-top:8px;border-top:1px solid rgba(210,210,218,.4)}.schema-card__row:first-child{border-top:0;padding-top:0}.chart-shell,.coach-shell,.editor-shell,.result-shell{overflow:hidden}.chart-shell__header,.editor-shell__header,.result-shell__toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(210,210,218,.55);background:rgba(245,245,247,.75)}.chart-shell--empty,.editor-loading,.result-shell--center{display:flex;align-items:center;justify-content:center;min-height:220px;text-align:center}.result-shell--center{flex-direction:column;gap:10px}.result-shell--error{background:rgba(255,242,242,.92);border:1px solid rgba(254,202,202,.9)}.result-shell__label{margin:0 0 8px;color:#b42318;font-weight:700}.result-shell__error{margin:0;white-space:pre-wrap;color:#7a271a;font-family:Cascadia Code,Consolas,monospace}.result-shell__table-wrap{overflow:auto;max-height:340px}.result-table{width:100%;border-collapse:collapse}.result-table td,.result-table th{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(210,210,218,.45);font-size:.82rem}.result-table td{font-family:Cascadia Code,Consolas,monospace}.result-table tbody tr:nth-child(2n){background:rgba(245,245,247,.55)}.chart-bars{display:grid;gap:12px}.chart-bars__meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}.chart-bars__track{height:12px;border-radius:999px;overflow:hidden;background:rgba(210,210,218,.55)}.chart-bars__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--orange),var(--blue))}.coach-shell{display:flex;flex-direction:column;min-height:540px}.coach-shell__header{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(210,210,218,.45)}.coach-shell__messages{flex:1 1;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;gap:12px}.coach-bubble-row{display:flex}.coach-bubble-row--user{justify-content:flex-end}.coach-bubble-row--ai{justify-content:flex-start}.coach-bubble{max-width:84%;padding:12px 14px;border-radius:18px;white-space:pre-line;font-size:.82rem}.coach-bubble--user{background:var(--orange);color:white;border-bottom-right-radius:6px}.coach-bubble--ai{background:rgba(245,245,247,.9);color:var(--text);border-bottom-left-radius:6px}.coach-shell__composer{display:flex;gap:10px;padding-top:12px;border-top:1px solid rgba(210,210,218,.45)}.coach-shell__input{flex:1 1;border:0;border-radius:16px;padding:12px 14px;background:rgba(245,245,247,.95);outline:none}.coach-shell__send{width:42px;border:0;border-radius:999px;background:var(--orange);color:white;cursor:pointer}.coach-shell__send:disabled{opacity:.45;cursor:default}.mascot-avatar{overflow:hidden;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),var(--shadow)}.mascot-avatar__image,.mascot-video__media{width:100%;height:100%;object-fit:cover;display:block}.mascot-video{position:relative;display:inline-flex;flex-direction:column;align-items:center}.mascot-video__frame{overflow:hidden;border-radius:24px;background:transparent}.mascot-video__bubble{position:absolute;left:50%;bottom:-12px;transform:translate(-50%,100%);width:max-content;max-width:220px;padding:10px 12px;border-radius:16px;background:white;color:var(--text);font-size:.74rem;text-align:center;box-shadow:0 12px 24px rgba(0,0,0,.08)}.hint-banner,.success-card{background:rgba(255,255,255,.78)}.success-card{border:1px solid rgba(123,198,126,.4)}.success-card__title{margin:0 0 6px;font-weight:700;color:#256f2e}.guided-review-card{border:1px solid rgba(255,140,66,.38);background:linear-gradient(135deg,rgba(255,226,207,.82),rgba(255,255,255,.92))}.guided-review-card__title{margin:0 0 6px;color:#a84911;font-weight:800}.answer-entry-card,.solution-card{display:flex;flex-direction:column;gap:14px}.answer-entry-card__title,.solution-card__title{margin:0;font-weight:700}.solution-card__code{margin:0;overflow:auto;padding:16px;border-radius:18px;background:rgba(245,245,247,.95);border:1px solid rgba(210,210,218,.5);font-family:Cascadia Code,Consolas,monospace;font-size:.8rem;line-height:1.6;white-space:pre-wrap}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.concept-tag{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:.74rem;background:rgba(109,179,242,.12);color:#2c6ca5}.feedback-card{gap:14px}.feedback-card,.insight-block{display:flex;flex-direction:column}.insight-block{gap:8px;padding:14px 16px;border-radius:18px;background:rgba(245,245,247,.85);border:1px solid rgba(210,210,218,.5)}.insight-block--positive{background:rgba(246,255,246,.9);border-color:rgba(123,198,126,.35)}.feedback-card--passed{border:1px solid rgba(123,198,126,.4);background:rgba(246,255,246,.9)}.feedback-card__title{margin:0;font-weight:700}.admin-shell{max-width:1220px;margin:0 auto;display:flex;flex-direction:column;gap:22px}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border:1px solid rgba(255,255,255,.7);border-radius:24px;background:rgba(255,255,255,.82);box-shadow:var(--shadow)}.admin-grid,.admin-stat-grid{display:grid;gap:14px}.admin-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stat-card{min-height:132px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;padding:18px;border:1px solid rgba(210,210,218,.55);border-radius:20px;background:rgba(255,255,255,.78);box-shadow:var(--shadow)}.admin-stat-card strong{font-size:2rem;letter-spacing:0}.admin-stat-card span{color:var(--muted);font-size:.82rem}.admin-list{display:grid;gap:10px}.admin-list-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid rgba(210,210,218,.45)}.admin-list-row:first-child{border-top:0;padding-top:0}.admin-status{display:inline-flex;align-items:center;margin-left:8px;padding:4px 8px;border-radius:999px;font-size:.72rem}.admin-status--passed{background:rgba(123,198,126,.18);color:#256f2e}.admin-status--failed{background:rgba(255,140,66,.18);color:#9a4f16}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;min-width:560px;border-collapse:collapse}.admin-table td,.admin-table th{padding:12px 10px;text-align:left;border-top:1px solid rgba(210,210,218,.45);font-size:.82rem;vertical-align:top}.admin-table th{color:var(--muted);font-size:.76rem}.spinner{width:24px;height:24px;border-radius:999px;border:3px solid rgba(255,140,66,.25);border-top:3px solid var(--orange);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:960px){.page-shell{padding:16px}.admin-grid,.admin-stat-grid,.two-column{grid-template-columns:1fr}.admin-header,.app-header__actions,.between-row,.brand,.inline-actions,.run-row,.status-pills,.tabs,.top-row{flex-wrap:wrap}.app-header__actions{width:100%;justify-content:space-between}}