:root{color-scheme:light;--bg:#f7f7f5;--card:#fff;--text:#171717;--muted:#6f716f;--line:#e5e5e1;--accent:#267a68;--soft:#e8f3ef;--warn:#9a6318;--radius:18px;font:16px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,env(safe-area-inset-left));position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:750}.brand span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--accent);color:#fff}header p{color:var(--muted);font-size:14px}
main{max-width:850px;margin:auto;padding:34px 20px calc(100px + env(safe-area-inset-bottom))}.page{display:none}.page.active{display:block}.kicker{color:var(--accent);font-weight:750;font-size:12px;letter-spacing:.12em;margin:0 0 6px}h1{font-size:48px;letter-spacing:-.045em;line-height:1;margin:0 0 34px}h2{font-size:24px;margin:0 0 4px}h3{font-size:18px;margin:5px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:16px}.section-head p,section>p,.meta,.message{color:var(--muted);font-size:14px;margin:3px 0}section{margin-bottom:38px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:16px 0}.list{display:grid;gap:10px;margin:14px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.lesson label{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px;font-weight:700}.lesson output{font-size:24px;color:var(--accent)}textarea,input:not([type=range]),select{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);padding:11px;font:inherit}.lesson textarea{min-height:70px;margin-top:12px;resize:vertical}
.lesson input[type=range]{-webkit-appearance:none;appearance:none;display:block;width:100%;height:44px;margin:0;padding:0;border:0;background:transparent;--f:.5}.lesson input[type=range]:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}
.lesson input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(var(--accent),var(--accent)) 0/calc(14px + (100% - 28px)*var(--f)) 100% no-repeat var(--line)}.lesson input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-11px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.2)}
.lesson input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--line)}.lesson input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--accent)}.lesson input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.2)}
.summary{font-size:16px!important;color:var(--text)!important;margin:14px 0 0!important}.hinweise{margin:-26px 0 30px}.hinweise p{margin:0 0 4px;font-size:15px}.message.warnung{color:#b3261e;font-size:15px;margin:0 0 10px}
button,.ghost{border:0;border-radius:12px;background:var(--accent);color:#fff;padding:11px 15px;min-height:44px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer}.ghost{background:#fff;color:var(--accent);border:1px solid var(--line);display:inline-flex;align-items:center}.ghost.primaer{background:var(--accent);color:#fff;border-color:var(--accent)}.actions,.mini-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}.upload input{display:none}.row{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.tag{display:inline-block;margin:0;color:var(--accent);background:var(--soft);border-radius:99px;padding:3px 8px;font-size:12px;font-weight:750}.tag.warn{color:var(--warn);background:#fff3df}.anki{align-items:center}.anki strong{font-size:22px}.simple-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:12px;margin:16px 0}.simple-form label{font-weight:650}.simple-form label>*{margin-top:6px}.inline-form{display:grid;grid-template-columns:1fr 2fr 1fr auto;gap:8px;margin-top:14px}.score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0}.score strong{display:block;font-size:30px}.result{font-size:21px!important;font-weight:750;color:var(--text)!important}.week{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.day{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.day h3{font-size:14px;text-transform:capitalize}.day p{font-size:13px;margin:8px 0}.day small{display:block;color:var(--muted)}details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:12px}summary{cursor:pointer;font-weight:700}
nav{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,1fr);width:min(420px,calc(100% - 28px));background:#fff;border:1px solid var(--line);border-radius:16px;padding:5px;box-shadow:0 8px 28px rgba(0,0,0,.1);z-index:10}nav a{text-align:center;color:var(--muted);text-decoration:none;padding:11px;border-radius:11px;font-weight:700}nav a.active{background:var(--soft);color:var(--accent)}[hidden]{display:none!important}
@media(max-width:620px){main{padding:26px 14px 95px}h1{font-size:42px}.grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.week{grid-template-columns:1fr}.day{display:grid;grid-template-columns:90px 1fr;gap:8px}.day h3{grid-row:1/-1}.row{align-items:center}.sheet{padding:16px}.actions>*{flex:1;text-align:center;justify-content:center}}
.login{max-width:420px}.login label{display:block}
.list details,.chat-form+details{margin-top:0}.list details summary{font-size:15px}.list details .list{margin-top:12px}
.aufgabe{border-top:1px solid var(--line);padding:14px 0 4px}h3+.aufgabe{border-top:0}.aufgabe .kopf{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.aufgabe h4{margin:0;font-size:16px}.aufgabe .kurz{margin:8px 0 4px;font-size:16px}.tag.richtig{color:#1e7a4a;background:#e3f4ea}.tag.teilweise{color:var(--warn);background:#fff3df}.tag.falsch{color:#b3261e;background:#fbe4e2}.tag.unklar,.tag.nicht_gemacht{color:var(--muted);background:#eeeeeb}
details.lesung{margin-top:12px}details.lesung label{display:block;font-weight:650;margin:10px 0 4px}details.lesung textarea{margin-top:4px;resize:vertical;font-weight:400}details.lesung button{margin-top:10px}
.formel{margin:8px 0;padding:10px 12px;background:var(--soft);border-radius:12px;overflow-x:auto}.formel .katex-display{margin:0}.aufgabe details{padding:10px 14px;margin-top:8px}.aufgabe details p{margin:8px 0 0;font-size:15px}.aufgabe .mini-actions{margin-top:10px}
.balken{display:flex;height:12px;border-radius:6px;overflow:hidden;background:#eeeeeb;margin:10px 0 6px}.balken span{display:block;height:100%}.balken .sicher,.legende .sicher{background:#1e7a4a}.balken .gelernt,.legende .gelernt{background:var(--accent)}.balken .angefangen,.legende .angefangen{background:#8fd0b8}.balken .neu,.legende .neu{background:#c9c9c4}.legende .ohne{background:#eeeeeb}.legende{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:0 0 8px}.legende i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.chat{display:grid;gap:10px;margin:14px 0}.bubble{max-width:92%;padding:12px 15px;border-radius:16px;line-height:1.5;overflow-wrap:anywhere}.bubble.tim{background:var(--accent);color:#fff;justify-self:end;border-bottom-right-radius:4px}.bubble.tutor{background:var(--card);border:1px solid var(--line);justify-self:start;border-bottom-left-radius:4px}.bubble p{margin:0 0 8px}.bubble p:last-child{margin:0}.bubble table{border-collapse:collapse;margin:6px 0;font-size:14px}.bubble td,.bubble th{border:1px solid var(--line);padding:5px 8px;text-align:left;vertical-align:top}.bubble ul{margin:4px 0 8px 18px;padding:0}.bubble code{background:var(--soft);padding:1px 5px;border-radius:6px}.bubble .katex-display{overflow-x:auto;overflow-y:hidden;margin:8px 0}.bubble-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px}.bubble-meta button{min-height:28px;padding:3px 9px;font-size:12px;background:var(--soft);color:var(--accent)}.bubble.tim .bubble-meta{color:rgba(255,255,255,.8)}.bubble.tim .bubble-meta button{background:rgba(255,255,255,.18);color:#fff}.chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.chat-form textarea{resize:vertical;min-height:52px}.bubble.tutor.warten::after{content:"…";animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}
.key-form{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;margin-top:12px;align-items:center}.key-form button{white-space:nowrap}@media(max-width:620px){.key-form{grid-template-columns:1fr 1fr}.key-form input{grid-column:1/-1}}
.bubble.tutor.fehler{border-color:#b3261e;color:#b3261e}.bubble h3,.bubble h4{margin:10px 0 4px;font-size:16px}.bubble pre{background:var(--soft);padding:10px 12px;border-radius:10px;overflow-x:auto;font-size:14px;margin:6px 0}.bubble pre code{background:none;padding:0}.bubble ol{margin:4px 0 8px 20px;padding:0}.bubble li{margin:2px 0}.chat-form button:disabled,button:disabled{opacity:.55;cursor:default}
