:root{color-scheme:light;--bg-sky-top: #fff4e0;--bg-sky-mid: #ffd9a3;--bg-sky-bottom: #f0c995;--card: rgba(255, 253, 248, .55);--card-solid: #fffdf8;--text: #3e2723;--muted: #6d4c41;--header-1: #4a3728;--header-2: #6b4f3a;--header-text: #fffbeb;--header-muted: rgba(255, 251, 235, .82);--primary: #ea580c;--primary-dark: #c2410c;--primaryText: #ffffff;--secondary-soft: #fff7ed;--secondary-mid: #ffedd5;--secondary-border: #d97706;--secondary-text: #7c2d12;--focus-ring: #f59e0b;--danger: #b91c1c;--ok: #15803d;--border: rgba(180, 140, 100, .35);--shadow: 0 6px 20px rgba(62, 39, 35, .09);--radius: 14px;--gap: 14px;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", sans-serif;--savanna-hero: url(../savanna-hero.png)}*,*:before,*:after{box-sizing:border-box}html{height:100%;background:var(--bg-sky-bottom)}body{margin:0;min-height:100%;font-family:var(--font);color:var(--text);background:transparent}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(255,236,210,.26) 0%,transparent 36%,transparent 100%)}body:after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:var(--savanna-hero) center / cover no-repeat;background-attachment:fixed}.container{position:relative;z-index:0;max-width:980px;margin:0 auto;padding:18px}.appFooter{margin-top:28px;padding-top:12px;text-align:center;font-size:12px;font-weight:600;letter-spacing:.02em;color:#3a241c;text-shadow:0 0 12px rgba(255,252,245,1),0 1px 2px rgba(255,255,255,.88);border-top:1px solid rgba(120,80,55,.18)}.appFooter .appVersion{opacity:.92}.header{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px;padding:14px 16px;border-radius:var(--radius);background:linear-gradient(135deg,var(--header-1) 0%,var(--header-2) 100%);color:var(--header-text);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow)}.header .title{color:var(--header-text)}.header .sub{color:var(--header-muted)}.header .btnGhost{background:#ffffff1f;color:var(--header-text);border-color:#ffffff61}.header .btnGhost:hover{background:#fff3}.navActions{justify-content:flex-end;gap:8px}.title{font-size:22px;font-weight:800;letter-spacing:-.02em}.sub{font-size:14px;color:var(--muted)}.modeExplain{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border-radius:var(--radius);background:#fffdf86b;border:1px solid var(--border)}.modeExplainText{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}.card .modeExplain{background:#fffdf8f0;border-color:#78503747;box-shadow:inset 0 1px #ffffffbf,0 2px 12px #3e27230f}.card .modeExplainText{color:#2a1810;font-size:15px;font-weight:600;line-height:1.6;letter-spacing:.01em;text-shadow:0 1px 0 rgba(255,255,255,.65)}.card{background:var(--card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(120,80,55,.32);border-radius:var(--radius);box-shadow:var(--shadow),0 0 0 1px #ffffff59 inset;padding:16px}.card.welcomeCard{padding:clamp(20px,4vw,28px)}.welcomeCard .welcomeGreeting{margin:0;font-size:clamp(1.65rem,4.5vw,2.35rem);font-weight:800;letter-spacing:-.03em;color:#1a0d08;line-height:1.2;text-shadow:0 0 20px rgba(255,252,245,1),0 2px 6px rgba(255,255,255,.9)}.welcomeCard .welcomeLead{max-width:52ch;font-size:15px}.card .bigPrompt{color:#27150f;text-shadow:0 0 14px rgba(255,252,245,1),0 1px 2px rgba(255,255,255,.92)}.card .title{text-shadow:0 0 12px rgba(255,252,245,1),0 1px 2px rgba(255,255,255,.9)}.card .sub{color:#24150f;font-weight:600;line-height:1.5;font-size:15px;text-shadow:0 0 12px rgba(255,252,245,1),0 1px 2px rgba(255,255,255,.9)}.card .pill{color:#2d1810;font-weight:700;background:#fffdf885;border-color:#78503759;text-shadow:0 0 8px rgba(255,252,245,.95)}.card .btnSecondary{color:#3d0f05;font-weight:800;text-shadow:0 0 10px rgba(255,252,245,1),0 1px 1px rgba(255,255,255,.75)}.card .choiceBtn{color:#27150f;text-shadow:0 0 10px rgba(255,252,245,.98),0 1px 1px rgba(255,255,255,.8)}.card .hint{color:#3a241c;font-weight:600;text-shadow:0 0 8px rgba(255,252,245,.95)}.card .filterWrongLabel{color:#27150f;text-shadow:0 0 8px rgba(255,252,245,.95)}.card .storedPrompt{color:#27150f;text-shadow:0 0 10px rgba(255,252,245,.95)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap)}.btn{appearance:none;border:0;border-radius:12px;padding:12px 14px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--primaryText);font-weight:800;font-size:16px;cursor:pointer;box-shadow:0 2px #3e272326}.btn:hover{filter:brightness(1.05)}.btn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed;filter:none;box-shadow:none}.btnSecondary{background:linear-gradient(180deg,#fff7ed66,#ffedd570);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--secondary-text);border:1px solid rgba(234,88,12,.55);box-shadow:inset 0 1px #ffffff59}.btnSecondary:hover{filter:brightness(1.02)}.btnGhost{background:transparent;color:var(--text);border:1px solid var(--border)}.btnGhost:hover{background:#3e27230f}.btnNav{background:#fffdf8b8;color:#27150f;border:1px solid rgba(120,80,55,.42);box-shadow:inset 0 1px #ffffff8c,0 2px #3e27231a;font-weight:900}.btnNav:hover{background:#fffdf8db}.btnNav:disabled{opacity:.5}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:13px;color:var(--muted);background:#fffdf833;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.runActions{width:100%;align-items:flex-start}.runActionsLeft{flex:1 1 auto;min-width:260px}.runActionsRight{margin-left:auto;flex:0 0 auto}.runLayout{display:grid;grid-template-columns:1fr;gap:var(--gap);align-items:start}.runLayout--helpOpen{grid-template-columns:minmax(0,1fr) minmax(280px,520px)}.helpDrawerWrap{position:relative}.helpOverlay{display:none}.helpDrawer{background:#fffdf8f0;border:1px solid rgba(120,80,55,.28);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;max-height:calc(100vh - 140px);overflow:auto}.helpDrawerHead{justify-content:space-between;align-items:center;width:100%}.helpContent{white-space:pre-wrap;line-height:1.55;font-size:15px;font-weight:650;color:#27150f;text-shadow:0 0 10px rgba(255,252,245,.95)}@media(max-width:860px){.runLayout--helpOpen{grid-template-columns:1fr}.helpDrawerWrap{position:fixed;inset:0;z-index:50;display:grid;grid-template-columns:1fr}.helpOverlay{display:block;position:absolute;inset:0;width:100%;height:100%;border:0;background:#1e140f59}.helpDrawer{position:absolute;top:0;right:0;height:100%;width:min(520px,100%);max-height:none;border-radius:0;border-left:1px solid rgba(120,80,55,.28)}}.subjectFilter{margin-top:2px}.subjectFilterLabel{font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;margin-bottom:8px}.card .subjectFilterLabel{color:#27150f;text-shadow:0 0 8px rgba(255,252,245,.95)}.subjectFilterRow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.subjectPill{appearance:none;font:inherit;cursor:pointer;border:1px solid rgba(120,80,55,.38);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;background:#fffdf885;color:#2d1810;box-shadow:inset 0 1px #ffffff73;transition:filter .12s ease,box-shadow .12s ease}.card .subjectPill{text-shadow:0 0 8px rgba(255,252,245,.95)}.subjectPill:hover{filter:brightness(1.04)}.subjectPill:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.subjectPill--active{background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);color:var(--primaryText);border-color:#c2410cd9;box-shadow:0 2px #3e27231f;text-shadow:none}.card .subjectPill--active{text-shadow:none}.spacer{height:10px}.pageTitle{margin:0 0 2px;font-size:clamp(1.85rem,5.5vw,2.4rem);font-weight:800;line-height:1.15;letter-spacing:-.03em;color:#1a0d08}.card .pageTitle{padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid rgba(120,80,55,.22);text-shadow:0 0 24px rgba(255,252,245,1),0 0 8px rgba(255,252,245,.95),0 2px 4px rgba(255,255,255,.85)}.bigPrompt{font-size:20px;font-weight:800;line-height:1.25;color:var(--text)}.questionFigure{margin:0;max-width:100%}.questionFigureImg{display:block;width:100%;max-width:min(100%,520px);height:auto;border-radius:12px;border:1px solid rgba(120,80,55,.28);box-shadow:0 2px 12px #3e272314}.hint{padding:12px;border-radius:12px;border:1px dashed rgba(217,119,6,.4);background:#fff7edd1;color:var(--muted);font-size:14px}.statusOk{color:var(--ok);font-weight:900}.statusBad{color:var(--danger);font-weight:900}label{font-weight:700}input[type=text],input[type=number],select,textarea{width:100%;padding:12px;border:1px solid var(--border);border-radius:12px;font-size:16px;background:var(--card-solid);color:var(--text)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px;border-color:#d97706}.choiceBtn{width:100%;text-align:left;background:#fffdf838;border:1px solid var(--border);border-radius:12px;padding:12px;font-size:16px;font-weight:700;cursor:pointer;color:var(--text);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.choiceBtn:hover{border-color:#d97706}.choiceBtn:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.choiceBtnSelected{border-color:var(--secondary-border);background:linear-gradient(180deg,#fff7ed7a,#ffedd585);box-shadow:inset 0 0 0 1px #d977064d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background:#ffedd5;border:1px solid var(--border);border-radius:8px;padding:2px 6px}.storedAnswersWrap{margin-top:4px}.storedAnswersHead{justify-content:space-between;align-items:center;width:100%}.storedAnswersBody[hidden]{display:none!important}.filterWrongLabel{cursor:pointer;font-weight:700;color:var(--text);-webkit-user-select:none;user-select:none}.storedAnswersList{display:flex;flex-direction:column;gap:10px}.storedAnswerRow{padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#fffdf838;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.storedPrompt{line-height:1.45;white-space:pre-wrap;color:var(--text);font-weight:600}.navActions--wrap{flex-wrap:wrap;max-width:100%;justify-content:flex-end}.navActions--wrap .btn{font-size:14px;padding:10px 12px}.schoolToolsLabel{font-weight:800;color:var(--muted);margin-bottom:6px}.schoolToolsRow{flex-wrap:wrap;gap:10px}.btnDanger{background:linear-gradient(180deg,#dc2626,#b91c1c);color:#fff;border:1px solid rgba(127,29,29,.6);box-shadow:0 2px #3e27231f}.btnDanger:hover{filter:brightness(1.06)}.fieldLabel{display:block;font-size:13px;font-weight:700;color:var(--muted);margin-bottom:4px}.formStack{display:flex;flex-direction:column;gap:10px}.fieldInput,.fieldTextarea{width:100%;max-width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#fffdf8d9;color:var(--text);font:inherit;font-size:15px}.fieldInput--narrow{max-width:280px}.fieldTextarea{resize:vertical;min-height:64px}.fieldInput:focus-visible,.fieldTextarea:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}.filterBar{align-items:center;gap:12px;flex-wrap:wrap}.sectionLabel{font-weight:800;color:var(--text)}.formActionsRow{flex-wrap:wrap;gap:10px}.homeworkList{display:flex;flex-direction:column;gap:12px}.homeworkRow{padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#fffdf859}.homeworkRow--done{opacity:.72}.homeworkRowMain{display:flex;gap:12px;align-items:flex-start}.homeworkRowText{flex:1;min-width:0}.homeworkTitle{font-weight:800;font-size:16px;color:var(--text)}.homeworkMeta{margin-top:4px}.homeworkNote{margin-top:6px}.homeworkRowActions{margin-top:10px;flex-wrap:wrap;gap:8px}.materialsList{display:flex;flex-direction:column;gap:12px}.materialCard{padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:#fffdf866}.materialCardTitle{font-size:17px;font-weight:800}.materialLink{color:#c2410c;text-decoration:underline;text-underline-offset:3px}.materialLink:hover{color:var(--primary-dark)}.materialCardUrl{margin-top:4px;word-break:break-all;font-size:13px}.materialSubject{margin-top:6px}.materialCardActions{margin-top:10px;flex-wrap:wrap;gap:8px}.scheduleToolbar{align-items:center;gap:12px;flex-wrap:wrap}.scheduleSaveStatus{font-size:13px;font-weight:700;color:var(--ok);min-height:1.2em}.authLanding{display:grid;gap:16px;align-items:start}@media(min-width:800px){.authLanding{grid-template-columns:1fr 1fr}}.authLandingTitle{margin:0 0 10px;font-size:1.65rem;font-weight:800;color:var(--header-1);line-height:1.25}.authLandingLead{margin:0 0 14px;font-size:15px;line-height:1.5;color:var(--text)}.authLandingList{margin:0 0 14px;padding-left:1.35rem;font-size:14px;line-height:1.45;color:var(--text)}.authLandingList li{margin-bottom:8px}.authLandingFoot{margin:0}.authLandingForm .pageTitle{margin-bottom:8px}.authModeTabs{flex-wrap:wrap;gap:8px}.authLandingActions{flex-wrap:wrap;gap:10px;align-items:center}.authLandingPageWrap{padding-top:10px}.authLandingTopBar{flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;margin-bottom:16px}.authLandingTopBtn{min-height:48px;padding:12px 22px;font-size:17px;border-radius:999px}.authLandingLead2{margin:0;font-size:15px;line-height:1.55;color:var(--text)}.authKidForm{padding-bottom:18px}.authKidHello{font-size:1.45rem;font-weight:900;color:var(--header-1);margin:0 0 8px;letter-spacing:-.02em}.authKidBlurb{margin:0 0 14px;font-size:16px;line-height:1.45;color:var(--muted)}.authKidLabel{font-size:15px;font-weight:800}.authKidInput{min-height:48px;font-size:17px;padding:12px 14px;border-radius:12px}.authKidBigBtn{min-height:50px;padding:14px 18px;font-size:17px;border-radius:14px}.authKidActions{flex-direction:column;align-items:stretch;gap:12px}@media(min-width:520px){.authKidActions{flex-direction:row;flex-wrap:wrap;align-items:center}.authKidActions .authKidBigBtn{flex:1 1 auto;min-width:200px}}.authKidError{margin:0 0 8px;padding:10px 12px;border-radius:12px;font-size:15px;font-weight:700;color:#7f1d1d;background:#fee2e2d9;border:1px solid rgba(185,28,28,.35)}
