:root{--ink:#203c35;--green:#275e49;--muted:#768079;--paper:#f6f7f2;--line:#dfe5db}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 'Segoe UI',system-ui,sans-serif}header{min-height:100px;padding:24px 6%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}a{color:var(--green)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:29px;font-weight:800;letter-spacing:-1px}.mark{background:var(--green);color:white;border-radius:12px;padding:0 12px;transform:rotate(-7deg)}.brand-note{font-size:11px;font-weight:400;letter-spacing:0;margin-left:16px;color:var(--muted)}main{max-width:1340px;margin:0 auto;padding:65px 6%;min-height:calc(100vh - 165px)}footer{padding:18px 6%;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}h1{font-size:clamp(32px,4vw,54px);line-height:1.16;letter-spacing:-2px;font-weight:600;margin:20px 0}h2{font-size:25px;line-height:1.3;letter-spacing:-.6px}p{color:var(--muted)}em{font-style:normal;color:#73994c}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600}.login-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:85px;align-items:start}.login-card{background:var(--surface);padding:38px 42px;border:1px solid var(--line);border-radius:20px;box-shadow:0 14px 40px #263f3406}.login-card h2{font-size:29px;margin:12px 0}.muted{color:var(--muted)}fieldset{padding:0;border:0;margin:26px 0 20px}legend,label{font-size:13px;font-weight:500}legend{margin-bottom:9px}.roles{display:flex;gap:10px}.roles label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);padding:12px 16px;border-radius:9px;flex:1;cursor:pointer}.roles label:has(input:checked){border-color:var(--green);background:var(--soft)}input[type=radio]{accent-color:var(--green)}input:not([type=radio]):not([type=hidden]){display:block;width:100%;padding:13px;border:1px solid var(--line);border-radius:9px;margin:7px 0 18px;font:inherit;background:var(--field)}input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #98ba64;outline-offset:3px}button{cursor:pointer;font:inherit}.primary{width:100%;border:0;border-radius:9px;background:var(--green);color:white;padding:14px 18px;margin-top:10px;display:flex;justify-content:space-between}.primary:hover{background:var(--accent-hover)}.help{font-size:12px;margin:25px 0 0;padding-top:20px;border-top:1px solid var(--line)}.error{background:var(--error-bg);color:var(--danger);padding:12px;border-radius:8px;font-size:13px}.illustration{height:190px;position:relative;margin-top:40px}.book{background:#dbe8ba;width:210px;height:145px;border-radius:6px 18px 18px 6px;border-left:14px solid #b7ce8c;transform:rotate(-9deg);padding:18px 25px;font-size:45px;box-shadow:8px 10px 0 #e5eadd}.book span{display:block;font-size:12px}.orbit{position:absolute;left:250px;top:-10px;font-size:65px;color:#d3a953}.note{position:absolute;left:185px;top:90px;transform:rotate(7deg);background:#fcf0d7;padding:16px 24px;font-size:13px}.profile{display:flex;align-items:center;gap:20px;font-size:12px}.quiet{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:6px 14px}.section-heading{display:flex;align-items:center;gap:15px;margin-top:45px}.badge,.pill{font-size:11px;border-radius:20px;background:var(--soft);padding:6px 12px;color:var(--green);display:inline-block}.empty{background:var(--surface);border:1px dashed #cad5c6;border-radius:18px;text-align:center;padding:55px 20px;margin:25px 0}.empty-icon{font-size:40px;color:#87a65c}.empty h2{margin:10px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0}.feature{border:1px solid var(--line);border-radius:15px;padding:27px;background:var(--surface)}.feature p{font-size:13px;min-height:65px}.wave{color:#c9a458}@media(max-width:800px){header{padding:20px 5%;gap:15px}.brand-note{display:none}main{padding:35px 5%}.login-layout{grid-template-columns:1fr;gap:25px}.intro h1{font-size:36px}.illustration{display:none}.login-card{padding:25px}.cards{grid-template-columns:1fr}.profile{gap:10px}.profile span{max-width:150px}.roles label{padding:12px}.empty{padding:35px 15px}}
.editor{max-width:760px;margin:25px auto}.editor textarea,.editor select,select{font:inherit;border:1px solid var(--line);border-radius:8px;padding:12px;max-width:100%}.editor textarea{width:100%;min-height:240px}.editor .helptext{display:block;font-size:12px;color:var(--muted)}.errorlist{color:var(--danger)}.button{display:inline-block;text-decoration:none;background:var(--green);color:white;padding:10px 18px;border-radius:9px}.toolbar,.roster{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:20px 0}.toolbar form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.section{margin:20px 0}.section-heading{margin:0;flex-wrap:wrap}.section-heading a,li a{font-size:14px}.section li{padding:10px 0}.theory{line-height:1.9;overflow-wrap:anywhere;margin:25px 0}.notice{padding:15px;border:1px solid var(--line);background:var(--soft);border-radius:9px;margin-bottom:20px}.roster{justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:15px}
.question-card{margin:20px 0}.question-card textarea{min-height:70px}.question-card input[type=checkbox],.question-card input[type=radio],.editor input[type=checkbox]{width:auto;display:inline-block}.editor input[type=file]{background:var(--surface)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--surface);border-radius:12px}th,td{text-align:left;padding:16px;border-bottom:1px solid var(--line);font-size:13px}th{color:var(--muted)}.toolbar .button{font-size:13px}input[type=checkbox],input[type=radio]{accent-color:var(--green)}.editor ul{list-style:none;padding:0}.editor form>div{margin:20px 0}.editor fieldset{background:var(--surface);padding:20px;border:1px solid var(--line);border-radius:12px}
@media(max-width:800px){header{flex-wrap:wrap}.profile{flex-wrap:wrap}.brand-note{display:none}.toolbar{align-items:stretch}.toolbar .button{flex:1;text-align:center}.editor h1{font-size:32px}}[hidden]{display:none!important}
.lesson-editor{margin:20px auto}.lesson-meta{display:grid;grid-template-columns:2fr 2fr 1fr;align-items:center;gap:12px;margin:25px 0}.lesson-meta select{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:9px}.theory-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.theory-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.theory-toolbar button{font-size:12px}.theory-toolbar button:disabled{opacity:.45;cursor:default}.theory-compose textarea{width:100%;min-height:460px;padding:20px;font:15px/1.8 system-ui,sans-serif;border:1px solid var(--line);border-radius:12px;resize:vertical}.theory-preview{min-height:540px;overflow-wrap:anywhere}.theory-preview .theory{margin-bottom:0}.theory blockquote{border-left:4px solid #9dbb7c;padding:12px 20px;margin:20px 0;background:var(--soft);color:var(--ink)}.theory p{color:var(--ink)}.theory code{background:var(--soft);padding:2px 6px;border-radius:4px}.theory h2,.theory h3,.theory h4{margin:28px 0 14px;line-height:1.35}.theory li{margin:8px 0}.lesson-editor .button{border:0;font:inherit;cursor:pointer}.lesson-meta .helptext{font-size:12px}@media(max-width:900px){.theory-layout{grid-template-columns:1fr}.lesson-meta{grid-template-columns:1fr}.theory-preview{min-height:200px}.theory-compose textarea{min-height:320px}}
.builder-editor{max-width:1000px;margin:25px auto}.builder-editor>.editor,.builder-editor form>.editor{margin:25px 0;max-width:760px}.builder-editor textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}.question-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.question-actions{display:flex;gap:6px;flex-wrap:wrap}.question-actions button{font-size:12px}.question-options{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.correct-options{border:1px solid var(--line);border-radius:10px;padding:16px;margin:12px 0}.correct-options label{display:flex;gap:8px;align-items:center;padding:5px 0;overflow-wrap:anywhere}.correct-options input[type=checkbox]{width:auto!important;margin:0!important;flex-shrink:0}.js-builder .question-delete-field{display:none}.question-card.is-deleted{background:var(--soft);border-style:dashed}.question-deleted-note{font-size:13px}.question-card .errorlist{background:var(--error-bg);border-radius:8px;padding:12px 22px}.question-actions button:disabled{opacity:.4;cursor:default}#student-preview fieldset{margin:20px 0;border:1px solid var(--line);padding:20px;border-radius:10px}#student-preview label{display:block;margin:12px 0}#student-preview input{display:inline-block;width:auto;margin-right:8px}@media(max-width:650px){.question-options{grid-template-columns:1fr}.question-card{padding:18px}.question-header{align-items:start}.question-actions .quiet{padding:6px 9px}}
.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:30px 0}.dashboard-stats a{text-decoration:none;display:flex;flex-direction:column;font-size:13px}.dashboard-stats strong{font-size:38px;line-height:1.4;font-weight:600}.dashboard-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;margin:30px 0}.dashboard-columns .empty{padding:32px 20px}.dashboard-columns .feature p{min-height:0}.feedback-text{white-space:pre-line;overflow-wrap:anywhere}progress{display:block;width:100%;height:10px;border:none;border-radius:10px;margin-top:12px;accent-color:var(--green)}progress::-webkit-progress-bar{background:var(--line);border-radius:10px}progress::-webkit-progress-value{background:var(--green);border-radius:10px}@media(max-width:800px){.dashboard-columns{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:repeat(2,1fr)}}
.search-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:16px;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:25px 0}.search-toolbar p{margin:0;flex:1;min-width:180px}.search-toolbar label{display:block}.search-toolbar input:not([type=hidden]){margin-bottom:0}.search-toolbar select{width:100%;padding:12px}.search-toolbar .errorlist{flex-basis:100%}
.upload-box{padding:22px;border:1px dashed #aebda5;border-radius:12px;background:var(--surface);margin:24px 0}.upload-box #selected-files{list-style:none;padding:0}.upload-box #selected-files li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:12px 0;overflow-wrap:anywhere}.upload-box #selected-files li span{min-width:0}.upload-box .help{margin:12px 0;padding:0;border:0}#send-confirmation h3{margin-top:0}#send-confirmation p{color:var(--ink)}#work-form button:disabled{opacity:.55;cursor:wait}

/* vumio: shared tokens keep every learning surface readable in both themes. */
:root{color-scheme:light;--ink:#29283e;--green:#624bc5;--muted:#66667b;--paper:#f6f5fa;--line:#e2dfed;--surface:#fff;--field:#fcfbff;--soft:#efebfb;--accent-hover:#5039ae;--danger:#a7354c;--error-bg:#fff0f3;--shadow:0 12px 34px #30245108}
:root[data-theme=dark]{color-scheme:dark;--ink:#edeaf7;--green:#bbaaff;--muted:#b1abc4;--paper:#171622;--line:#393448;--surface:#242130;--field:#1d1b29;--soft:#332b49;--accent-hover:#d0c3ff;--danger:#ffacbc;--error-bg:#452536;--shadow:0 12px 34px #0002}
body{background:radial-gradient(ellipse at 90% 0,var(--soft),transparent 48%),var(--paper)}
header{background:var(--surface);gap:22px;min-height:90px;padding:20px 5%;flex-wrap:wrap}
.brand{letter-spacing:-1.6px;gap:10px;font-size:32px;color:var(--ink)}
.mark{display:flex;align-items:center;justify-content:center;position:relative;width:42px;height:42px;padding:0;border-radius:14px;background:#6c56d9;color:#fff;transform:none;font-size:34px;line-height:1;font-weight:800}
.mark span{position:absolute;right:4px;top:-3px;color:#b4eddb;font-size:22px}.brand-note{margin-left:10px;font-size:12px;color:var(--muted)}
.theme-toggle{margin-left:auto;white-space:nowrap;font-size:12px;min-height:38px}.profile{gap:16px}.profile a{text-decoration:none;font-weight:600}.profile form{margin:0}
main{padding-top:48px;max-width:1390px}h1{font-weight:700;letter-spacing:-1.7px}h2,h3{color:var(--ink)}p{color:var(--muted)}
.feature,.login-card{background:var(--surface);box-shadow:var(--shadow);border-color:var(--line);border-radius:20px}.feature{padding:26px}.feature h2 a{text-decoration:none}.feature h2 a:hover{text-decoration:underline}.feature p{min-height:0}
.cards{gap:22px}.empty{background:var(--surface);border-color:var(--line)}.empty-icon,em{color:var(--green)}
.button,.primary{background:#6c56d9;color:#fff;border:1px solid transparent;font-weight:600;box-shadow:0 4px 12px #6c56d918;transition:background .15s,transform .15s}.button:hover,.primary:hover{background:#5941c3;transform:translateY(-1px)}
.quiet{background:var(--surface);color:var(--ink);border-color:var(--line);text-decoration:none;display:inline-block}.quiet:hover{background:var(--soft)}.danger{background:#aa3b52}.danger:hover{background:#8c2c40}.danger-link{color:var(--danger);font-size:13px}
input,textarea,select{color:var(--ink);background:var(--field)}input:not([type=radio]):not([type=hidden]){border-color:var(--line)}select{background:var(--field)}
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.badge,.pill,.notice{background:var(--soft);color:var(--green)}.notice{border-color:var(--line)}.error,.question-card .errorlist{color:var(--danger);background:var(--error-bg)}
.theory blockquote{background:var(--soft);border-color:var(--green)}.theory code{background:var(--soft)}.theory-compose textarea,.builder-editor textarea{background:var(--field)}
.book{background:var(--soft);border-color:var(--green);box-shadow:8px 10px 0 var(--line);color:var(--green)}.note{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.orbit,.wave{color:var(--green)}
.dashboard-stats .feature{border-top:3px solid var(--green)}table{background:var(--surface);overflow:hidden}th{background:var(--soft);color:var(--ink)}.upload-box{border-color:var(--line)}
footer strong{font-size:17px;letter-spacing:-.6px;color:var(--ink);margin-right:12px}
@media(max-width:1100px){.brand-note{display:none}.profile{flex-basis:100%;justify-content:space-between}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){header{padding:16px 5%;gap:12px}.brand{font-size:28px}.profile{gap:10px}.profile span{max-width:none;flex-basis:100%;order:2}.cards{grid-template-columns:1fr}.feature{padding:20px}main{padding-top:28px}h1{letter-spacing:-1px}.toolbar{gap:12px}.login-card{padding:24px}.theme-toggle{padding:7px 10px}.theory-preview{min-width:0}.dashboard-stats{gap:10px}.dashboard-stats .feature{padding:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
