:root{font-family:Arial,Helvetica,sans-serif;color:#203136;background:#eef2f4;--ink:#203136;--muted:#4d6570;--line:#c6d4da;--accent:#006c7a;--error:#a33620;--radius:5px}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation;min-height:44px}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{color:var(--ink);background:#fff;border:1px solid #829ba5;border-radius:var(--radius);padding:10px 12px;width:100%;font-size:15px;line-height:1.45;min-height:44px}textarea{resize:vertical}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--error);box-shadow:inset 3px 0 var(--error)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #b44520;outline-offset:4px}[hidden]{display:none!important}h1,h2,p{margin:0}p{line-height:1.6}button{border-radius:var(--radius);border:1px solid transparent}.skip{position:fixed;left:12px;top:-100px;z-index:100;background:white;padding:15px;color:var(--ink)}.skip:focus{top:12px}.app-header{background:white;display:flex;align-items:center;gap:30px;padding:20px 3%;border-bottom:1px solid var(--line)}.brand{display:flex;gap:11px;align-items:center;color:var(--accent);text-decoration:none;font-size:24px;letter-spacing:-.8px;white-space:nowrap}.brand strong{font-weight:650}.brand svg{width:34px;height:34px}.app-header>p{font-size:14px;color:var(--muted)}.session-note{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap;border-left:1px solid var(--line);padding-left:20px}main{max-width:1620px;margin:auto;padding:0 3%}.workbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0}.mode-switch{display:flex;background:#dce6eb;padding:4px;border-radius:7px;gap:3px}.mode-switch button{background:transparent;color:var(--ink);padding:10px 18px;font-size:14px;font-weight:600}.mode-switch [aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #16384522}.file-actions{display:flex;gap:10px}.primary{background:var(--accent);color:white;padding:10px 17px;font-weight:600;font-size:14px}.primary:hover{background:#005462}.secondary{background:white;color:var(--ink);border-color:#829ba5;padding:10px 15px;font-size:14px}.secondary:hover{background:#f3f8fa}.app-message{font-size:13px;min-height:0;margin-bottom:0;overflow-wrap:anywhere}.app-message:not(:empty){margin-bottom:18px;padding:12px 15px;border-left:3px solid var(--accent);background:white}.workbench{display:grid;grid-template-columns:365px minmax(0,1fr);gap:24px;align-items:start}.editor{padding:24px;background:#fff;border:1px solid var(--line);border-radius:6px}.editor-heading h1{font-size:22px;letter-spacing:-.5px}.editor-heading p{font-size:13px;color:var(--muted);margin-top:7px}.draft-actions{display:flex;gap:19px;margin:12px 0}.text-button{padding:0;background:none;font-size:13px;color:var(--accent);text-decoration:underline;text-underline-offset:4px;min-height:36px}.field{margin-top:20px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.field label span{font-size:11px;font-weight:400;color:var(--muted);display:block;margin-top:4px}.hint{font-size:12px;color:var(--muted);margin-top:8px}.field-error{font-size:12px;color:var(--error);margin-top:7px}.values-editor{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0;padding:20px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{font-size:15px}.section-heading span{font-size:12px;color:var(--muted)}.row-editor{display:grid;grid-template-columns:minmax(0,1fr) 98px;gap:7px 10px;margin-top:18px;padding-bottom:14px;border-bottom:1px solid #dce5e9}.row-editor label{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.row-editor input{padding:9px;font-size:14px}.row-tools{grid-column:1/-1;display:flex;align-items:center;gap:8px}.row-tools button{background:#edf3f6;border:1px solid #c6d4da;min-width:38px;min-height:33px;font-size:12px;color:var(--ink)}.row-tools .remove-row{margin-left:auto;background:white;padding:4px 9px;text-decoration:underline;text-underline-offset:3px}.row-editor .field-error{grid-column:1/-1;margin:0}.add-row{width:100%;margin-top:14px;border:1px dashed #6a929e;background:#edf5f7;color:var(--accent);font-size:14px}.import-area{border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.import-area button{width:100%}.preview-area{background:white;border:1px solid var(--line);border-radius:6px;min-width:0;overflow:hidden}.preview-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#f7fafb;border-bottom:1px solid var(--line);padding:14px 28px}.preview-bar h2{font-size:13px;font-weight:600;color:var(--muted)}.preview-bar span{font-size:12px;color:var(--accent);text-align:right}.preview-area>.lesson{padding:30px}.preview-errors{padding:32px}.preview-errors h2{font-size:24px;line-height:1.3}.preview-errors p{margin-top:15px;max-width:650px;color:var(--muted)}.preview-errors ul{padding-left:20px;margin:22px 0;line-height:1.6}.preview-errors li{margin-bottom:12px}.preview-errors a{color:var(--error);text-underline-offset:3px}.workbench.student-only{display:block;max-width:1120px;margin:auto}.workbench.student-only .preview-bar{background:#e7f2f5}.help{max-width:1050px;margin:36px auto;display:grid;grid-template-columns:1fr 1fr;gap:25px;font-size:13px;color:var(--muted)}.help details{border-top:1px solid #b3c6cf;padding-top:5px}.help summary{padding:12px 0;cursor:pointer;font-weight:600;min-height:44px;color:var(--ink)}.help p{margin:12px 0}.app-footer{display:flex;gap:30px;justify-content:space-between;font-size:11px;padding:24px 3%;background:white;border-top:1px solid var(--line);color:var(--muted)}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100% - 30px);padding:15px 20px;background:#203c46;color:white;border-radius:5px;font-size:13px;box-shadow:0 5px 25px #203c4633;z-index:20;line-height:1.5}dialog{max-width:570px;width:calc(100% - 34px);border:1px solid #6a929e;border-radius:8px;padding:30px;color:var(--ink)}dialog::backdrop{background:#0e303a88}dialog h2{font-size:24px}dialog p{font-size:14px;color:var(--muted);margin-top:16px}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:10px;margin-top:24px}
@media(max-width:1100px){.workbench{grid-template-columns:330px minmax(0,1fr);gap:18px}.editor{padding:20px}.preview-area>.lesson{padding:25px}.app-header>p{max-width:220px}.preview-area .representations{grid-template-columns:1fr}.workbench.student-only .representations{grid-template-columns:1fr 1fr}.file-actions button{font-size:13px;padding:10px 12px}}
@media(max-width:850px){.workbench{grid-template-columns:1fr}.editor{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.editor-heading,.values-editor,.import-area{grid-column:1/-1}.values-editor #rows{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.preview-area .representations{grid-template-columns:1fr 1fr}.workbar{flex-wrap:wrap;gap:16px}.session-note{display:none}.app-header>p{max-width:none;margin-left:auto}.help{grid-template-columns:1fr;gap:15px}.app-footer{flex-direction:column;gap:8px}}
@media(max-width:600px){.app-header{padding:16px 5%;gap:15px;align-items:start;flex-wrap:wrap}.app-header>p{margin-left:0;font-size:12px;width:100%}.brand{font-size:23px}main{padding:0 4%}.workbar{padding:18px 0}.mode-switch{width:100%;justify-content:space-between}.mode-switch button{flex:1;padding:10px;font-size:13px}.file-actions{width:100%;gap:8px}.file-actions button{flex:1;font-size:12px}.editor{display:block;padding:22px 18px}.values-editor #rows{display:block}.row-editor{grid-template-columns:minmax(0,1fr) 110px}.row-editor input,input,textarea,select{font-size:16px}.row-tools button{min-height:42px;min-width:44px}.preview-bar{padding:14px 18px;align-items:start}.preview-area>.lesson{padding:25px 18px}.preview-area .representations,.workbench.student-only .representations{grid-template-columns:1fr}.preview-errors{padding:24px 18px}.preview-errors h2{font-size:22px}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%}.app-footer{padding:22px 5%}}
@media(prefers-reduced-motion:no-preference){.primary,.secondary,.mode-switch button{transition:background-color 120ms ease}}
