:root{--ink:#173f40;--muted:#687d7b;--green:#12776b;--line:#dce5e1;--paper:#fff;--wash:#f2f6f4;--accent:#c8f0dd;font-family:Arial,Helvetica,system-ui,sans-serif;color:var(--ink);background:var(--wash);font-synthesis:none;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:var(--green)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #77b6aa;outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1{font-size:clamp(1.65rem,3vw,2.3rem);line-height:1.16;letter-spacing:-.04em;margin-bottom:20px}h2{font-size:1.4rem;line-height:1.25;letter-spacing:-.025em;margin-bottom:18px}h3{font-size:1.05rem;margin-bottom:10px}h4{font-size:1rem;margin:18px 0 8px}p{margin-bottom:18px}small{font-size:.82rem}svg text{font-family:Arial,Helvetica,system-ui,sans-serif}fieldset{border:0;padding:0;margin:22px 0}legend{font-weight:600;margin-bottom:12px}label{display:flex;flex-direction:column;font-size:.93rem;font-weight:600;gap:8px;margin-bottom:18px}input:not([type=checkbox]),select{width:100%;min-height:48px;background:#fff;border:1px solid #cddbd5;border-radius:9px;color:var(--ink);padding:10px 13px;font-weight:400}input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--green)}input::placeholder{color:#8b9a96}button{border:0}button,a{transition:background .15s,color .15s}button:disabled:hover{filter:none}.site-shell{max-width:1340px;margin:0 auto;padding:0 38px 30px}.site-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 0;margin-bottom:18px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);font-weight:750;font-size:1.5rem;text-decoration:none;line-height:1.15}.brand small{display:block;font-weight:400;color:var(--muted);font-size:.88rem;margin-top:4px}.brand-symbol{display:grid;place-items:center;width:48px;height:52px;background:var(--ink);color:var(--accent);border-radius:12px;font-size:1.8rem}.top-tabs{display:flex;gap:4px;padding:5px;background:#e6eeea;border-radius:12px}.tab{padding:10px 16px;background:transparent;color:var(--muted);border-radius:8px;font-size:.94rem}.tab.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px #183c3512}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:30px}.eyebrow{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;color:var(--green);font-weight:700;margin-bottom:14px}.intro{color:var(--muted);max-width:590px;line-height:1.6}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border-radius:9px;padding:11px 18px;text-decoration:none;font-weight:600;line-height:1.3}.primary{background:var(--green);color:#fff;border:1px solid var(--green)}.primary:hover{background:#096054}.secondary{background:#fff;border:1px solid #cddcd6;color:var(--ink)}.secondary:hover{background:#eff6f2}.full{width:100%}.text-button{background:transparent;color:var(--green);padding:6px 2px;font-size:.88rem;text-decoration:underline;text-underline-offset:3px}.muted-text,.fine-print{color:var(--muted)}.fine-print{font-size:.85rem;line-height:1.55;margin-top:14px}.pill{display:inline-block;border:1px solid #b5d3c6;background:#f2faf6;color:var(--green);border-radius:30px;padding:5px 11px;font-size:.78rem;white-space:nowrap}.entry-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);max-width:1000px;margin:35px auto 60px;gap:55px;align-items:start}.entry-panel{padding:34px}.entry-aside{padding-top:25px}.entry-aside h2{font-size:1.8rem;margin:22px 0}.sample-card{border-top:1px solid var(--line);padding:22px 0 4px}.sample-card>div{display:flex;align-items:center;gap:12px}.sample-number{font-family:monospace;color:#688f80;font-size:1.1rem}.sample-card p{margin-top:12px;color:var(--muted);font-size:.95rem}.code-input{font-family:monospace;letter-spacing:.12em;text-transform:uppercase}.entry-panel .fine-print{margin-bottom:0}.error-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#ffefee;color:#9f302c;padding:16px 22px;border:1px solid #efd0cb;border-radius:12px;margin-bottom:20px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);background:#183f3a;color:#fff;border-radius:12px;padding:14px 24px;z-index:30;box-shadow:0 8px 30px #163b4026;max-width:calc(100vw - 28px);width:max-content}.work-layout{display:grid;grid-template-columns:265px minmax(0,1fr);gap:22px;align-items:start}.work-sidebar{padding:24px;position:sticky;top:20px}.work-sidebar h1{font-size:1.3rem;letter-spacing:-.02em;overflow-wrap:anywhere}.work-sidebar p{font-size:.95rem}.work-time{font-size:2rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:18px}.work-time small{display:block;font-size:.77rem;letter-spacing:0;color:var(--muted)}.progress-label{font-size:.83rem;color:var(--muted);margin-bottom:12px}.question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:22px}.question-jump{height:37px;border-radius:7px;background:#f0f4f1;border:1px solid #e1e9e5;color:#69827a;font-size:.88rem}.question-jump.filled{background:#c9ecdc;color:#225b4c}.question-jump.current{border:2px solid var(--green);color:var(--green);font-weight:700}.save-state{font-size:.8rem;display:block;margin:12px 0 2px;color:var(--muted)}.question-panel{padding:28px;min-width:0}.question-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.question-heading .eyebrow{margin-bottom:0}.question-panel h2{font-size:1.65rem}.structure-display{display:block;width:100%;max-height:330px;min-height:140px;margin:10px auto 22px}.answer-label{margin-top:20px}.answer-label input{font-size:1.1rem}.substance-name{background:#eff7f2;border-left:3px solid #8acdb1;padding:16px 18px;font-size:clamp(1.2rem,3vw,1.55rem);font-weight:650;overflow-wrap:anywhere;border-radius:0 10px 10px 0;margin-bottom:24px}.question-nav{display:flex;justify-content:space-between;gap:12px;margin-top:25px;border-top:1px solid var(--line);padding-top:22px}.editor{margin-bottom:22px}.editor-toolbar,.template-toolbar{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin-bottom:10px}.editor-toolbar{padding-bottom:12px;border-bottom:1px solid var(--line)}.tool{padding:9px 10px;min-height:41px;background:#f4f7f4;border:1px solid #d6e2db;border-radius:7px;font-size:.8rem;color:var(--ink)}.tool.active{background:#daf1e5;border-color:var(--green);font-weight:650;color:var(--green)}.tool-group{display:flex;gap:4px}.compact-label{font-size:.71rem;gap:3px;margin:0;color:var(--muted)}.compact-label select{min-height:41px;width:auto;font-size:.8rem;padding:8px 10px}.draw-canvas{display:block;width:100%;height:auto;min-height:280px;background:#fafcfb;border:1px solid #ccddd2;border-radius:12px;-webkit-user-select:none;user-select:none}.draw-canvas g[role=button]{cursor:pointer}.editor-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin-top:10px;font-size:.77rem;color:var(--muted)}.editor-help{margin-top:10px;font-size:.85rem;color:var(--muted)}.editor-help summary{color:var(--green);cursor:pointer}.editor-help p{margin:12px 0}.notice{padding:12px 14px;background:#fff7e8;border:1px solid #ecdeb7;border-radius:8px;font-size:.87rem;color:#795c2b}.blank-structure{padding:30px;color:var(--muted);text-align:center}.completed{max-width:1000px;margin:35px auto}.score-display{display:flex;align-items:center;gap:13px;margin:27px 0}.score-display strong{font-size:4.5rem;line-height:1;color:var(--green);letter-spacing:-.07em}.score-display span{font-size:1.5rem;color:var(--muted)}.score-display small{display:block;font-size:.9rem}.receipt{background:#eef6f1;border-radius:10px;padding:16px 20px;margin:20px 0}.receipt small{color:var(--muted)}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.review-list{margin:26px 0}.review-item{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}.review-item summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px 18px;cursor:pointer;font-size:.9rem;background:#fcfdfc}.result-badge{padding:3px 8px;background:#edf1ee;border-radius:5px;color:var(--muted);font-size:.75rem}.correct{background:#d9f0e4;color:#267258}.wrong{background:#fae5df;color:#ab4933}.review-name{color:var(--muted);margin-left:auto;font-size:.82rem}.review-body{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:22px;border-top:1px solid var(--line)}.review-body>div{min-width:0}.review-body .structure-display{max-height:240px}.student-answer{overflow-wrap:anywhere}.teacher-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:32px 0}.teacher-heading .eyebrow{margin-bottom:8px}.teacher-heading h1{margin:0}.identity{display:flex;gap:15px;align-items:center;font-size:.86rem}.teacher-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;align-items:start}.create-panel h2{margin-bottom:24px}.class-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-choice{display:flex;flex-direction:row;align-items:center;gap:8px;font-weight:400;font-size:.85rem;margin:0;padding:7px 0}.check-choice span{display:flex;gap:8px;justify-content:space-between;width:100%;align-items:center}.check-choice small{color:#8a9c93;font-size:.72rem}.difficulty-choices{display:flex;gap:20px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.review-choice{margin:18px 0}.create-panel form>small{display:block;margin-top:-10px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-title h2{margin:0}.assignment-card{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:11px;margin-bottom:12px;padding:18px;background:#fff;color:var(--ink)}.assignment-card.selected{border:2px solid #559c80;padding:17px;background:#f6fbf7}.assignment-card>div{display:flex;justify-content:space-between;align-items:start;gap:12px}.assignment-card strong{font-size:.98rem}.assignment-card p{margin:10px 0 4px;font-size:.83rem;color:var(--muted)}.assignment-card small{font-size:.75rem;color:var(--muted)}.assignment-code{font-family:monospace;font-weight:700;color:var(--ink);font-size:.95rem}.status{font-size:.7rem;padding:3px 7px;border-radius:5px;background:#eaf0ed;color:var(--muted);flex-shrink:0}.status.open{background:#d9f0e5;color:var(--green)}.empty-state{text-align:center;border:1px dashed #c7d7cc;border-radius:10px;padding:38px 22px;color:var(--muted);font-size:.9rem}.results-panel{margin:24px 0}.code-tag{font:700 1.6rem monospace;letter-spacing:.09em;background:#e2f4e9;padding:10px 16px;border-radius:10px}.sharing-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sharing-row input{flex:1;min-width:220px;font-size:.86rem}.results-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:24px 0 15px;font-size:.9rem}.results-tools>div{display:flex;align-items:center;gap:16px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem;white-space:nowrap}th{text-align:left;background:#f0f5f1;color:var(--muted);font-size:.8rem;font-weight:600}th,td{padding:13px 15px;border-bottom:1px solid var(--line)}td small{display:block;color:var(--muted);font-size:.76rem}.student-detail{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}.sign-in-panel{max-width:700px;margin:60px auto;padding:40px}.modal-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#102b36a6;z-index:50}.confirm-dialog{background:#fff;border-radius:18px;padding:32px;max-width:560px;box-shadow:0 20px 90px #0002}.site-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:26px 0 0;border-top:1px solid var(--line);color:#789087;font-size:.77rem;margin-top:45px}@media(max-width:1000px){.site-shell{padding:0 22px 25px}.work-layout{grid-template-columns:215px minmax(0,1fr)}.panel{padding:24px}.entry-grid{gap:26px}.work-sidebar{padding:20px}.question-grid{grid-template-columns:repeat(4,1fr)}.teacher-grid{grid-template-columns:1fr}.assignments-panel{max-height:600px;overflow:auto}}@media(max-width:700px){.site-shell{padding:0 14px 20px}.site-header{align-items:start;flex-direction:column;gap:18px;padding:22px 2px}.brand{font-size:1.3rem}.brand small{font-size:.8rem}.brand-symbol{width:40px;height:44px;font-size:1.5rem}.top-tabs{width:100%;justify-content:space-between}.tab{flex:1;padding:10px 7px;font-size:.85rem}.entry-grid{grid-template-columns:1fr;margin:25px auto;gap:5px}.entry-aside{padding:24px 7px}.entry-panel{padding:25px}.work-layout{grid-template-columns:1fr}.work-sidebar{position:static;padding:20px}.work-sidebar h1{font-size:1.15rem;margin-bottom:10px}.work-sidebar p{margin-bottom:10px}.work-time{font-size:1.4rem;padding:10px 0;margin-bottom:12px}.question-grid{grid-template-columns:repeat(8,1fr);gap:5px;margin-bottom:15px}.question-jump{height:34px}.work-sidebar>.secondary{min-height:42px}.work-sidebar .text-button,.save-state{display:inline-block;margin-right:12px}.question-panel{padding:20px 16px}.question-panel h2{font-size:1.4rem}.structure-display{max-height:300px}.question-heading .pill{font-size:.7rem}.eyebrow{font-size:.71rem}.tool{min-height:43px;padding:10px;font-size:.78rem}.tool-group{width:100%}.tool-group button{flex:1}.compact-label select{min-height:43px}.draw-canvas{min-height:245px}.editor-foot{font-size:.72rem}.editor-help{font-size:.82rem}.teacher-heading{align-items:start;flex-direction:column;gap:14px}.class-choices{gap:4px 10px}.check-choice{font-size:.78rem}.difficulty-choices{gap:12px}.results-panel{padding:22px 16px}.code-tag{font-size:1rem;padding:8px}.results-tools{align-items:start;flex-direction:column}.results-tools>div{flex-wrap:wrap;gap:12px}.review-body{grid-template-columns:1fr;gap:12px;padding:18px}.review-name{margin-left:0;width:100%}.completed{margin:25px 0;padding:24px 18px}.review-item summary{padding:13px}.score-display strong{font-size:3.5rem}.sign-in-panel{padding:28px 24px;margin:30px auto}.site-footer{font-size:.72rem}.button-row>*{flex:1}.sharing-row>.secondary{flex:1}}@media print{.site-header,.top-tabs,.site-footer,.button-row,.toast,.error-banner,.completed>.primary{display:none}.site-shell{padding:0;max-width:none}.completed{border:0;margin:0}.review-item{break-inside:avoid}.review-item .review-body{display:block}.panel{box-shadow:none}.site-shell{background:#fff}.structure-display{max-height:180px}}.canvas-scroll{overflow-x:auto;max-width:100%;border:1px solid #ccddd2;border-radius:12px;overscroll-behavior-x:contain}.canvas-scroll .draw-canvas{min-width:800px;min-height:0;border:0;border-radius:0;aspect-ratio:5/3}.canvas-hint{display:block;margin-top:8px;color:var(--muted);font-size:.75rem}.formula-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.formula-scroll .structure-display{margin-bottom:10px}.work-time.no-timer{font-size:1.12rem;letter-spacing:0;line-height:1.5}.brand{min-width:0;max-width:100%;font-size:clamp(1.05rem,2vw,1.3rem)}.brand-symbol{flex-shrink:0}.brand-name{min-width:0;overflow-wrap:anywhere;line-height:1.35}.brand-full{overflow-wrap:anywhere}@media print{.formula-scroll{overflow:visible}.formula-scroll .structure-display{min-width:0!important;height:180px!important}}
