:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f4f2ed;background:#0c0f14;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% -5%,#49341c55 0,transparent 30%),radial-gradient(circle at -10% 40%,#1b283244 0,transparent 33%),#0c0f14}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}input,select{width:100%;padding:13px 14px;border:1px solid #353840;border-radius:12px;background:#171b22;color:#f3f0e9;outline:none}input:focus,select:focus{border-color:#e5bd70;box-shadow:0 0 0 3px #e5bd7025}label{font-size:13px;color:#bfc0c2;display:block;margin:0 0 6px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(29px,4vw,52px);line-height:1.07;letter-spacing:-.045em}h2{font-size:22px;letter-spacing:-.025em}h3{font-size:17px}.muted{color:#a9abb1}.small{font-size:13px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:800;color:#d3ad66}.gold{color:#eac77f}.wrap{max-width:1140px;margin:auto;padding:0 28px}.topbar{height:84px;border-bottom:1px solid #ffffff10;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px;min-width:0}.brand-mark{width:44px;height:44px;border:1px solid #e5bd7075;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#5e441e,#13161a);color:#f4d28b;font-family:Georgia,serif;font-size:30px;font-weight:800;box-shadow:0 5px 20px #e4af4017}.brand-name{font-weight:850;letter-spacing:.065em;font-size:15px;line-height:1.2}.brand-name span{display:block;font-size:10px;letter-spacing:.27em;color:#d2ad68;margin-top:4px}.header-right{display:flex;align-items:center;gap:16px}.chip{padding:7px 11px;border-radius:100px;border:1px solid #e5bd7044;background:#e5bd7014;color:#e9c77e;font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.btn{border:0;border-radius:12px;padding:13px 19px;font-weight:750;color:#15130e;background:linear-gradient(135deg,#f1d28f,#c99541);box-shadow:0 5px 22px #c9954128}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn.secondary{background:#22262d;border:1px solid #434348;color:#f3f0e9;box-shadow:none}.btn.ghost{background:transparent;color:#bfc0c2;box-shadow:none;padding:9px 12px}.btn.danger{background:#683834;color:#ffe5e1;box-shadow:none}.btn.mini{padding:8px 12px;font-size:12px;border-radius:9px}.btn.wide{width:100%}.layout{padding-top:38px;padding-bottom:70px}.auth-layout{display:grid;grid-template-columns:1fr 440px;gap:80px;align-items:center;min-height:calc(100vh - 84px)}.auth-intro{max-width:560px}.auth-intro p{font-size:17px;line-height:1.65;color:#aeb1b4}.auth-points{display:grid;gap:16px;margin-top:38px}.auth-point{display:flex;gap:13px;align-items:center;color:#dbd9d3}.point-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;background:#e4b75e1a;color:#e9bf6f}.card{border:1px solid #ffffff16;border-radius:22px;background:linear-gradient(155deg,#1b1e24,#14171c);box-shadow:0 18px 60px #00000036}.auth-card{padding:29px}.tabbar{display:flex;background:#0d1014;padding:5px;border-radius:12px;margin-bottom:26px}.tabbar button{flex:1;border:0;padding:10px;background:transparent;color:#a2a4aa;border-radius:9px;font-weight:700}.tabbar button.active{color:#f5e7c8;background:#2c2821}.form-stack{display:grid;gap:16px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-note{font-size:12px;line-height:1.5;color:#969ba2}.divider{border:0;border-top:1px solid #ffffff14;margin:25px 0}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:27px}.page-head h1{margin-bottom:9px}.grid-main{display:grid;grid-template-columns:1.6fr .9fr;gap:22px}.section{margin-top:29px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-head h2{margin:0}.hero{position:relative;overflow:hidden;padding:31px;background:linear-gradient(115deg,#383023,#1e2023 53%,#14181e);min-height:308px}.hero:after{content:"";position:absolute;width:300px;height:300px;border:1px solid #e9c57a24;border-radius:50%;right:-95px;top:-75px;box-shadow:0 0 0 35px #e9c57a09,0 0 0 90px #e9c57a08}.hero>*{position:relative;z-index:1}.hero h2{font-size:clamp(27px,4vw,42px);max-width:490px;margin:15px 0 8px}.hero .date{font-size:17px;color:#e2d6be}.hero-actions{margin-top:33px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.time-chip{border:1px solid #e5bd7048;color:#e9c981;border-radius:9px;padding:8px 12px;font-weight:700;font-size:13px}.row-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 21px;margin-bottom:11px}.row-card strong{display:block;margin-bottom:5px}.row-card .right{display:flex;align-items:center;gap:10px}.side-card{padding:24px}.side-card p{line-height:1.55}.side-card .btn{margin-top:10px}.info-block{margin-top:17px;padding:15px;border:1px solid #e2b46023;border-radius:12px;background:#e2b4600d;font-size:13px;color:#d6c7a8;line-height:1.55}.list-plain{margin:0;padding:0;list-style:none}.list-plain li{padding:13px 0;border-bottom:1px solid #ffffff11}.list-plain li:last-child{border-bottom:0}.empty{padding:34px 22px;text-align:center;color:#aeb0b6;border:1px dashed #ffffff25;border-radius:15px}.pending{padding:22px;border:1px solid #e4b86045;background:#c7994317;border-radius:17px;color:#e7d1ab;margin-bottom:25px}.admin-grid{display:grid;grid-template-columns:350px 1fr;gap:22px;align-items:start}.admin-form{padding:24px;margin-bottom:20px}.admin-list{padding:23px}.admin-list h2{margin-bottom:15px}.admin-class{padding:14px 0;border-top:1px solid #ffffff14}.admin-class:first-of-type{border-top:0}.class-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.class-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.status{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:7px;background:#777b841a;color:#b2b8c2}.status.open{background:#3a9d6a27;color:#8ae7ad}.student-row{padding:13px 0;border-top:1px solid #ffffff14;display:flex;align-items:center;justify-content:space-between;gap:15px}.student-row:first-of-type{border-top:0}.student-row .details{font-size:12px;color:#a8aab0;margin-top:5px}.table-wrap{overflow:auto}.table{border-collapse:collapse;width:100%;min-width:520px;font-size:13px}.table th,.table td{padding:11px 8px;text-align:left;border-bottom:1px solid #ffffff17}.table th{color:#b9b5aa;font-weight:600}.attendance{margin-top:25px;padding:24px}.modal-backdrop{position:fixed;inset:0;background:#000b;z-index:10;display:grid;place-items:center;padding:18px}.modal{padding:26px;max-width:440px;width:100%}.modal .display-name{padding:13px;background:#0d1014;border:1px solid #e5bd7040;border-radius:12px;font-size:18px;font-weight:800;color:#eed199}.modal-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.toast{position:fixed;z-index:20;bottom:22px;left:50%;transform:translate(-50%,25px);opacity:0;pointer-events:none;background:#f0d18f;color:#1b1711;padding:12px 18px;border-radius:11px;font-weight:700;box-shadow:0 13px 30px #0009;transition:.2s;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.footer{border-top:1px solid #ffffff11;color:#797e83;text-align:center;padding:19px;font-size:12px}
@media(max-width:880px){.auth-layout{grid-template-columns:1fr;gap:24px;padding-top:40px;padding-bottom:60px;min-height:0}.auth-intro{max-width:none}.auth-points{display:none}.auth-card{max-width:520px;width:100%;justify-self:center}.grid-main,.admin-grid{grid-template-columns:1fr}.side-card{order:2}}@media(max-width:580px){.wrap{padding-left:17px;padding-right:17px}.topbar{height:72px}.brand-name{font-size:12px}.brand-name span{font-size:8px}.brand-mark{width:38px;height:38px;font-size:25px}.header-right{gap:4px}.header-right .chip{display:none}.layout{padding-top:28px}.page-head{align-items:start}.page-head h1{font-size:32px}.hero{padding:24px;min-height:286px}.hero h2{font-size:30px}.auth-card{padding:21px}.field-row{grid-template-columns:1fr}.row-card{align-items:start;flex-direction:column}.row-card .right{width:100%;justify-content:space-between}.student-row{align-items:start;flex-direction:column}.class-head{flex-direction:column}}
