:root{--primary:#5560d9;--bg:#f4f6fa;--card:#fff;--text:#171822;--muted:#747681;--green:#15966c;--red:#dc4c59}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,sans-serif}main{max-width:720px;margin:auto;padding:12px 12px 82px}header{display:flex;align-items:center;gap:9px;margin-bottom:10px}.avatar{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#5965df,#42b99f);color:#fff;display:grid;place-items:center;font-weight:900}header div:nth-child(2){flex:1}small{color:var(--muted)}h1{font-size:19px;margin:0}h2{font-size:18px;margin:12px 2px 7px}.icon,.date-nav button{border:0;background:#e5e8fa;color:var(--primary);border-radius:12px;font-size:22px;width:40px;height:40px}.view{display:none}.view.active{display:block}.summary{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:linear-gradient(135deg,#5361d8,#7079e6);border-radius:16px;padding:11px;color:#fff}.summary div{display:flex;flex-direction:column}.summary strong{font-size:22px}.summary span{font-size:11px;opacity:.86}.date-nav{display:flex;align-items:center;justify-content:space-between;margin:9px 0}.date-nav button{height:32px}.list,.students{display:grid;gap:6px}.lesson,.row-card{background:#fff;border:0;border-left:4px solid #8790e8;border-radius:13px;padding:8px 9px;display:flex;align-items:center;text-align:left;width:100%;min-height:54px;box-shadow:0 1px 2px #dfe2e9}.lesson:nth-child(4n+1){background:#f0f4ff;border-left-color:#5b72db}.lesson:nth-child(4n+2){background:#eefaf6;border-left-color:#38a687}.lesson:nth-child(4n+3){background:#fff7eb;border-left-color:#e59b35}.lesson:nth-child(4n+4){background:#f8f0ff;border-left-color:#9a63cf}.lesson-time{min-width:50px;color:#4d59bc;font-weight:800;font-size:13px}.lesson-main{flex:1;min-width:0}.lesson-main b{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;font-size:14px;line-height:18px}.lesson-main span,.muted{display:block;color:var(--muted);font-size:11px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.row-card .lesson-main b{-webkit-line-clamp:2;line-clamp:2}.percent{font-size:13px;font-weight:800;color:#d68025;margin-left:5px}.percent.ok{color:var(--green)}.sheet{position:fixed;inset:0;background:#0007;display:flex;align-items:flex-end;z-index:5}.sheet.hidden{display:none}.sheet-card{background:var(--bg);width:100%;max-height:92vh;overflow:auto;border-radius:23px 23px 0 0;padding:18px 12px 24px;position:relative}.sheet-card.compact{max-height:75vh}.close{position:absolute;right:12px;top:10px;border:0;background:#e7e8ed;border-radius:50%;width:34px;height:34px;font-size:22px}.sheet h2{margin:0 42px 2px 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.sheet p{color:var(--muted);margin:0 0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.homework{display:block;width:100%;text-align:left;background:#fff;border:1.5px solid #ccd0e7;border-radius:13px;padding:9px;margin-bottom:12px}.student{display:flex;align-items:center;background:#fff;border-radius:13px;padding:7px}.student .initial{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e7eafa;color:var(--primary);margin-right:8px}.student .name{flex:1;font-weight:700;font-size:13px;min-width:0}.grade{border:0;min-width:36px;height:36px;border-radius:11px;background:#e3f5ee;color:var(--green);font-weight:900}.chip-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:11px 0}.chip-grid button,.actions button{border:0;border-radius:11px;padding:10px 5px;background:#e6e9fa;color:#343d99;font-weight:800}.actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.actions .danger{background:#ffe8e9;color:#c52e3b}.loader{width:30px;height:30px;margin:30px auto;border:4px solid #ddd;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty,.error{background:#fff;border-radius:14px;padding:18px;text-align:center;color:var(--muted)}.error{color:var(--red)}nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:#fff;border-top:1px solid #e1e3eb;display:flex;z-index:4}nav button{flex:1;border:0;background:none;color:#858793;font-size:20px}nav button.active{color:var(--primary);background:#f0f2fc}nav span{font-size:10px;display:block;margin-top:1px}#toast{position:fixed;left:50%;bottom:73px;transform:translateX(-50%);background:#272833;color:#fff;padding:9px 13px;border-radius:11px;display:none;z-index:9}
