*{box-sizing:border-box} :root{--bg:#f6f7fb;--surface:#fff;--surface2:#f0f2f7;--text:#151922;--muted:#707785;--line:#e5e7ed;--accent:#5664e8;--accent2:#4654d4;--good:#15945b;--warn:#d78a17;--bad:#d84d55;--shadow:0 8px 28px #1118270b} [data-theme=dark]{--bg:#0d1118;--surface:#151a23;--surface2:#1d2430;--text:#f1f3f7;--muted:#9da5b4;--line:#293241;--shadow:0 8px 30px #0005} body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Tahoma,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}.app{min-height:100vh;padding-bottom:78px}.top{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(14px);padding:14px 18px;border-bottom:1px solid var(--line)}.topin{max-width:1100px;margin:auto;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:850;font-size:20px}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500}.wrap{max-width:1100px;margin:auto;padding:22px 18px}.page{display:none}.page.active{display:block}.hero{display:flex;justify-content:space-between;align-items:end;gap:15px;margin-bottom:20px}.hero h1{margin:0 0 5px;font-size:28px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:17px;box-shadow:var(--shadow)}.stat b{font-size:28px;display:block;margin-top:5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);margin-bottom:14px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px}.section-title h2{font-size:17px;margin:0}.lecture-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.lecture-row:last-child{border-bottom:0}.dot{width:10px;height:10px;border-radius:50%;flex:none}.rowmain{min-width:0;flex:1}.rowmain strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;background:var(--surface2);color:var(--muted);margin-top:4px}.badge.good{color:var(--good)}.badge.warn{color:var(--warn)}.badge.bad{color:var(--bad)}.btn{border-radius:12px;padding:10px 14px;background:var(--surface2);color:var(--text);border:1px solid var(--line);transition:.18s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.danger{color:var(--bad)}.btn.small{padding:7px 10px;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:11px 12px;outline:none}.textarea{min-height:90px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field label{display:block;font-size:12px;color:var(--muted);margin:0 0 6px}.field.full{grid-column:1/-1}.modal{position:fixed;inset:0;background:#0008;z-index:50;display:none;align-items:flex-end;justify-content:center;padding:12px}.modal.open{display:flex}.modalbox{background:var(--surface);width:min(700px,100%);max-height:92vh;overflow:auto;border-radius:22px;padding:20px}.modalhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modalhead h3{margin:0}.close{background:var(--surface2);color:var(--text);width:36px;height:36px;border-radius:50%}.nav{position:fixed;bottom:0;left:0;right:0;z-index:20;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(15px);border-top:1px solid var(--line);display:flex;justify-content:center}.navin{width:min(700px,100%);display:flex;justify-content:space-around}.nav button{background:transparent;color:var(--muted);padding:10px 7px 12px;font-size:11px;min-width:70px}.nav button.active{color:var(--accent);font-weight:800}.nav span{display:block;font-size:19px;margin-bottom:2px}.empty{text-align:center;padding:35px 15px;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calhead{text-align:center;color:var(--muted);font-size:11px;padding:6px}.calday{min-height:74px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:7px;position:relative}.calday.today{outline:2px solid var(--accent)}.calday.mutedday{opacity:.35}.count{position:absolute;bottom:7px;right:7px;font-size:10px;color:var(--accent);font-weight:800}.filters{display:flex;gap:8px;margin-bottom:14px}.filters .input{max-width:330px}.progress{height:8px;background:var(--surface2);border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent);border-radius:99px}.review-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.memory{padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--surface2);text-align:center}.memory.good{border-color:#15945b66}.memory.warn{border-color:#d78a1766}.memory.bad{border-color:#d84d5566}.choice-icon{font-size:25px;display:block;margin-bottom:5px}.mcq-opt{display:block;width:100%;text-align:right;margin:8px 0}.mcq-opt.selected{outline:2px solid var(--accent)}.chip{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface2);display:inline-block;margin:3px;font-size:12px}.toast{position:fixed;bottom:86px;left:50%;transform:translateX(-50%) translateY(10px);background:#151922;color:#fff;padding:11px 15px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:100}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.dangerzone{border-color:#d84d5533}.toggle{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.toggle:last-child{border-bottom:0}@media(min-width:800px){.app{padding-bottom:0;padding-right:88px}.nav{top:0;bottom:0;left:auto;width:88px;border-top:0;border-left:1px solid var(--line)}.navin{width:100%;height:100%;flex-direction:column;justify-content:center}.nav button{min-width:0}.wrap{padding-top:30px}.modal{align-items:center}.modalbox{border-radius:22px}.hero h1{font-size:32px}}@media(max-width:650px){.grid{grid-template-columns:1fr 1fr}.grid .stat:last-child{grid-column:1/-1}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}.review-choice{grid-template-columns:1fr}.calendar{gap:3px}.calday{min-height:60px;font-size:12px}.calhead{font-size:10px}.hero{align-items:flex-start;flex-direction:column}.hero .btn{width:100%}}
