:root{--blue:#4168aa;--dark:#214c90;--soft:#edf3ff;--ink:#172033;--muted:#6b7484;--line:#e4e9f1;--bg:#f5f7fb;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:16px;line-height:1.5}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,5vw,3.2rem);letter-spacing:-.045em;line-height:1.05;margin-bottom:.5rem}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:750;color:var(--blue);margin-bottom:.5rem}.muted{color:var(--muted)}
.auth-body{min-height:100vh;background:radial-gradient(circle at 10% 10%,#dce8ff,transparent 35%),radial-gradient(circle at 90% 90%,#e2eafb,transparent 38%),#f7f9fc;display:grid;place-items:center;padding:20px}.auth-shell{width:min(100%,480px)}.auth-shell.wide{width:min(100%,680px)}.auth-card,.admin-card,.profile-card,.course-card,.travel-card,.news-card{background:rgba(255,255,255,.9);border:1px solid rgba(224,229,238,.9);box-shadow:0 18px 55px rgba(28,52,93,.1);border-radius:26px;padding:clamp(24px,5vw,40px)}.brand-logo{width:215px;max-width:70%;border-radius:10px;margin-bottom:35px}.stack{display:grid;gap:18px;margin-top:28px}label{display:grid;gap:7px;font-size:.88rem;font-weight:650;color:#3b4556}input,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:13px 15px;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(65,104,170,.12)}.button{border:0;border-radius:14px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;transition:.18s}.button:hover{transform:translateY(-2px)}.primary{color:#fff;background:linear-gradient(135deg,var(--blue),var(--dark));box-shadow:0 10px 22px rgba(45,86,154,.23)}.secondary{background:#fff;border:1px solid var(--line)}.full{width:100%}.text-link{display:block;text-align:center;color:var(--blue);font-weight:650;margin-top:24px;font-size:.9rem}.subtle{color:var(--muted)}.alert{padding:13px 15px;border-radius:13px;margin:18px 0;font-weight:600}.error{background:#fff0f1;color:#9c2330}.success{background:#edf8f1;color:#247043}.hint{font-size:.75rem;color:var(--muted);font-weight:400}.form-grid{display:grid;gap:17px}.form-grid.two{grid-template-columns:1fr 1fr}.divider{height:1px;background:var(--line);grid-column:1/-1}.span-2{grid-column:1/-1}
.topbar{height:75px;background:rgba(255,255,255,.8);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 max(22px,calc((100vw - 1100px)/2))}.topbar img{width:175px;border-radius:8px}.icon-button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff}.student-shell{max-width:1100px;margin:auto;padding:55px 22px}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.welcome p{color:var(--muted)}.avatar{width:72px;height:72px;border-radius:25px;background:linear-gradient(145deg,var(--blue),#7e9fd7);color:#fff;display:grid;place-items:center;font-weight:750;font-size:1.3rem}.profile-card,.course-card,.travel-card,.news-card{padding:28px;margin-bottom:18px;box-shadow:0 8px 28px rgba(37,57,91,.05)}.section-heading{display:flex;gap:14px;align-items:center;margin-bottom:22px}.section-heading>span{width:42px;height:42px;border-radius:14px;background:var(--soft);color:var(--blue);display:grid;place-items:center}.section-heading h2{margin:0}.data-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.data-grid div,.travel-item{display:grid;gap:4px}.data-grid span,.travel-item span{font-size:.78rem;color:var(--muted);font-weight:650}.course-card{color:#fff;background:linear-gradient(135deg,#315b9e,#5a7fba)}.course-card .eyebrow{color:#d5e1f6}.course-card h2{margin:0}.travel-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:15px}.travel-item{background:var(--bg);padding:17px;border-radius:16px}.travel-item em{font-style:normal;color:var(--blue);font-weight:700}.news-section{margin-top:45px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:2rem}.section-title span{background:var(--ink);color:#fff;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.news-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}.news-card{margin:0}.news-card small{color:var(--blue);font-weight:700}.empty{text-align:center;padding:35px;color:var(--muted)}footer{text-align:center;padding:30px;color:var(--muted);font-size:.82rem}.reveal{opacity:0;transform:translateY(16px);transition:.6s}.reveal.visible{opacity:1;transform:none}
.sidebar{position:fixed;inset:0 auto 0 0;width:245px;background:#fff;border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;z-index:20}.sidebar img{width:185px;border-radius:8px;margin:0 10px 42px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:12px 14px;border-radius:13px;color:var(--muted);font-weight:650}.sidebar nav a.active{background:var(--soft);color:var(--blue)}.sidebar form{margin-top:auto}.sidebar form button,.danger{border:0;background:none;color:#c83845;cursor:pointer;font-weight:650}.admin-main{margin-left:245px;padding:52px clamp(28px,5vw,70px);max-width:1500px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.page-head h1{font-size:2.6rem}.page-head p{color:var(--muted);margin:0}.admin-card{padding:24px;border-radius:20px;box-shadow:0 7px 25px rgba(36,54,86,.045)}.table-card{padding:0;overflow:hidden}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:17px 20px;border-bottom:1px solid var(--line)}th{font-size:.75rem;text-transform:uppercase;color:var(--muted);background:#fafbfd}td{font-size:.9rem}td small{display:block;color:var(--muted)}.copy-code{border:0;background:var(--soft);color:var(--dark);font-family:monospace;padding:7px 9px;border-radius:9px;cursor:pointer}.row-action,.back-link{color:var(--blue);font-weight:700}.search{max-width:400px;margin-bottom:15px}.detail-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.big-code{font-family:monospace;font-size:clamp(1.5rem,4vw,2.3rem);font-weight:750;margin:12px 0 20px;color:var(--dark)}.inline{display:inline}.delete-area{margin-top:22px}.editor-form{max-width:900px}.editor-form.narrow{max-width:700px}.editor-form fieldset{border:0;padding:0 0 28px;margin:0 0 28px;border-bottom:1px solid var(--line)}.editor-form legend{font-size:1.22rem;font-weight:750;margin-bottom:18px}.editor-form>label{margin-bottom:18px}.check{display:flex;align-items:center;gap:9px;margin-top:28px}.check input{width:20px;height:20px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.card-list{display:grid;gap:13px}.news-admin{display:flex;justify-content:space-between;align-items:center;gap:20px}.news-admin h3{margin:4px 0}.news-admin p{margin:0;color:var(--muted)}.admin-mobile-head{display:none}
@media(max-width:800px){.data-grid{grid-template-columns:1fr 1fr}.travel-grid,.news-list{grid-template-columns:1fr}.sidebar{transform:translateX(-100%);transition:.3s;box-shadow:20px 0 50px #2234}.sidebar.open{transform:none}.admin-mobile-head{height:65px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;background:#fff}.admin-mobile-head img{width:155px}.menu-button{border:0;border-radius:10px;padding:9px 12px}.admin-main{margin:0;padding:28px 18px}.table-card{overflow-x:auto}table{min-width:680px}.detail-layout{grid-template-columns:1fr}}
@media(max-width:560px){.auth-body{padding:14px}.auth-card{border-radius:25px}.form-grid.two,.data-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.student-shell{padding:30px 16px}.welcome{align-items:flex-start}.avatar{width:58px;height:58px}.page-head{display:grid;align-items:start}.page-head .button{width:100%}.admin-main{padding:24px 14px}.news-admin{display:grid}.form-actions{display:grid;grid-template-columns:1fr 1fr}.check{margin-top:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
.materials-section{margin-top:45px}.material-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;perspective:1000px}.book-card{position:relative;min-height:245px;padding:25px 20px 22px 30px;border:0;border-radius:5px 18px 18px 5px;background:linear-gradient(145deg,#315b9e,#5179b9);color:#fff;box-shadow:-5px 5px 0 #24477e,0 18px 35px rgba(35,69,125,.22);display:flex;flex-direction:column;align-items:flex-start;text-align:left;cursor:pointer;overflow:hidden;transition:transform .25s,box-shadow .25s}.book-card:hover{transform:translateY(-7px) rotateY(-3deg);box-shadow:-7px 7px 0 #24477e,0 24px 42px rgba(35,69,125,.27)}.book-card:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.14),transparent 38%);pointer-events:none}.book-spine{position:absolute;left:12px;top:0;bottom:0;width:1px;background:rgba(255,255,255,.25);box-shadow:3px 0 9px rgba(0,0,0,.13)}.pdf-mark{font-size:.68rem;font-weight:800;letter-spacing:.12em;background:rgba(255,255,255,.16);padding:5px 8px;border-radius:7px;margin-bottom:auto}.book-card strong{font-size:1.08rem;line-height:1.3;margin:25px 0 12px}.book-card small{color:#dce7f8}.shelf-empty{background:#fff;border:1px dashed #ccd5e4;border-radius:20px}.material-admin{margin-top:20px}.upload-form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;margin:22px 0 28px;padding:20px;background:var(--bg);border-radius:17px}.material-admin-list{border-top:1px solid var(--line)}.material-admin-list article{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 3px;border-bottom:1px solid var(--line)}.material-admin-list small{display:block;color:var(--muted);margin-top:3px}.material-admin-list .danger{margin-left:12px}
@media(max-width:800px){.upload-form{grid-template-columns:1fr 1fr}.upload-form .button{grid-column:1/-1}.material-shelf{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.upload-form{grid-template-columns:1fr}.upload-form .button{grid-column:auto}.material-shelf{grid-template-columns:1fr 1fr;gap:14px}.book-card{min-height:215px;padding:20px 15px 18px 25px}.book-card strong{font-size:.98rem}.material-admin-list article{align-items:flex-start;display:grid}}
