@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{color:#27352f;font-synthesis:none;--ink:#27352f;--cream:#f4efe4;--paper:#fffaf0;--terra:#a94f32;--forest:#315b4a;--line:#d9cebc;background:#f4efe4;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--terra);font-size:.72rem;font-weight:600}h1,h2{color:var(--ink);margin:0;font-family:Fraunces,serif}.login-layout{grid-template-columns:1.15fr .85fr;min-height:100vh;display:grid}.login-story{background:var(--forest);color:#f9f0df;flex-direction:column;justify-content:center;padding:9vw 8vw;display:flex;position:relative;overflow:hidden}.login-story .eyebrow{color:#eebd91}.login-story h1{letter-spacing:-.045em;color:#fff8e9;max-width:900px;margin:24px 0;font-size:clamp(2.8rem,5vw,5.8rem);line-height:.98}.login-story p{color:#d9e2d8;max-width:540px;font-size:1.08rem;line-height:1.7}.terrain{opacity:.35;height:35%;position:absolute;inset:auto -8% -12% 0}.terrain i{background:#6e8669;border-radius:50% 50% 0 0;height:75%;position:absolute;inset:auto 0 0}.terrain i:nth-child(2){background:#c4734f;height:100%;left:25%}.terrain i:nth-child(3){background:#e1ad72;height:65%;left:55%}.login-panel{background:radial-gradient(circle at 80% 15%, #efd8b3 0, transparent 28%), var(--cream);place-items:center;padding:40px;display:grid}.login-card{border:1px solid var(--line);background:#fffaf0e6;width:min(430px,100%);padding:48px;box-shadow:0 30px 80px #4032231f}.seal{background:var(--terra);color:#fff;border-radius:50%;place-items:center;width:54px;height:54px;font-family:Fraunces,serif;display:grid}.login-card h2{margin:8px 0 30px;font-size:2.25rem}.login-card form{gap:20px;display:grid}.login-card label{gap:8px;font-size:.86rem;font-weight:600;display:grid}.login-card input{border:1px solid var(--line);color:var(--ink);background:#fffef9;outline:none;padding:14px 16px}.login-card input:focus{border-color:var(--forest);box-shadow:0 0 0 3px #315b4a1f}.primary-button{background:var(--terra);color:#fff;border:0;padding:14px 20px;font-weight:600}.primary-button:disabled{opacity:.6}.modal-backdrop{z-index:1000;background:#18241fad;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-dialog{background:var(--paper);border:1px solid var(--line);width:min(760px,100%);max-height:calc(100vh - 48px);padding:28px;overflow-y:auto;box-shadow:0 30px 80px #18241f59}.modal-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.modal-close{border:1px solid var(--line);width:42px;height:42px;color:var(--ink);background:0 0;font-size:1.5rem}.modal-dialog .entity-form{box-shadow:none;border:0;margin:0;padding:0}.form-error{color:#9d392b;margin:0;font-size:.86rem}.admin-shell{grid-template-columns:270px 1fr;min-height:100vh;display:grid}.admin-shell aside{background:var(--forest);color:#fff;flex-direction:column;align-self:start;height:100vh;padding:32px 22px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:12px;margin-bottom:56px;display:flex}.brand .seal{width:42px;height:42px}.admin-shell nav{gap:8px;display:grid}.admin-shell nav button,.sign-out{color:#dbe5dc;text-align:left;background:0 0;border:0;justify-content:space-between;padding:13px 14px;display:flex}.admin-shell nav button.active{color:var(--ink);background:#f5ead8}.sign-out{margin-top:auto}.dashboard{background:linear-gradient(135deg,#f7f1e6,#eee4d2);min-width:0;padding:clamp(30px,5vw,72px)}.dashboard header{justify-content:space-between;align-items:end;margin-bottom:48px;display:flex}.dashboard header h1{font-size:clamp(2.4rem,4vw,4.5rem)}.role-chip{border:1px solid var(--line);background:var(--paper);text-transform:capitalize;padding:8px 14px}.welcome-grid{grid-template-columns:2fr 1fr;gap:24px;display:grid}.hero-card,.status-card{background:var(--paper);border:1px solid var(--line);padding:clamp(28px,4vw,56px)}.hero-card h2{margin:14px 0;font-size:clamp(2rem,3vw,3.4rem)}.hero-card p,.status-card p{color:#65716b;line-height:1.7}.hero-card .primary-button{margin-top:20px}.status-dot{background:#4d9c70;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block}@media (width<=850px){.login-layout{grid-template-columns:1fr}.login-story{min-height:42vh;padding:60px 28px}.login-panel{padding:24px}.login-card{padding:32px}.admin-shell{grid-template-columns:1fr}.admin-shell aside{padding:18px;display:block}.brand{margin-bottom:18px}.admin-shell nav{display:flex;overflow:auto}.sign-out{position:absolute;top:18px;right:18px}.welcome-grid{grid-template-columns:1fr}}.brand{color:#fff;text-decoration:none}.admin-shell nav a,.sign-out{color:#dbe5dc;text-align:left;background:0 0;border:0;justify-content:space-between;padding:13px 14px;text-decoration:none;display:flex}.admin-shell nav a.active{color:var(--ink);background:#f5ead8}.button-link{text-decoration:none;display:inline-block}.page-lead{color:#65716b;margin:10px 0 0}.notice{background:#f8ddd5;padding:12px 16px}.entity-form{background:var(--paper);border:1px solid var(--line);margin-bottom:28px;padding:32px}.entity-form h2{margin-bottom:22px;font-size:1.8rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px;display:grid}.form-grid label{gap:7px;font-size:.82rem;font-weight:600;display:grid}.form-grid input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;padding:12px 14px}.entity-list{gap:14px;display:grid}.school-row{background:var(--paper);border:1px solid var(--line);grid-template-columns:minmax(220px,1.5fr) 1fr 1fr;align-items:center;gap:24px;padding:25px 28px;display:grid}.school-row h2{margin:6px 0;font-size:1.45rem}.school-row p{color:#68736d;margin:0}.status-pill{text-transform:uppercase;letter-spacing:.12em;color:#315b4a;background:#dbe9dc;padding:4px 8px;font-size:.65rem}.status-pill.suspended{color:#8d382d;background:#f2d5cf}.metric{gap:6px;display:grid}.metric span{text-transform:uppercase;letter-spacing:.1em;color:#7c817d;font-size:.73rem}.metric i{background:#e6ddce;height:5px;overflow:hidden}.metric i b{background:var(--terra);height:100%;display:block}.empty-state{text-align:center;background:var(--paper);border:1px dashed var(--line);padding:70px}@media (width<=850px){.form-grid,.school-row{grid-template-columns:1fr}.dashboard header{align-items:flex-start;gap:20px}}.form-grid select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;padding:12px 14px}.resource-row{background:var(--paper);border:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px 26px;display:grid}.resource-row h2{margin-bottom:5px;font-size:1.25rem}.resource-row p{color:#69736e;margin:0}.avatar{width:48px;height:48px;color:var(--forest);background:#dbe6d9;border-radius:50%;place-items:center;font-weight:700;display:grid}.student-avatar{color:#8d4b32;background:#efd8bc}.group-avatar{background:var(--forest);color:#fff;border-radius:4px}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;display:grid}.level-tile{background:var(--paper);border:1px solid var(--line);flex-direction:column;justify-content:space-between;min-height:150px;padding:24px;display:flex}.level-tile span{text-transform:uppercase;letter-spacing:.12em;color:var(--terra);font-size:.72rem}.level-tile h2{font-size:2.5rem}.compact-form{margin-bottom:0}.header-actions,.button-row,.row-actions{align-items:center;gap:10px;display:flex}.secondary-button{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:13px 18px;font-weight:600}.text-button{color:var(--forest);background:0 0;border:0;padding:6px;font-size:.78rem;font-weight:600}.text-button.danger{color:#9d392b}.row-actions{justify-content:flex-end}.helper-copy{color:#68736d;margin:-10px 0 20px}.student-search{background:var(--paper);border:1px solid var(--line);gap:8px;padding:18px;font-size:.8rem;font-weight:600;display:grid}.student-search input{border:1px solid var(--line);background:#fff;padding:12px 14px}.csv-import{gap:18px;display:grid}.csv-import .helper-copy{margin:0}.csv-import .file-input{gap:8px;font-weight:600;display:grid}.csv-preview{gap:8px;max-height:340px;display:grid;overflow-y:auto}.csv-preview-heading,.csv-row{border:1px solid var(--line);background:#fff;grid-template-columns:90px repeat(3,1fr);align-items:center;gap:10px;padding:10px;font-size:.78rem;display:grid}.csv-preview-heading{grid-template-columns:1fr auto}.csv-row ul,.csv-row .status-pill{grid-column:1/-1;margin:0}.csv-row ul{color:#9d392b}.compact-form small{color:#7c817d;font-weight:400}.section-heading{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.member-line{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:13px 0;display:flex}.member-line small{color:#7c817d;margin-left:8px}.membership-state{color:var(--forest);text-transform:uppercase;background:#dce8dc;margin-left:10px;padding:3px 6px;font-size:.58rem;font-style:normal;display:inline-block}.membership-state.revoked{color:#913e2e;background:#f1d9d0}.operation-strip{border:1px solid var(--line);background:var(--line);grid-template-columns:1fr 1fr 1.1fr;gap:1px;margin-bottom:24px;display:grid}.operation-strip article{background:var(--paper);padding:24px 26px}.operation-strip article>span{color:#777;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem;font-weight:600}.operation-strip strong{margin:12px 0 10px;font-family:Fraunces,serif;font-size:2.3rem;display:block}.operation-strip strong small{color:#777;font-family:DM Sans,sans-serif;font-size:.8rem}.operation-strip i{background:#e5dccd;height:5px;display:block}.operation-strip i b{background:var(--terra);height:100%;display:block}.operation-strip p{color:#68736d;margin:9px 0 0;font-size:.72rem}.school-identity strong{color:var(--forest);font-size:1.75rem}.settings-sheet{border:1px solid var(--line);background:var(--line);gap:1px;width:min(900px,100%);display:grid}.plan-sheet{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fffdf8 0%,#f0eadc 100%);border-radius:18px;margin-bottom:24px;padding:28px}.plan-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.plan-heading h2{font-family:var(--serif);margin:5px 0 7px;font-size:2rem}.plan-heading p{color:var(--muted);margin:0}.subscription-state{color:var(--ink);text-transform:uppercase;letter-spacing:.08em;background:#e7e0d2;border-radius:999px;padding:8px 12px;font-size:.72rem;font-weight:800}.subscription-state.active,.subscription-state.trialing{color:#304238;background:#d9e5d9}.subscription-state.past_due{color:#79551e;background:#f1dfba}.subscription-state.canceled{color:#873f2c;background:#eed9d2}.plan-capacity{grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0;display:grid}.plan-capacity div{border-left:2px solid var(--terra);padding:4px 14px}.plan-capacity span{color:var(--muted);font-size:.75rem;display:block}.plan-capacity strong{font-family:var(--serif);margin-top:4px;font-size:1.35rem;display:block}.plan-modules{flex-wrap:wrap;gap:8px;display:flex}.plan-modules span{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:.7rem;font-weight:700}.plan-modules .included{color:#36563d;background:#edf4ec;border-color:#9db29f}.plan-modules .not-included{color:var(--muted);background:#f1eee7}.settings-sheet>section{background:var(--paper);padding:34px}.settings-sheet h2{margin:9px 0 25px;font-size:2rem}.setting-choice{border:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:16px;padding:20px;display:flex}.setting-choice input{width:20px;height:20px}.setting-choice span{gap:6px;display:grid}.setting-choice small{color:#68736d}.gamification-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.gamification-options label{border:1px solid var(--line);cursor:pointer;gap:8px;min-height:135px;padding:20px;display:grid}.gamification-options label.selected{border:2px solid var(--forest);background:#edf1e8}.gamification-options input{opacity:0;position:absolute}.gamification-options strong{font-family:Fraunces,serif;font-size:1.35rem}.gamification-options span{color:#68736d;font-size:.8rem;line-height:1.5}.settings-sheet footer{background:#eee2ca;justify-content:space-between;align-items:center;gap:20px;padding:20px 34px;display:flex}.settings-sheet footer>span{color:#68736d;font-size:.72rem}@media (width<=850px){.operation-strip,.gamification-options{grid-template-columns:1fr}.plan-heading{flex-direction:column}.plan-capacity{grid-template-columns:1fr}.settings-sheet footer{flex-direction:column;align-items:stretch}}.wide-field{grid-column:1/-1}.form-grid textarea,.exercise-card textarea{border:1px solid var(--line);min-height:110px;color:var(--ink);font:inherit;resize:vertical;background:#fff;padding:12px 14px}.content-workspace{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:22px;display:grid}.set-list{background:var(--forest);gap:8px;padding:22px;display:grid}.set-list .eyebrow{color:#eebd91;margin-bottom:8px}.set-list>button{color:#dce5de;text-align:left;background:0 0;border:0;gap:4px;padding:13px;display:grid}.set-list>button.selected{background:var(--paper);color:var(--ink)}.set-list small{opacity:.7;text-transform:capitalize}.content-editor{min-width:0}.editor-heading{background:var(--paper);border:1px solid var(--line);justify-content:space-between;align-items:center;padding:24px 28px;display:flex}.editor-heading h2{margin-top:8px}.generator-panel{border:1px solid var(--line);background:#eee2ca;padding:26px 28px}.generator-panel h3,.preview-list h3,.manual-panel h3{margin:0 0 18px;font-family:Fraunces,serif;font-size:1.5rem}.type-picker{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.type-picker label{background:var(--paper);border:1px solid var(--line);padding:8px 11px;font-size:.78rem}.type-picker input{margin-right:7px}.generator-controls{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.generator-controls label{gap:6px;font-size:.75rem;font-weight:600;display:grid}.generator-controls input[type=number]{border:1px solid var(--line);width:85px;padding:10px}.file-input{max-width:230px}.manual-panel{border:1px solid var(--line);background:var(--paper);border-top:0;grid-template-columns:190px 1fr;gap:20px;padding:22px 28px;display:grid}.manual-panel>div:last-child{flex-wrap:wrap;gap:7px;display:flex}.manual-panel .secondary-button{padding:9px 11px;font-size:.7rem}.preview-list{margin-top:20px}.exercise-card{background:var(--paper);border:1px solid var(--line);grid-template-columns:120px 1fr 1fr;gap:15px;margin-bottom:10px;padding:22px;display:grid;position:relative}.exercise-card>span{color:var(--terra);font-size:.72rem;font-weight:600}.exercise-card label{gap:6px;font-size:.72rem;font-weight:600;display:grid}.exercise-card label:first-of-type{grid-column:2/-1}.exercise-card input{border:1px solid var(--line);padding:11px}.remove-exercise{color:#9d392b;background:0 0;border:0;font-size:.68rem;position:absolute;top:12px;right:12px}.exercise-actions{gap:3px;display:flex;position:absolute;top:10px;right:10px}.exercise-actions button{border:1px solid var(--line);background:var(--paper);min-width:28px;height:28px;color:var(--forest);font-size:.68rem}.exercise-actions button:disabled{opacity:.3}.exercise-actions .remove-exercise{color:#9d392b;width:auto;position:static}.publish-bar{border:1px solid var(--line);background:#fffaf0f0;justify-content:flex-end;gap:10px;padding:16px;display:flex;position:sticky;bottom:12px;box-shadow:0 10px 30px #3c2d1e1f}@media (width<=1050px){.content-workspace{grid-template-columns:1fr}.set-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.exercise-card{grid-template-columns:1fr}.exercise-card label:first-of-type{grid-column:auto}.manual-panel{grid-template-columns:1fr}}.assessment-rules{border-left:4px solid var(--terra);background:#eee2ca;margin:4px 0;padding:24px}.assessment-rules h3{margin:8px 0 20px;font-family:Fraunces,serif;font-size:1.45rem}.assessment-rules .form-grid{margin:0}.check-field{grid-auto-flow:column;justify-content:start;align-items:center;display:flex!important}.check-field input{width:auto}.exercise-summary{background:#f6f0e3;border:1px dashed #b9ab94;grid-column:1/-1;padding:18px}.exercise-summary small{color:var(--terra);text-transform:uppercase;letter-spacing:.1em;font-size:.65rem;font-weight:600;display:block}.exercise-summary>strong{margin:9px 0 14px;font-family:Fraunces,serif;font-size:1.18rem;display:block}.exercise-summary>div{flex-wrap:wrap;gap:7px;display:flex}.exercise-summary span{border:1px solid var(--line);background:#fff;padding:7px 10px;font-size:.75rem}.visual-fields{border-left:3px solid var(--forest);background:#edf1e8;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:14px;padding:18px;display:grid}.visual-fields>p{color:#68736d;grid-column:1/-1;margin:0;font-size:.75rem}.visual-fields select{border:1px solid var(--line);background:#fff;min-height:44px;padding:0 10px}.visual-fields textarea{min-height:90px}.match-image-uploads{grid-column:1/-1;gap:10px;display:grid}.match-image-upload{border:1px solid var(--line);background:#fff;grid-template-columns:72px 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.match-image-upload img{object-fit:cover;width:72px;height:54px}.match-image-upload>span:first-child{color:#68736d;font-size:.75rem}.match-image-upload label{gap:5px;display:grid}.match-image-uploads .form-error{margin:0}.advanced-contract{border-top:1px solid var(--line);grid-column:1/-1;padding-top:12px}.advanced-contract summary{color:#68736d;cursor:pointer;font-size:.7rem}.advanced-contract>div{grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;display:grid}.results-panel{gap:18px;display:grid}.results-cover{background:var(--paper);border:1px solid var(--line);border-top:5px solid var(--forest);grid-template-columns:1fr auto auto;align-items:end;gap:28px;padding:30px;display:grid}.results-cover h2{margin:12px 0 5px;font-size:2.2rem}.results-cover p{color:#68736d;margin:0}.result-metric{border-left:1px solid var(--line);min-width:90px;padding-left:22px}.result-metric strong{color:var(--forest);font-family:Fraunces,serif;font-size:2.5rem;display:block}.result-metric span{text-transform:uppercase;color:#777;font-size:.65rem}.results-table{background:var(--paper);border:1px solid var(--line)}.result-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,1fr) repeat(4,90px);align-items:center;gap:12px;min-height:62px;padding:10px 20px;font-size:.78rem;display:grid}.result-row:last-child{border-bottom:0}.result-head{color:#777;text-transform:uppercase;background:#eee6d8;min-height:42px;font-size:.65rem}.grade{color:#913e2e;background:#f1d9d0;border-radius:50%;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.grade.passing{color:var(--forest);background:#dce8dc}@media (width<=850px){.results-cover{grid-template-columns:1fr 1fr}.results-cover>div:first-child{grid-column:1/-1}.result-row{grid-template-columns:1fr repeat(2,70px)}.result-row>:nth-child(4),.result-row>:nth-child(5){display:none}}@media (width<=700px){.visual-fields,.advanced-contract>div{grid-template-columns:1fr}}
