:root{font-family:system-ui,-apple-system,'Segoe UI',Arial,sans-serif;color:#123855;background:#f4f8fc;--blue:#0785c8;--navy:#0b3554;--border:#dce7f0;--muted:#617b91;--red:#b43e48;--green:#137f56}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:#096caa}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a7ddfc}h1,h2,h3{margin:0 0 10px;line-height:1.3}h1{font-size:25px}h2{font-size:20px}h3{font-size:16px}p{line-height:1.5}small,.minor{color:var(--muted);font-size:12px}.top{display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--border);padding:13px 25px;gap:18px;position:sticky;top:0;z-index:20}.brand{display:flex;gap:12px;align-items:center;min-width:0}.brand strong{display:block;font-size:17px}.brand small{display:block}.mark{width:42px;height:42px;min-width:42px;border-radius:12px;background:linear-gradient(140deg,#07548a,#07a3da);display:grid;place-items:center;color:white;font-weight:900}.layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:212px minmax(0,1fr);min-height:calc(100vh - 130px)}.side{padding:22px 12px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:8px;background:#fff}.side button{border:0;text-align:left;border-radius:9px;padding:13px 14px;background:transparent;color:#3a6683;font-weight:700}.side button.active,.side button:hover{background:#e6f4ff;color:#086da5}.sidefoot{margin-top:auto;display:flex;flex-direction:column;border-top:1px solid var(--border);padding-top:15px}main{padding:26px 29px 80px;min-width:0}.page-top{display:flex;gap:15px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin-bottom:18px}.panel,.member,.item,.lesson,.week{background:white;border:1px solid var(--border);border-radius:13px;box-shadow:0 3px 14px #143b6010}.panel{padding:18px;margin:0 0 16px}.member-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.member{padding:15px;min-width:0}.member-name{font-weight:800;border:0;background:none;color:#135779;padding:0;text-align:left}.member-name:hover{text-decoration:underline}.item{margin-top:8px;padding:11px;border-radius:9px;background:#f8fbfe;box-shadow:none;font-size:12px}.item strong{display:block;margin:4px 0}.muted{color:var(--muted)}.tiny{font-size:11px}.badge{border-radius:40px;padding:4px 9px;font-size:11px;background:#eaf0f6;color:#536c80;font-weight:700;display:inline-block}.badge.red{background:#ffeaed;color:#af3245}.badge.green{background:#e0f7e9;color:#19754a}.badge.blue{background:#e3f4ff;color:#0678b8}.badge.gold{background:#fff3dc;color:#94621f}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.field,label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650}.field input,.field select,.field textarea,label input,label select,label textarea{padding:10px;border-radius:9px;border:1px solid #c9dae8;color:#17415e;background:#fff;width:100%;font-weight:400;min-height:41px}.field textarea{min-height:75px;resize:vertical}.checkbox{flex-direction:row;align-items:center;gap:9px}.checkbox input{width:auto;min-height:0}.primary,.ghost,.btn,.danger{border:1px solid #caddf0;padding:10px 13px;border-radius:9px;background:#fff;color:#245a7b;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:5px}.primary{background:#0586c9;border-color:#0586c9;color:white}.primary:hover{background:#006fa9}.danger{color:#a32d3d;border-color:#e8c6ca}.ghost{color:#4f7590}.link{background:none;border:0;color:#0879bc;padding:9px 0;text-align:left}.btn-sm{font-size:11px;padding:6px 9px}.week-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.week{padding:12px;text-align:left;min-height:96px;color:#164565}.week.chosen{background:#eaf7ff;border:2px solid #048dd2}.week.exam{border-left:5px solid #c03b45}.week small{display:block;margin-top:5px}.week b{font-size:12px}.course-body{display:grid;grid-template-columns:minmax(200px,1fr) minmax(300px,1.15fr);gap:15px}.lesson{padding:13px;margin-bottom:10px;border-left:4px solid #9db4c5}.lesson.live{border-color:#0785c8}.lesson.missed{border-color:#b73249;background:#fff5f5}.lesson.held{border-color:#22966b}.lesson.asynch{border-color:#9daebc;background:#f8fafc}.lesson .actions{margin-top:9px}.scroll-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}.scroll-row button{flex:0 0 auto}.hint{border:1px solid #d0e7f4;background:#eefaFF;border-radius:9px;padding:10px 12px;font-size:12px;color:#2f6989}.warning{border-color:#edb8c0;background:#fff0f2;color:#994453}.auth-layout{display:grid;place-items:center;min-height:calc(100vh - 130px);padding:20px}.login-card{width:min(440px,100%);padding:30px;background:#fff;border:1px solid var(--border);border-radius:17px;box-shadow:0 18px 60px #173e6120}.login-icon{font-size:29px}.login-card .stack{margin-top:20px}.login-card input{padding:13px}#auth-feedback{white-space:pre-wrap}#top-controls{display:flex;gap:8px;align-items:center}#top-controls select{border-radius:8px;padding:9px;border:1px solid var(--border)}.hidden{display:none!important}dialog{width:min(770px,calc(100vw - 24px));border:0;border-radius:17px;max-height:90vh;overflow:auto;padding:0;color:#123855;box-shadow:0 30px 90px #0b305d50}dialog::backdrop{background:#072b4c99}.dialog-head{background:white;position:sticky;top:0;border-bottom:1px solid var(--border);padding:20px;display:flex;align-items:center;justify-content:space-between;z-index:2}.dialog-head button{font-size:29px;border:0;background:white}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--border);background:#fff;padding:15px 18px;position:sticky;bottom:0}#dialog-body{padding:20px;max-height:67vh;overflow-y:auto}.form-list{display:flex;flex-direction:column;gap:9px}.choice{display:flex;align-items:center;gap:8px;font-size:13px}.choice input{width:auto}.table-scroller{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:12px}.table td,.table th{border-bottom:1px solid var(--border);text-align:left;padding:9px}.hist{background:#f7fafd;border:1px solid var(--border);border-radius:9px;padding:13px;margin-bottom:10px}.hist pre{white-space:pre-wrap;word-break:break-word;font-size:11px;max-height:240px;overflow:auto}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs button.chosen{background:#e4f4ff;color:#07689d;border-color:#188bd0}.footer-note{font-size:12px;color:#7b8fa0}footer{position:fixed;bottom:0;right:0;padding:6px 14px;background:#fffffff0;border-top-left-radius:9px;font-size:10px;color:#7990a1;z-index:30}#toast{position:fixed;bottom:42px;left:50%;transform:translateX(-50%);background:#153f60;color:white;border-radius:10px;padding:12px 18px;box-shadow:0 8px 30px #123c5540;display:none;z-index:90;max-width:90vw;font-size:13px}#toast.show{display:block}#mfa-qr img{max-width:180px;display:block;margin:auto}
@media(max-width:1120px){.member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-list{grid-template-columns:repeat(4,1fr)}.grid4{grid-template-columns:repeat(2,1fr)}}@media(max-width:740px){.top{padding:11px 13px;align-items:flex-start}.brand strong{font-size:13px}.brand small{font-size:10px}#top-controls{align-self:center}.layout{display:block;padding-bottom:65px}.side{position:fixed;bottom:0;top:auto;z-index:25;left:0;right:0;padding:5px;display:flex;flex-direction:row;box-shadow:0 -5px 16px #123b601f;border-top:1px solid var(--border);border-right:0}.side>button{flex:1;padding:9px 4px;font-size:11px;text-align:center}.sidefoot{display:none}main{padding:16px 12px 80px}.member-grid{grid-template-columns:1fr 1fr}.course-body,.grid2,.grid3{grid-template-columns:1fr}.week-list{grid-template-columns:repeat(4,1fr)}.week{padding:8px;min-height:76px}.week b{font-size:11px}.week small{font-size:10px}.panel{padding:13px}.page-top h1{font-size:21px}}@media(max-width:440px){.member-grid{grid-template-columns:1fr}.week-list{grid-template-columns:repeat(4,minmax(0,1fr))}.week small{display:none}#top-controls select{max-width:117px;font-size:11px}.brand strong{font-size:12px}.mark{width:34px;height:34px;min-width:34px}dialog .grid2{grid-template-columns:1fr}}
