:root{--ink:#19302d;--muted:#72807c;--paper:#f6f5ef;--green:#285f54;--line:#dce1d9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{width:min(1160px,100%);min-height:100vh;margin:auto;padding:0 30px 115px}header{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}small{font-size:9px;letter-spacing:.13em;color:#82908c;font-weight:800}header b{display:block;font:600 18px Georgia;margin-top:3px}.logo{width:42px;height:42px;border-radius:13px;background:var(--green);color:#fff;display:grid;place-items:center;font:bold 22px Georgia}.avatar{margin-left:auto;border:0;border-radius:50%;width:40px;height:40px;color:var(--green);background:#dce9e1;font-weight:bold}.hero{display:flex;align-items:end;justify-content:space-between;padding:44px 0 28px}.hero h1,.page h1,.modal h1{font:600 clamp(30px,4vw,44px) Georgia;margin:7px 0}.hero p{color:var(--muted);margin:0}.primary{border:0;border-radius:12px;background:var(--green);color:#fff;padding:14px 18px;font-weight:750}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:42px}.metrics article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px 21px;display:grid;grid-template-columns:1fr auto;align-items:end;color:var(--muted);font-size:12px}.metrics strong{grid-column:2;grid-row:1/3;font:600 30px Georgia;color:var(--ink)}.metrics span{margin-top:7px}.grid{display:grid;grid-template-columns:1.6fr .75fr;gap:28px}.title{display:flex;justify-content:space-between;margin-bottom:14px}.title h2{font:600 23px Georgia;margin:3px 0}.lesson{position:relative;overflow:hidden;display:grid;grid-template-columns:90px 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px 18px 19px 23px;margin-bottom:11px}.lesson:before{content:'';position:absolute;inset:0 auto 0 0;width:5px;background:#71a2b2}.lesson.coral:before{background:#dd896e}.time{border-right:1px solid var(--line);display:flex;flex-direction:column}.time b{font:600 18px Georgia}.time span,.lesson p{color:var(--muted);font-size:11px;margin:4px 0}.lesson i,.card>i{display:inline-block;font-style:normal;font-size:9px;letter-spacing:.08em;color:#487787;background:#e8f1f2;padding:5px 7px;border-radius:6px;font-weight:bold}.lesson h3{font-size:14px;margin:9px 0 0}.secondary{border:1px solid var(--line);border-radius:10px;padding:9px 11px;color:var(--green);background:#f9faf7;font-size:11px;font-weight:bold}aside{background:#e9eee8;border-radius:17px;padding:22px}.pending{display:flex;gap:11px;padding:16px 0;border-top:1px solid #d3dbd2}.pending>span{width:9px;height:9px;border-radius:50%;background:#d5a142;margin-top:3px}.pending>span.red{background:#c9635a}.pending>span.blue{background:#6697a6}.pending b{font-size:12px}.pending p{font-size:11px;color:var(--muted);margin:5px 0}.page{padding:44px 0}.pagehead{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.card,.grades{background:#fff;border:1px solid var(--line);border-radius:17px;padding:23px}.card h2{font:600 24px Georgia;margin:14px 0 5px}.card p{color:var(--muted);font-size:12px}.stats{display:flex;gap:24px;margin:22px 0;font-size:12px}.grades{max-width:750px}.grade{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:16px}.report>i{font-size:20px}nav{position:fixed;z-index:8;left:50%;bottom:16px;transform:translateX(-50%);width:min(630px,calc(100% - 28px));display:grid;grid-template-columns:repeat(5,1fr);padding:10px 17px;border-radius:21px;background:#183b35f2;box-shadow:0 18px 45px #19302d3d}nav button{border:0;background:transparent;color:#a9beb8;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:17px}nav span{font-size:9px}nav .active{color:#fff}nav .add{width:46px;height:46px;justify-self:center;border-radius:14px;background:#f0c77d;color:#27423c;font-size:23px}.backdrop{position:fixed;z-index:20;inset:0;background:#18332e99;display:grid;place-items:center;padding:16px}.modal{position:relative;background:#fbfaf6;border-radius:20px;padding:28px;width:min(620px,100%);max-height:92vh;overflow:auto}.close{position:absolute;right:18px;top:14px;border:0;background:transparent;font-size:26px}form{display:grid;gap:14px;margin-top:22px}form label{display:grid;gap:6px;font-size:11px;font-weight:bold}input,select,textarea{border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px}textarea{min-height:70px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}fieldset{border:1px solid var(--line);border-radius:12px}.attendance{display:flex;gap:18px;padding:7px}.attendance label{display:flex;align-items:center}@media(max-width:730px){.shell{padding:0 15px 105px}header{height:70px}.hero{padding:29px 0 23px}.hero .primary{position:fixed;z-index:9;right:22px;bottom:88px;width:52px;height:52px;border-radius:50%;overflow:hidden;font-size:0}.hero .primary:first-letter{font-size:25px}.metrics{gap:6px;margin-bottom:32px}.metrics article{display:block;padding:12px 9px}.metrics strong{display:block;font-size:24px;margin:7px 0}.metrics span{display:none}.grid,.cards{grid-template-columns:1fr}.lesson{grid-template-columns:65px 1fr;padding:16px 12px 16px 17px;gap:11px}.lesson .secondary{grid-column:2;justify-self:start}.page{padding:30px 0}.pagehead .primary{font-size:0;width:48px;height:48px;border-radius:50%}.pagehead .primary:first-letter{font-size:23px}.row{grid-template-columns:1fr}aside{padding:19px}}@media print{header,nav,.primary,.secondary{display:none!important}.shell{padding:0}body{background:#fff}}
.loading,.auth{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 20px 60px #19302d18}.auth-card .logo{margin-bottom:18px}.auth-card h1{font:600 34px Georgia;margin:8px 0 25px}.error{color:#a33;font-size:12px;min-height:16px}.empty{background:#fff;border:1px dashed #bdc7bf;border-radius:16px;padding:32px;text-align:center;color:var(--muted)}.student-list{display:grid;gap:7px;margin:20px 0}.student-list div{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px}.report>i{font-size:20px}.modal form+.primary{margin-top:12px}
