:root{color-scheme:light;--paper:#eeeee7;--surface:#f8f8f3;--ink:#213633;--muted:#6f7974;--line:rgba(33,54,51,.16);--accent:#315d55;--danger:#9a433d;--shadow:0 18px 55px rgba(33,54,51,.09)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);font:15px/1.5 Arial,Helvetica,sans-serif;background:radial-gradient(circle at 50% 0,#fff 0,transparent 38%),var(--paper)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:10px 22px;border-bottom:1px solid var(--line);background:rgba(248,248,243,.92);backdrop-filter:blur(18px)}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;width:max-content}.brand img{width:48px;height:48px}.brand span{display:flex;flex-direction:column}.brand strong{font-size:21px;line-height:1;text-transform:lowercase}.brand small{color:var(--muted);font-size:12px;margin-top:4px}.mode-switch{display:flex;padding:4px;border:1px solid var(--line);border-radius:12px;background:#eeeee7}.mode-switch button{border:0;border-radius:8px;padding:8px 16px;background:transparent}.mode-switch button.is-active{background:var(--surface);box-shadow:0 2px 10px rgba(33,54,51,.09)}.status-pill{justify-self:end;color:var(--muted);font-size:12px}.view{min-height:calc(100vh - 76px)}.teacher-view{display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:76px;height:calc(100vh - 76px);display:flex;flex-direction:column;padding:22px 18px;border-right:1px solid var(--line);background:rgba(248,248,243,.58)}.sidebar-heading,.workspace-head,.dialog-head,.session-actions,.task-head,.field-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.sidebar-heading{font-weight:700;margin-bottom:12px}.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:22px;line-height:1}.task-navigation{display:flex;flex-direction:column;gap:7px;overflow:auto}.task-nav-item{display:grid;grid-template-columns:27px 1fr auto;align-items:center;gap:8px;width:100%;padding:10px;border:1px solid transparent;border-radius:11px;text-align:left;background:transparent}.task-nav-item.is-active{border-color:var(--line);background:var(--surface)}.task-nav-item i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#dfe6e1;font-style:normal;font-size:12px}.task-nav-item small{color:var(--muted)}.score-total{display:flex;justify-content:space-between;margin-top:auto;padding:18px 5px;border-top:1px solid var(--line)}.workspace{width:min(960px,calc(100% - 48px));margin:0 auto;padding:42px 0 100px}.workspace-head{align-items:flex-start;margin-bottom:30px}.eyebrow{display:block;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.title-input{display:block;width:min(580px,70vw);padding:3px 0;border:0;border-bottom:1px solid transparent;background:transparent;font-size:clamp(28px,4vw,44px);font-weight:700;outline:0}.title-input:focus{border-color:var(--ink)}.actions,.dialog-actions,.code-tools{display:flex;gap:10px;align-items:center}.primary,.secondary,.file-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border-radius:10px;font-weight:700;text-decoration:none}.primary{border:1px solid var(--ink);color:#fff;background:var(--ink)}.secondary{border:1px solid var(--line);background:var(--surface)}.wide{width:100%}.field-label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:var(--muted)}textarea,input{border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px 12px;outline:none}textarea:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(49,93,85,.1)}textarea{resize:vertical}.task-editor{margin-top:26px}.task-card{padding:25px;border:1px solid var(--line);border-radius:18px;background:rgba(248,248,243,.88);box-shadow:var(--shadow)}.task-head{align-items:flex-start}.task-number{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border-radius:12px;background:#dfe6e1;font-weight:700}.task-title{flex:1;font-size:22px;font-weight:700}.be-field{width:92px}.task-card textarea{width:100%;margin-top:20px;min-height:120px}.field-config{display:grid;grid-template-columns:1fr 150px auto;gap:12px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.danger-link{border:0;color:var(--danger);background:transparent;padding:10px}.student-landing{width:min(620px,calc(100% - 40px));margin:0 auto;padding:11vh 0;text-align:center}.landing-icon{width:100px;height:100px}.student-landing h1{font-size:clamp(34px,6vw,58px);margin:12px 0}.student-landing p{color:var(--muted);font-size:17px}.file-button{position:relative;overflow:hidden;margin-top:18px}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.privacy-note{font-size:12px!important}.student-project{width:min(900px,calc(100% - 40px));margin:0 auto;padding:48px 0 120px}.project-header{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;padding-bottom:28px;border-bottom:1px solid var(--line)}.project-header h1{font-size:clamp(32px,5vw,52px);margin:4px 0}.session-clock{font-variant-numeric:tabular-nums;font-weight:700}.student-intro{font-size:18px;color:var(--muted);margin:28px 0 38px;white-space:pre-wrap}.student-tasks{display:flex;flex-direction:column;gap:25px}.student-task{padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.student-task header{display:flex;justify-content:space-between;gap:20px}.student-task h2{margin:0}.student-task .instruction{white-space:pre-wrap;color:#43534f}.student-answer{display:block;width:100%;min-height:180px;overflow:hidden;resize:none;margin-top:20px;line-height:1.7;font-size:17px}.student-answer:disabled{color:#69736f;background:#f0f0ea}.word-counter{text-align:right;color:var(--muted);font-size:12px;margin-top:6px}.word-counter.is-over{color:var(--danger);font-weight:700}dialog{width:min(720px,calc(100% - 32px));border:0;border-radius:20px;padding:0;background:var(--surface);box-shadow:0 30px 100px rgba(20,34,32,.25)}dialog::backdrop{background:rgba(20,34,32,.36);backdrop-filter:blur(3px)}.dialog-card{padding:28px}.dialog-card h2{margin:4px 0;font-size:30px}.dialog-card.compact{width:100%}.code-tools{flex-wrap:wrap;margin:22px 0}.code-tools input{width:90px}.code-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:340px;overflow:auto;padding:4px}.code-entry{display:flex;gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px}.code-entry.is-used{text-decoration:line-through;color:var(--muted);background:#ecece6}.dialog-actions{justify-content:flex-end;margin-top:24px}.error{min-height:20px;color:var(--danger);font-size:13px}.focus-warning{position:fixed;z-index:90;right:22px;bottom:22px;display:flex;flex-direction:column;padding:16px 20px;border-radius:14px;color:#fff;background:#8a5b31;box-shadow:var(--shadow)}.lock-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;text-align:center;background:var(--paper)}.lock-screen>div{width:min(480px,100%)}.lock-screen img{width:90px}.lock-screen h1{font-size:42px;margin:8px}.lock-screen .field-label{margin:25px auto 12px;text-align:left;max-width:300px}.toast{position:fixed;z-index:110;left:50%;bottom:24px;transform:translateX(-50%);padding:12px 18px;border-radius:10px;color:#fff;background:var(--ink);box-shadow:var(--shadow)}[hidden]{display:none!important}@media(max-width:760px){.topbar{grid-template-columns:1fr auto}.status-pill{display:none}.mode-switch button{padding:8px 10px}.teacher-view{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.task-navigation{flex-direction:row}.score-total{margin-top:15px}.workspace{width:calc(100% - 30px);padding-top:28px}.workspace-head,.project-header{flex-direction:column}.field-config{grid-template-columns:1fr}.title-input{width:100%}.project-header{align-items:stretch}.session-actions{justify-content:space-between}}@media print{.topbar,.sidebar,.actions{display:none}.teacher-view{display:block}.workspace{width:100%}}
